九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
解讀大模型(LLM)的token

當(dāng)人們談?wù)摯笮驼Z(yǔ)言模型的大小時(shí),參數(shù)會(huì)讓我們了解神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)有多復(fù)雜,而token的大小會(huì)讓我們知道有多少數(shù)據(jù)用于訓(xùn)練參數(shù)。

正像陸奇博士所說(shuō)的那樣,大型語(yǔ)言模型為從文本生成到問(wèn)題回答的各種任務(wù)提供了令人印象深刻的能力,不僅徹底改變了自然語(yǔ)言處理(NLP)領(lǐng)域,而且作為基礎(chǔ)模型會(huì)改變整個(gè)軟件生態(tài)。

這些模型的一個(gè)經(jīng)常被忽視的關(guān)鍵點(diǎn)是“token”的作用,即模型處理的各個(gè)信息單元。大型語(yǔ)言模型(LLM)不能真正理解原始文本,相反,文本被轉(zhuǎn)換為稱(chēng)為token的數(shù)字表示形式,然后將這些token提供給模型進(jìn)行處理。

token 在區(qū)塊鏈中代表是通證或者代幣,那么token在LLM中代表的是什么呢?

1. 什么是token?

在 LLM 中,token代表模型可以理解和生成的最小意義單位,是模型的基礎(chǔ)單元。根據(jù)所使用的特定標(biāo)記化方案,token可以表示單詞、單詞的一部分,甚至只表示字符。token被賦予數(shù)值或標(biāo)識(shí)符,并按序列或向量排列,并被輸入或從模型中輸出,是模型的語(yǔ)言構(gòu)件。

一般地,token可以被看作是單詞的片段,不會(huì)精確地從單詞的開(kāi)始或結(jié)束處分割,可以包括尾隨空格以及子單詞,甚至更大的語(yǔ)言單位。token作為原始文本數(shù)據(jù)和 LLM 可以使用的數(shù)字表示之間的橋梁。LLM使用token來(lái)確保文本的連貫性和一致性,有效地處理各種任務(wù),如寫(xiě)作、翻譯和回答查詢(xún)。

下面是一些有用的經(jīng)驗(yàn)法則,可以幫助理解token的長(zhǎng)度:

1 token ~= 4 chars in English
1 token ~= ? words
100 tokens ~= 75 words
或者
1-2 句子 ~= 30 tokens
1 段落 ~= 100 tokens
1,500 單詞 ~= 2048 tokens

在OpenAI 的API 參數(shù)中,max _ tokens 參數(shù)指定模型應(yīng)該生成一個(gè)最大長(zhǎng)度為60個(gè)令牌的響應(yīng)。可以通過(guò)https://platform.openai.com/tokenizer 來(lái)觀察token 的相關(guān)信息。

2. token 的特點(diǎn)

我們可以先用OpenAI 的playground 來(lái)看一個(gè)例子“Dec 31,1993. Things are getting crazy.”

使用 GPT-3 tokenizaer將相同的單詞轉(zhuǎn)換為token:

2.1 token到數(shù)值表示的映射

詞匯表將token映射到唯一的數(shù)值表示。LLM 使用數(shù)字輸入,因此詞匯表中的每個(gè)標(biāo)記都被賦予一個(gè)唯一標(biāo)識(shí)符或索引。這種映射允許 LLM 將文本數(shù)據(jù)作為數(shù)字序列進(jìn)行處理和操作,從而實(shí)現(xiàn)高效的計(jì)算和建模。

為了捕獲token之間的意義和語(yǔ)義關(guān)系,LLM 采用token編碼技術(shù)。這些技術(shù)將token轉(zhuǎn)換成稱(chēng)為嵌入的密集數(shù)字表示。嵌入式編碼語(yǔ)義和上下文信息,使 LLM 能夠理解和生成連貫的和上下文相關(guān)的文本。像transformer這樣的體系結(jié)構(gòu)使用self-attention機(jī)制來(lái)學(xué)習(xí)token之間的依賴(lài)關(guān)系并生成高質(zhì)量的嵌入。

