自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Karpathy新視頻又火了:從頭構(gòu)建GPT Tokenizer

人工智能 新聞
手把手教咱構(gòu)建一個(gè)GPT Tokenizer(分詞器),還是熟悉的時(shí)長(zhǎng)(足足2小時(shí)13分鐘)。

技術(shù)大神卡帕西離職OpenAI以后,營(yíng)業(yè)可謂相當(dāng)積極啊。

這不,前腳新項(xiàng)目剛上線,后腳全新的教學(xué)視頻又給大伙整出來(lái)了:

這次,是手把手教咱構(gòu)建一個(gè)GPT Tokenizer(分詞器),還是熟悉的時(shí)長(zhǎng)(足足2小時(shí)13分鐘)。

圖片

Ps. 上次講課還是倆月前的大模型科普。

所謂“卡帕西出手,必屬精品”,大伙火速碼碼碼:

今晚的約會(huì)取消,卡帕西來(lái)了我要去上課(狗頭)

圖片

再說(shuō)一遍,付費(fèi)都買不到的這樣高質(zhì)量的課程,沖。

圖片

具體都有哪些干貨?

“太長(zhǎng)不看版”已為大家準(zhǔn)備好。

為什么要關(guān)注Tokenizer

如大神介紹:

Tokenizer即分詞器是大語(yǔ)言模型pipeline中一個(gè)完全獨(dú)立的階段。

它們有自己的訓(xùn)練集、算法(比如BPE,字節(jié)對(duì)編碼),并在訓(xùn)練完成后實(shí)現(xiàn)兩個(gè)功能:
從字符串編碼到token,以及從token解碼回字符串。

為什么我們需要關(guān)注它?

卡帕西指出:

因?yàn)長(zhǎng)LM中的很多奇怪行為和問(wèn)題都可以追溯到它。

比如:

  • 為什么大模型不能處理簡(jiǎn)單的字符串處理任務(wù),例如反轉(zhuǎn)?
  • 為什么大模型在非英語(yǔ)語(yǔ)言任務(wù)方面的性能更差?
  • 為什么大模型不擅長(zhǎng)簡(jiǎn)單的算術(shù)?
  • 為什么我的模型在看到字符串“”后就突然“宕機(jī)”了?
  • 為什么大模型實(shí)際上并不是端到端的語(yǔ)言建模?
  • ……

圖片

所以為了弄清這些問(wèn)題,便有了今天的課程——盡管大神本人對(duì)這部分內(nèi)容其實(shí)也不太喜歡。

上這門課大家會(huì)注意到我的表情全程都很凝重。不過(guò),其中的細(xì)節(jié)真的太重要了(大家還是忍忍吧)。

以下為視頻主要內(nèi)容文字版。

圖片

從頭構(gòu)建OpenAI大模型中使用的分詞器

視頻的最開始主要是對(duì)分詞器的一些介紹。

包括最簡(jiǎn)單的字符級(jí)分詞操作(即每個(gè)字符是一個(gè)token)以及更為復(fù)雜和常用的chunk級(jí)操作(即多個(gè)字符也會(huì)組成一個(gè)token)

圖片

在這之中,業(yè)內(nèi)最常用的算法是BPE,即byte pair encoding,字節(jié)對(duì)編碼,因此我們要想構(gòu)建自己的分詞器,最重要的是了解這個(gè)算法。

卡帕西介紹:

BPE可以更好地處理非英語(yǔ)語(yǔ)言、對(duì)詞匯表大小進(jìn)行調(diào)整,對(duì)于模型的性能有顯著影響。

比如GPT-4分詞器通過(guò)改進(jìn)BPE算法,最終在處理Python代碼時(shí)更加高效,因?yàn)樗軌驅(qū)⒍鄠€(gè)空格合并為單個(gè)標(biāo)記,從而減少序列長(zhǎng)度,使得模型能夠關(guān)注更長(zhǎng)更多的代碼。

需要注意的是,盡管BPE算法可以處理UTF-8編碼的字節(jié)序列,但直接使用這些序列會(huì)導(dǎo)致詞匯表過(guò)大、序列過(guò)長(zhǎng),從而影響模型的注意力機(jī)制和上下文長(zhǎng)度,因此需要壓縮處理。

理解BPE算法后,如何構(gòu)建自己的分詞器?

簡(jiǎn)單來(lái)說(shuō),主要包括以下幾個(gè)步驟:

1、初始化詞匯表

基于UTF-8編碼的字節(jié)。

2、合并字節(jié)對(duì)并不斷迭代,直到詞匯表大小達(dá)到預(yù)設(shè)值

在實(shí)際演示中,卡帕西通過(guò)20次合并,將文本的token數(shù)量減少了約27%。

