譯者 | 布加迪
審校 | 重樓
大語言模型(LLM)已徹底改變了機器理解和生成人類語言的方式,幕后支持從聊天機器人到內(nèi)容生成器的各種應用。其出色功能背后是每個開發(fā)人員都應該理解的一個基本概念:詞元。這個基本單元直接影響使用LLM時的模型性能和成本。本文探討了什么是詞元、詞元在LLM中的功能以及為什么理解分詞對于高效實施AI至關(guān)重要。
了解大語言模型詞元
在AI和自然語言處理中,詞元是模型處理的文本的基本單位。不像人類將文本讀取成連續(xù)字符流,LLM 將輸入文本分解為名為詞元的小段。詞元可以是整個單詞、單詞的一部分、單個字符,甚至標點符號或空格。
LLM識別的獨特分詞集構(gòu)成了詞匯表。通過將文本轉(zhuǎn)換成分詞,LLM就可以以更易于分析和生成的形式處理語言,充當理解和生成文本的基礎(chǔ)。
LLM如何使用詞元?
LLM使用詞元作為從文本中學習和生成新內(nèi)容的基礎(chǔ):
1. 在訓練期間,LLM讀取大量文本,并將每個句子或文檔轉(zhuǎn)換成詞元序列。
2. 每個詞元都映射到名為嵌入(Embedding)的數(shù)字表示,以便模型可以對其執(zhí)行數(shù)學運算。
3. 模型學習詞元序列的模式——哪些詞元通常在各種上下文中跟在其他詞元的后面。
4. 在推理期間,輸入文本被分詞化,模型處理這些詞元序列以預測下一個最有可能的詞元。
5. 模型根據(jù)學習到的概率按順序輸出每個詞元,每次一個詞元地生成最終響應。
這種基于詞元的方法允許LLM捕獲單詞與短語之間的統(tǒng)計關(guān)系,從而使它們能夠生成連貫且上下文相關(guān)的文本。
分詞:如何將文本轉(zhuǎn)換成詞元?
分詞是將原始文本轉(zhuǎn)換成詞元的過程——這是LLM的關(guān)鍵第一步,因為它們無法直接理解人類語言。分詞方法顯著影響了模型處理文本的效率以及它處理不同語言和寫作風格的能力。
基于單詞、基于字符和子單詞的分詞
分詞主要有三種方法,每種方法都有不同的優(yōu)缺點:
1. 基于單詞的分詞:將每個單詞(用空格或標點符號分隔開來)視為單個詞元。比如說,“LLMs are amazing!”變成[“LLMs”、“are”、“amazing”、“!”]。這種方法很直觀,但處理不熟悉的單詞(詞匯表之外的單詞)時會遇到困難,并且需要非常大的詞匯量。
2. 基于字符的分詞:該方法將文本分解成單個字符或字節(jié)。使用相同的例子,它變成 [“L”、“L”、“M”、“s”、“ ”、“a”、“r”、“e”等]。該方法可以表示任何可能的字符串,但會顯著增加序列長度,從而降低處理效率。
3. 子詞分詞:通過將單詞分解成有意義的部分來達到平衡,這些部分可能比單詞短,但比字符長。像“unhappiness”這樣的罕見單詞可能變成[“un”、“happiness”]。這種方法可以有效地處理新的或罕見單詞,同時保持詞匯量易于管理,使其成為現(xiàn)代LLM的首選方法。
單詞vs詞元
詞元是LLM處理的基本單位,而單詞是語言單位。詞元可以是整個單詞、單詞的一部分、字符或標點符號。在英語中,一個單詞平均等于大約1.3個詞元,但這因語言和分詞方法而異。
不同分詞方法的例子
考慮不同的分詞器如何處理單詞“internationalization”:
- 基于單詞的分詞器可能將其視為單個詞元(如果已知)或?qū)⑵?/span>標為[UNK](未知)。
- 基于字符的分詞器會將其分解成20個單獨的字符。
- 子詞分詞器可能會將其拆分成[“inter”、“national”、“ization”],以識別常見的形態(tài)單位。
這些差異表明了分詞為何很重要——選擇會影響模型處理文本的效率以及它們?nèi)绾翁幚聿皇煜さ膯卧~或表達。
常見的分詞工具
幾個工具和庫可以幫助開發(fā)人員實現(xiàn)分詞:
- NLTK和spaCy:擁有基于單詞的基本分詞器的流行NLP庫。
- SentencePiece:支持BPE和Unigram分詞方法的谷歌庫。
- Hugging Face分詞器:高效實現(xiàn)了各種分詞算法。
- OpenAI的Tiktoken:針對OpenAI的模型(比如GPT-3和GPT-4)優(yōu)化的快速分詞器。
- 針對特定語言的分詞器:比如面向日語的Mecab或面向其他語言的專用工具。
詞元限制和模型約束
每個語言模型都有預定義的詞元限制,為輸入和輸出建立了界限。這種約束定義了“上下文長度”,即模型在單個操作中可以處理的詞元數(shù)量。比如說,擁有2048個詞元上下文長度和500個詞元輸入的模型可以生成最多1548個詞元的響應。這種限制是由于計算約束、內(nèi)存限制以及架構(gòu)設(shè)計選擇而存在的。
了解這種界限至關(guān)重要,因為超出界限可能會導致響應被截斷、信息丟失或模型錯誤。隨著上下文窗口逐漸擴大,模型不斷發(fā)展,但遵循詞元限制有效運作仍然是LLM開發(fā)人員的一項基本技能。
詞元限制如何影響性能?
詞元限制直接影響LLM維護上下文和生成連貫響應的能力。當輸入接近或超過這種限制時,模型可能會丟失文本中先前呈現(xiàn)的信息,從而導致準確性下降、細節(jié)被遺忘或輸出相互矛盾。有限的詞元上下文尤其會阻礙需要長期推理、解決復雜問題或參考整個文檔中信息的任務(wù)。
此外,不同的分詞方法會影響文本的編碼效率——低效的分詞導致詞元的浪費,這些詞元會計入上下文限制,卻不添加有意義的信息。了解這些性能影響有助于開發(fā)人員設(shè)計更有效的提示和交互。
優(yōu)化詞元使用的幾個策略
有效的詞元優(yōu)化始于設(shè)計簡潔清晰的提示,以消除冗余和不必要的細節(jié)。開發(fā)人員可以在適當?shù)那闆r下使用縮寫、刪除重復信息以及將查詢重點放在特定點而不是廣泛的主題上,以此減少詞元的使用。使用后續(xù)問題而不是冗長的單個提示來構(gòu)建交互可以最大限度地提高上下文利用率。
采用分塊(將內(nèi)容分成更小的段)等技術(shù)有助于在處理大型文檔時管理詞元約束。選擇詞元方法更高效的模型,并監(jiān)測成本敏感型應用的詞元使用情況,可以顯著降低運營費用,同時保持輸出質(zhì)量。
實踐中的LLM分詞
從聊天機器人到內(nèi)容生成系統(tǒng),分詞影響與LLM的每次交互。了解其實際意義有助于開發(fā)人員創(chuàng)建更有效的AI應用程序。
AI應用中分詞的例子:
- 聊天機器人和虛擬助手:分詞用戶查詢和以前的對話歷史記錄,以保持上下文。
- 機器翻譯:分詞源文本,在語言之間映射詞元,并生成翻譯輸出。
- 文本摘要:將文檔分解成詞元,以識別要提取或抽象的關(guān)鍵信息。
- 代碼完成:使用可以理解編程語言語法的專用分詞器。
分詞對SEO和內(nèi)容創(chuàng)建的影響
使用LLM創(chuàng)建內(nèi)容時,分詞會影響以下幾個方面:
- 內(nèi)容長度和結(jié)構(gòu):詞元限制可能需要將內(nèi)容分解成部分或規(guī)劃多部分生成。
- 關(guān)鍵字使用:了解如何分詞特定術(shù)語有助于確保它們在生成的內(nèi)容中完整顯示。
- 內(nèi)容規(guī)劃:有效的提示需要了解不同指令的分詞效率。
流行的分詞算法及差異
現(xiàn)代LLM通常使用子詞分詞算法,每種算法都有不同的方法:
- 字節(jié)對編碼(BPE)
字節(jié)對編碼從單個字符入手,并迭代合并最常見的相鄰詞元對,直至達到目標詞匯量。這種數(shù)據(jù)驅(qū)動的方法可以有效地處理常見單詞,同時仍能夠表示罕見術(shù)語。OpenAI的GPT模型使用BPE的變體。
- Unigram語言模型
Unigram分詞采用一種概率方法,從許多候選詞元入手,并迭代刪除對生成訓練文本的可能性影響最小的詞元。這樣可以創(chuàng)建更具有語言意義的詞元。
- WordPiece分詞
WordPiece是為BERT開發(fā)的,與BPE相似,但優(yōu)先考慮最大化訓練數(shù)據(jù)可能性的合并,而不僅僅是頻率。它通常用特殊前綴(比如BERT中的“##”)標記子詞單元,以表示單詞連續(xù)。
Tiktoken(OpenAI 的分詞器)
OpenAI為GPT-3.5和GPT-4等模型定制的分詞器實現(xiàn)了BPE,并針對速度和效率進行了優(yōu)化。它處理多語言文本、特殊字符和多種格式,同時保持可逆性(詞元可以完美地轉(zhuǎn)換回原始文本)。
結(jié)論
詞元構(gòu)成了大語言模型理解、處理和生成文本的基礎(chǔ)。理解分詞不僅僅具有學術(shù)意義,它還直接影響應用程序的效率、成本管理和輸出質(zhì)量。如果掌握分詞概念和優(yōu)化策略,開發(fā)人員可以構(gòu)建更有效的AI應用程序,最大限度地發(fā)揮LLM的潛力,同時最大限度地減少其局限性。
隨著模型不斷發(fā)展,上下文窗口越來越大、架構(gòu)越來越復雜,有效的詞元管理對于力求創(chuàng)建最先進應用程序的AI開發(fā)人員來說仍是一項關(guān)鍵技能。
原文標題:What Is an LLM Token: Beginner-Friendly Guide for Developers,作者:Janakiram MSV