2.2 token級(jí)操作:精確地操作文本

token級(jí)別的操作是對(duì)文本數(shù)據(jù)啟用細(xì)粒度操作。LLM 可以生成token、替換token或掩碼token,以有意義的方式修改文本。這些token級(jí)操作在各種自然語(yǔ)言處理任務(wù)中都有應(yīng)用,例如機(jī)器翻譯、情感分析和文本摘要等。

2.3 token 設(shè)計(jì)的局限性

在將文本發(fā)送到 LLM 進(jìn)行生成之前,會(huì)對(duì)其進(jìn)行tokenization。token是模型查看輸入的方式ーー單個(gè)字符、單詞、單詞的一部分或文本或代碼的其他部分。每個(gè)模型都以不同的方式執(zhí)行這一步驟,例如,GPT 模型使用字節(jié)對(duì)編碼(BPE)。

token會(huì)在tokenizer發(fā)生器的詞匯表中分配一個(gè) id,這是一個(gè)將數(shù)字與相應(yīng)的字符串綁定在一起的數(shù)字標(biāo)識(shí)符。例如,“ Matt”在 GPT 中被編碼為token編號(hào)[13448],而 “Rickard”被編碼為兩個(gè)標(biāo)記,“ Rick”,“ ard”帶有 id[8759,446],GPT-3擁有1400萬(wàn)字符串組成的詞匯表。

token 的設(shè)計(jì)大概存在著以下的局限性:

  • 大小寫(xiě)區(qū)分:不同大小寫(xiě)的單詞被視為不同的標(biāo)記?!?hello”是token[31373] ,“ Hello”是[15496] ,而“ HELLO”有三個(gè)token[13909,3069,46]。

  • 數(shù)字分塊不一致。數(shù)值“380”在 GPT 中標(biāo)記為單個(gè)“380”token。但是“381”表示為兩個(gè)token[“38”,“1”]?!?82”同樣是兩個(gè)token,但“383”是單個(gè)token[“383”]。一些四位數(shù)字的token有: [“3000”] ,[“3”,“100”] ,[“35”,“00”] ,[“4”,“500”]。這或許就是為什么基于 GPT 的模型并不總是擅長(zhǎng)數(shù)學(xué)計(jì)算的原因。

  • 尾隨的空格。有些token有空格,這將導(dǎo)致提示詞和單詞補(bǔ)全的有趣行為。例如,帶有尾部空格的“once upon a ”被編碼為[“once”、“upon”、“a”、“ ”]。然而,“once on a time”被編碼為[“once”,“ upon”,“ a”,“ time”]。因?yàn)椤?time”是帶有空格的單個(gè)token,所以將空格添加到提示詞將影響“ time”成為下一個(gè)token的概率。

3. token 對(duì)LLM 的影響

關(guān)于token的數(shù)量如何影響模型的響應(yīng),常常感到困惑的是,更多的token是否使模型更加詳細(xì)而具體呢?個(gè)人認(rèn)為,token 對(duì)大模型的影響集中在兩個(gè)方面:

上下文窗口: 這是模型一次可以處理的令牌的最大數(shù)量。如果要求模型比上下文窗口生成更多的標(biāo)記,它將在塊中這樣做,這可能會(huì)失去塊之間的一致性。

訓(xùn)練數(shù)據(jù)token: 模型的培訓(xùn)數(shù)據(jù)中令牌的數(shù)量是模型已經(jīng)學(xué)習(xí)的信息量的度量。然而,模型的響是更“一般”還是“詳細(xì)”與這些象征性的措施沒(méi)有直接關(guān)系。

模型響應(yīng)的普遍性或特異性更多地取決于它的訓(xùn)練數(shù)據(jù)、微調(diào)和生成響應(yīng)應(yīng)時(shí)使用的解碼策略。大型語(yǔ)言模型中的令牌概念是理解這些模型如何工作以及如何有效使用它們的基礎(chǔ)。雖然模型可以處理或已經(jīng)接受過(guò)訓(xùn)練的令牌數(shù)量確實(shí)影響其性能,但其響應(yīng)的一般性或詳細(xì)程度更多地是其訓(xùn)練數(shù)據(jù)、微調(diào)和所使用的解碼策略的產(chǎn)物。