3、處理特殊字符和不同語(yǔ)言的字符

4、整體優(yōu)化

詞匯表過(guò)大可能會(huì)導(dǎo)致模型訓(xùn)練困難,過(guò)小則可能無(wú)法捕捉到足夠的語(yǔ)言細(xì)節(jié)。

5、選擇一個(gè)包含豐富語(yǔ)言特征的數(shù)據(jù)集來(lái)訓(xùn)練

在此,卡帕西提到了SentencePiece庫(kù),它支持多種分詞算法包括今天提到的BPE。

我們可以用它進(jìn)行分詞器的訓(xùn)練,包括配置選項(xiàng)和如何處理罕見字符。

訓(xùn)練好的分詞器用于編碼和解碼文本也講了。

6、最后就是評(píng)估+集成到模型中了。

當(dāng)然,后續(xù)我們還需要根據(jù)模型的表現(xiàn)進(jìn)行持續(xù)調(diào)整。

具體道每一步,大神都給咱配了詳細(xì)的Python實(shí)現(xiàn),包括如何找到最頻繁的字節(jié)對(duì)、如何合并這些對(duì)以及如何構(gòu)建合并字典等等,具體大家就請(qǐng)參閱視頻吧。

圖片

在這之中,卡帕西也提醒了n個(gè)細(xì)節(jié),比如:

在解碼過(guò)程中,如果遇到無(wú)效的UTF-8字節(jié)序列,可以使用“errors=’replace’”來(lái)替換;使用“end of text”特殊標(biāo)記來(lái)在訓(xùn)練數(shù)據(jù)中分隔文檔等等。

實(shí)際遠(yuǎn)比此復(fù)雜

毫無(wú)疑問(wèn),卡帕西帶大家實(shí)現(xiàn)的是比較基礎(chǔ)的一個(gè)分詞器版本,實(shí)際模型中遠(yuǎn)比這要復(fù)雜得多。

比如OpenAI官方提供的BPE分詞器——tiktoken

它用了正則表達(dá)式來(lái)分割文本,以此來(lái)保證某些類型的字符也不會(huì)被合并。在GPT-2中,它就在某些方面表現(xiàn)得不錯(cuò)了。

到了GPT-4,官方也對(duì)其進(jìn)行了一些調(diào)整。

圖片

主要的改變?cè)谟冢?/p>

  1. GPT-4會(huì)將空格合并;
  2. 大小寫不敏感;
  3. GPT-4最多只合并3位數(shù)字,避免了長(zhǎng)數(shù)字序列token。

不過(guò)由于官方并沒(méi)有公開具體訓(xùn)練細(xì)節(jié),所以我們也無(wú)法知道其詳細(xì)的實(shí)現(xiàn)。

而除了更復(fù)雜的算法,分詞器本身在處理長(zhǎng)字符串、非英語(yǔ)語(yǔ)言、數(shù)字和特殊字符時(shí)都可能遇到問(wèn)題。

因此,講來(lái)講去,大神在視頻中還是表達(dá)了一個(gè)“樸素的愿望”:

非常希望有一天能夠不需要分詞,直接將字節(jié)流輸入到語(yǔ)言模型中。

不過(guò)由于這就需要我們對(duì)Transfomer架構(gòu)進(jìn)行重大修改了,所以現(xiàn)階段,構(gòu)建和優(yōu)化分詞器仍然是實(shí)現(xiàn)高效大模型的關(guān)鍵步驟。

完整視頻見:https://weibo.com/6105753431/O1BQB96Yg

責(zé)任編輯:張燕妮 來(lái)源: 量子位
相關(guān)推薦

2024-02-22 09:51:56

代碼AI

2024-12-26 11:48:27

2024-02-22 07:29:31

OpenAIKarpathy分詞器

2024-05-30 07:02:00

KarpathyGPT-2人工智能

2024-03-01 13:49:00

數(shù)據(jù)訓(xùn)練

2024-07-12 12:46:03

2016-09-28 22:04:01

GNUAutotoolLinux

2024-06-12 13:27:58

2024-02-26 00:40:00

AIGPT

2021-01-12 09:46:00

深度學(xué)習(xí)編程神經(jīng)網(wǎng)絡(luò)

2024-09-29 09:32:58

2024-06-11 08:37:00

2023-04-14 11:04:43

2025-02-13 13:00:00

2025-03-24 12:42:52

2017-07-12 08:33:04

機(jī)房數(shù)據(jù)中心服務(wù)器

2023-07-12 13:29:44

2023-05-29 09:48:36

AI李飛飛

2024-02-19 00:12:50

AI代碼

2024-05-21 13:06:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)