對(duì)不同數(shù)據(jù)進(jìn)行訓(xùn)練的模型往往會(huì)產(chǎn)生一般性的響應(yīng),而對(duì)具體數(shù)據(jù)進(jìn)行訓(xùn)練的模型往往會(huì)產(chǎn)生更詳細(xì)的、針對(duì)具體情況的響應(yīng)。例如,對(duì)醫(yī)學(xué)文本進(jìn)行微調(diào)的模型可能會(huì)對(duì)醫(yī)學(xué)提示產(chǎn)生更詳細(xì)的響應(yīng)。

解碼策略也起著重要的作用。修改模型輸出層中使用的SoftMax函數(shù)的“temperature”可以使模型的輸出更加多樣化(更高的溫度)或者更加確定(更低的溫度)。在OpenAI 的API中設(shè)置temperature的值可以調(diào)整確定性和不同輸出之間的平衡。

需要記住,每一個(gè)語(yǔ)言模型,不管它的大小或者它被訓(xùn)練的數(shù)據(jù)量如何,只有它被訓(xùn)練的數(shù)據(jù)、它被接收的微調(diào)以及在使用過(guò)程中使用的解碼策略才可能是最有效的。

為了突破 LLM 的極限,可以嘗試不同的訓(xùn)練和微調(diào)方法,并使用不同的解碼策略。請(qǐng)注意這些模型的優(yōu)缺點(diǎn),并始終確保用例與正在使用的模型功能保持一致。

4. Token的應(yīng)用機(jī)制——tokenization

將文本劃分為不同token的正式過(guò)程稱(chēng)為 tokenization。tokenization捕獲文本的含義和語(yǔ)法結(jié)構(gòu),從而需要將文本分割成重要的組成部分。

tokenization是將輸入和輸出文本分割成更小的單元,由 LLM AI 模型處理的過(guò)程。tokenization可以幫助模型處理不同的語(yǔ)言、詞匯表和格式,并降低計(jì)算和內(nèi)存成本,還可以通過(guò)影響token的意義和語(yǔ)境來(lái)影響所生成文本的質(zhì)量和多樣性。根據(jù)文本的復(fù)雜性和可變性,可以使用不同的方法進(jìn)行tokenization,比如基于規(guī)則的方法、統(tǒng)計(jì)方法或神經(jīng)方法。

OpenAI 以及 Azure OpenAI 為其基于 GPT 的模型使用了一種稱(chēng)為“字節(jié)對(duì)編碼(Byte-Pair Encoding,BPE)”的子詞tokenization方法。BPE 是一種將最頻繁出現(xiàn)的字符對(duì)或字節(jié)合并到單個(gè)標(biāo)記中的方法,直到達(dá)到一定數(shù)量的標(biāo)記或詞匯表大小為止。BPE 可以幫助模型處理罕見(jiàn)或不可見(jiàn)的單詞,并創(chuàng)建更緊湊和一致的文本表示。BPE 還允許模型通過(guò)組合現(xiàn)有單詞或標(biāo)記來(lái)生成新單詞或標(biāo)記。詞匯表越大,模型生成的文本就越多樣化并富有表現(xiàn)力。但是,詞匯越大,模型所需的內(nèi)存和計(jì)算資源就越多。因此,詞匯的選擇取決于模型的質(zhì)量和效率之間的權(quán)衡。

基于用于與模型交互的token數(shù)量以及不同模型的不同速率,大模型的使用成本可能大不相同。例如,截至2023年2月,使用 Davinci 的費(fèi)率為每1000個(gè)令牌0.06美元,而使用 Ada 的費(fèi)率為每1000個(gè)令牌0.0008美元。這個(gè)比率也根據(jù)使用的類(lèi)型而變化,比如playground和搜索等。因此,tokenization是影響運(yùn)行大模型的成本和性能的一個(gè)重要因素。

4.1 tokenization 的七種類(lèi)型

tokenization涉及到將文本分割成有意義的單元,以捕捉其語(yǔ)義和句法結(jié)構(gòu),可以采用各種tokenization技術(shù),如字級(jí)、子字級(jí)(例如,使用字節(jié)對(duì)編碼或 WordPiece)或字符級(jí)。根據(jù)特定語(yǔ)言和特定任務(wù)的需求,每種技術(shù)都有自己的優(yōu)勢(shì)和權(quán)衡。

  • 字節(jié)對(duì)編碼(BPE):為AI模型構(gòu)建子詞詞匯,用于合并出現(xiàn)頻繁的字符/子字對(duì)。

  • 子詞級(jí)tokenization:為復(fù)雜語(yǔ)言和詞匯劃分單詞。將單詞拆分成更小的單元,這對(duì)于復(fù)雜的語(yǔ)言很重要。

  • 單詞級(jí)tokenization:用于語(yǔ)言處理的基本文本tokenization。每個(gè)單詞都被用作一個(gè)不同的token,它很簡(jiǎn)單,但受到限制。

  • 句子片段:用習(xí)得的子詞片段分割文本,基于所學(xué)子單詞片段的分段。

  • 分詞tokenization:采用不同合并方法的子詞單元。

  • 字節(jié)級(jí)tokenization:使用字節(jié)級(jí)token處理文本多樣性,將每個(gè)字節(jié)視為令牌,這對(duì)于多語(yǔ)言任務(wù)非常重要。

  • 混合tokenization:平衡精細(xì)細(xì)節(jié)和可解釋性,結(jié)合詞級(jí)和子詞級(jí)tokenization。

LLM 已經(jīng)擴(kuò)展了處理多語(yǔ)言和多模式輸入的能力。為了適應(yīng)這些數(shù)據(jù)的多樣性,已經(jīng)開(kāi)發(fā)了專(zhuān)門(mén)的tokenization方法。通過(guò)利用特定語(yǔ)言的token或子詞技術(shù),多語(yǔ)言標(biāo)記在一個(gè)模型中處理多種語(yǔ)言。多模態(tài)標(biāo)記將文本與其他模式(如圖像或音頻)結(jié)合起來(lái),使用融合或連接等技術(shù)來(lái)有效地表示不同的數(shù)據(jù)源。

4.2 tokenization 的重要性

tokenization在 LLM 的效率、靈活性和泛化能力中起著至關(guān)重要的作用。通過(guò)將文本分解成更小的、可管理的單元,LLM 可以更有效地處理和生成文本,降低計(jì)算復(fù)雜度和內(nèi)存需求。此外,tokenization通過(guò)適應(yīng)不同的語(yǔ)言、特定領(lǐng)域的術(shù)語(yǔ),甚至是新興的文本形式(如互聯(lián)網(wǎng)俚語(yǔ)或表情符號(hào))提供了靈活性。這種靈活性允許 LLM 處理范圍廣泛的文本輸入,增強(qiáng)了它們?cè)诓煌I(lǐng)域和用戶(hù)上下文中的適用性。

tokenization技術(shù)的選擇涉及到粒度和語(yǔ)義理解之間的權(quán)衡。單詞級(jí)標(biāo)記捕獲單個(gè)單詞的意義,但可能會(huì)遇到詞匯表外(OOV)術(shù)語(yǔ)或形態(tài)學(xué)上豐富的語(yǔ)言。子詞級(jí)tokenization提供了更大的靈活性,并通過(guò)將單詞分解為子詞單元來(lái)處理 OOV 術(shù)語(yǔ)。然而,在整個(gè)句子的語(yǔ)境中正確理解子詞標(biāo)記的意義是一個(gè)挑戰(zhàn)。tokenization技術(shù)的選擇取決于特定的任務(wù)、語(yǔ)言特征和可用的計(jì)算資源。

4.3 tokenization面臨的挑戰(zhàn): 處理噪聲或不規(guī)則文本數(shù)據(jù)

真實(shí)世界的文本數(shù)據(jù)通常包含噪音、不規(guī)則性或不一致性。tokenization在處理拼寫(xiě)錯(cuò)誤、縮寫(xiě)、俚語(yǔ)或語(yǔ)法錯(cuò)誤的句子時(shí)面臨挑戰(zhàn)。處理這些噪音數(shù)據(jù)需要健壯的預(yù)處理技術(shù)和特定領(lǐng)域的tokenization規(guī)則調(diào)整。此外,在處理具有復(fù)雜編寫(xiě)系統(tǒng)的語(yǔ)言時(shí),tokenization可能會(huì)遇到困難,例如標(biāo)志腳本或沒(méi)有明確詞邊界的語(yǔ)言。解決這些挑戰(zhàn)通常涉及專(zhuān)門(mén)的tokenization方法或?qū)ΜF(xiàn)有tokenizer的適應(yīng)。

tokenization是特定于模型的。根據(jù)模型的詞匯表和tokenization方案,標(biāo)記可能具有不同的大小和含義。例如,像“ running”和“ ran”這樣的單詞可以用不同的標(biāo)記來(lái)表示,這會(huì)影響模型對(duì)時(shí)態(tài)或動(dòng)詞形式的理解。不同模型訓(xùn)練各自的tokenizer,而且盡管 LLaMa 也使用 BPE,但token也與ChatGPT不同,這使得預(yù)處理和多模態(tài)建模變得更加復(fù)雜。

5. LLM應(yīng)用中token 的使用

我們需要知道當(dāng)前任務(wù)的token 使用狀況,然后,面對(duì)大模型的token長(zhǎng)度限制,可以嘗試一些解決方案

5.1 token 的使用狀態(tài)

這里采用OpenAI 的API , 使用langchain 應(yīng)用框架來(lái)構(gòu)建簡(jiǎn)單應(yīng)用,進(jìn)而描述當(dāng)前文本輸入的token 使用狀態(tài)。

from langchain.llms import OpenAI
from langchain.callbacks import get_openai_callback
llm = OpenAI(model_name="text-davinci-002", n=2, best_of=2)

with get_openai_callback() as cb:
result = llm("給我講個(gè)笑話(huà)吧")
print(cb)

對(duì)于Agent 類(lèi)型的應(yīng)用而言,可以用類(lèi)似的方法得到各自token的統(tǒng)計(jì)數(shù)據(jù)。

from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI

llm = OpenAI(temperature=0)
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(
tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)
with get_openai_callback() as cb:
response = agent.run(
"Who is Olivia Wilde's boyfriend? What is his current age raised to the 2023?"
)
print(f"Total Tokens: {cb.total_tokens}")
print(f"Prompt Tokens: {cb.prompt_tokens}")
print(f"Completion Tokens: {cb.completion_tokens}")
print(f"Total Cost (USD): ${cb.total_cost}")

5.2 LLM中 token 的長(zhǎng)度限制與應(yīng)對(duì)

像 GPT-3/4,LLaMA等這樣的大模型有一個(gè)最大token 數(shù)量限制,超過(guò)這個(gè)限制,它們就不能接受輸入或生成輸出。

一般地, 我們可以嘗試以下方法來(lái)解決token長(zhǎng)度限制的問(wèn)題:

截?cái)?/span>

截?cái)嗌婕皠h除輸入文本的一部分以適應(yīng)令牌限制。這可以通過(guò)刪除文本的開(kāi)頭或結(jié)尾,或兩者的組合來(lái)完成。然而,截?cái)嗫赡軐?dǎo)致重要信息的丟失,并可能影響所產(chǎn)生的產(chǎn)出的質(zhì)量和一致性。

抽樣

抽樣是一種從輸入文本中隨機(jī)選擇標(biāo)記子集的技術(shù)。這允許您在輸入中保留一些多樣性,并且可以幫助生成不同的輸出。然而,這種方法(類(lèi)似于截?cái)?可能會(huì)導(dǎo)致上下文信息的丟失,并降低生成輸出的質(zhì)量。

重組

另一種方法是將輸入文本分割成符號(hào)限制內(nèi)的較小塊或段,并按順序處理它們。通過(guò)這種方式,可以獨(dú)立處理每個(gè)塊,并且可以連接輸出以獲得最終結(jié)果。

編解碼

編碼和解碼是常見(jiàn)的自然語(yǔ)言處理技術(shù),它們將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字表示,反之亦然。這些技術(shù)可用于壓縮、解壓縮、截?cái)嗷蛘归_(kāi)文本以適應(yīng)語(yǔ)言模型的標(biāo)記限制。這種方法需要額外的預(yù)處理步驟,可能會(huì)影響生成輸出的可讀性。

微調(diào)

微調(diào)允許使用較少的特定任務(wù)數(shù)據(jù)來(lái)調(diào)整預(yù)先訓(xùn)練好的語(yǔ)言模型以適應(yīng)特定任務(wù)或領(lǐng)域??梢岳梦⒄{(diào)來(lái)解決語(yǔ)言模型中的標(biāo)記限制,方法是訓(xùn)練模型預(yù)測(cè)一系列文本中的下一個(gè)標(biāo)記,這些文本被分塊或分成更小的部分,每個(gè)部分都在模型的標(biāo)記限制范圍內(nèi)。

6. token 相關(guān)技術(shù)的展望

雖然token傳統(tǒng)上代表文本單位,但是token的概念正在超越語(yǔ)言要素的范疇。最近的進(jìn)展探索了其他模式(如圖像、音頻或視頻)的標(biāo)記,允許 LLM 與這些模式一起處理和生成文本。這種多模式方法為在豐富多樣的數(shù)據(jù)源背景下理解和生成文本提供了新的機(jī)會(huì)。它使 LLM 能夠分析圖像標(biāo)題,生成文本描述,甚至提供詳細(xì)的音頻轉(zhuǎn)錄。

tokenization領(lǐng)域是一個(gè)動(dòng)態(tài)和不斷發(fā)展的研究領(lǐng)域。未來(lái)的進(jìn)步可能集中于解決tokenization的局限性,改進(jìn) OOV 處理,并適應(yīng)新興語(yǔ)言和文本格式的需要。而且,將繼續(xù)完善tokenization技術(shù),納入特定領(lǐng)域的知識(shí),并利用上下文信息來(lái)增強(qiáng)語(yǔ)義理解。tokenization的不斷發(fā)展將進(jìn)一步賦予 LLM 以更高的準(zhǔn)確性、效率和適應(yīng)性來(lái)處理和生成文本。

7.小結(jié)

Token是支持 LLM 語(yǔ)言處理能力的基本構(gòu)件。理解token在 LLM 中的作用,以及tokenization方面的挑戰(zhàn)和進(jìn)步,使我們能夠充分發(fā)揮這些模型的潛力。隨著繼續(xù)探索token的世界,我們將徹底改變機(jī)器理解和生成文本的方式,推動(dòng)自然語(yǔ)言處理的邊界,促進(jìn)各個(gè)領(lǐng)域的創(chuàng)新應(yīng)用。

PS. One more thing, 我們?cè)陂_(kāi)發(fā)大模型應(yīng)用時(shí)應(yīng)該了解的一些數(shù)字如下:

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
語(yǔ)言大模型的進(jìn)化軌跡
OpenAI內(nèi)斗時(shí),Karpathy在錄視頻:《大型語(yǔ)言模型入門(mén)》上線(xiàn)
這篇科普讓你Get所有大模型的核心知識(shí)點(diǎn)
深入聊一聊chatGPT模型原理(無(wú)公式)
AI 已死?不,AIGC 給我們帶來(lái)了新的希望 | 氪記 2022
ChatGPT掀起技術(shù)狂潮:頂流之下,看人工智能喜與憂(yōu)
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服