paint-brush
Söhbetdeşligiňiz sözleri okamaýar - bu sanlary hasaplaýartarapyndan@paulr
2,532 oka
2,532 oka

Söhbetdeşligiňiz sözleri okamaýar - bu sanlary hasaplaýar

tarapyndan 9m2025/02/05
Read on Terminal Reader

Örän uzyn; Okamak

Tokenizasiýa, çig tekstiň GPT ýaly uly dil modelleri (LLM) tarapyndan ulanyp boljak formata öwrülýän derwezesidir. Adam tarapyndan okalýan mazmun bilen modelleriň işleýän sanly maglumatlarynyň arasynda köpri bolup hyzmat edýär. Tekstiň bellik edilmegi, modeliň maglumatlary näderejede dolandyryp biljekdigine gönüden-göni täsir edýär.
featured image - Söhbetdeşligiňiz sözleri okamaýar - bu sanlary hasaplaýar
undefined HackerNoon profile picture

Tokenizasiýa, çig tekstiň GPT ýaly uly dil modelleri (LLM) tarapyndan ulanyp boljak formata öwrülýän derwezesidir. Adam okalýan mazmun bilen modelleriň işleýän sanly maglumatlarynyň arasynda köpri bolup hyzmat edýär. Bir model bitewi tekste düşünip ýa-da döredip bilmezden ozal, bellikler diýilýän kiçi bölümlere girmeli.


GPT arhitekturasynda tokenizasiýa, netijelilige, kontekst penjiresiniň ulanylyşyna we çykyş hiline täsir edip, modeliň öndürijiligi we mümkinçilikleri üçin möhümdir. Tokenizasiýa , sözleri, söz düzümlerini, nyşanlary ýa-da ýörite nyşanlary aňladyp bilýän tokenler diýlip atlandyrylýan kiçi bölümlere bölmek prosesi. Bu bellikler, modeliň işleýän esasy gurluş bloklarydyr. Tekstiň bellik edilmegi, modeliň maglumatlary näderejede dolandyryp biljekdigine, kontekst penjiresinde näçe maglumatyň gabat gelýändigine we döredýän jogaplarynyň hiline gönüden-göni täsir edýär.


Kontekst penjiresi, giriş we öndürilen çykyşy goşmak bilen, modeliň bir amalda işläp bilýän iň köp belgisi. Mysal üçin, 32,000 belgili kontekst penjiresi bolan model, bu çäkde hemme zada - giriş tekstiňize, ulgam görkezmelerine we modeliň jogabyna laýyk gelmelidir. Netijeli tokenizasiýa, berlen teksti görkezmek üçin zerur bolan belgileriň sanyny azaldar, size has köp mazmun goşmaga ýa-da çäkden geçmän has uzyn, baý netijelere mümkinçilik berer. Beýleki bir tarapdan, pes tokenizasiýa, san sanlaryny gereksiz derejede köpeldip biler, kontekst penjiresinde gymmatly ýer ýitirip, modeliň has uzak işlerde ulanylmagyny çäklendirip biler.


Tekst bellik edilenden soň, her bir belgi san goýulmagyna öwrülýär - ýokary ölçegli giňişlikde matematiki şekillendiriş (köplenç ýüzlerçe ýa-da müňlerçe ölçeg). Bu ornaşdyrmak, söz düzüminiň manysyny we gatnaşyklaryny tutuş söz düzüminde ele alýar. Mysal üçin, "ylgamak" we "ylgamak" ýaly meňzeş sözler üçin bellikler bu giňişlikde "ylga" we "stol" ýaly baglanyşyksyz belgilere garanyňda has ýakyn ýerleşdiriler. Bu goýulmalar, modele bellikleriň yzygiderliligine düşünmäge we tekst döredilende indiki belgini çaklamaga mümkinçilik berýär. Bu amal, GPT-e bir soraga jogap bermek, sözlemi tamamlamak ýa-da döredijilik mazmuny döretmek ýaly sazlaşykly, kontekst taýdan degişli netijeleri çykarmaga mümkinçilik berýän zat.

Aslynda, tokenizasiýa diňe bir öňünden işlemek däl, GPT modelleriniň netijeli işlemegi we ýokary hilli netijeleri bermegi üçin möhüm mümkinçilikdir.


Tokenizasiýa nähili işleýär

Tokenizasiýa bir ölçegli ölçeg däl; teksti bellikler diýlip atlandyrylýan bölümlere bölmek üçin döredilen öňünden kesgitlenen düzgünlere ýa-da algoritmlere baglylykda üýtgeýär.


Onuň işleýşine has içgin serediň:


Bölünmek

Bu teksti sözler, söz sözleri ýa-da simwollar ýaly kiçi bölümlere bölmegi öz içine alýar. Döwrebap LLM-ler köplenç netijelilik bilen berkligiň arasynda deňagramlylygy hödürleýänligi sebäpli, subword tokenizasiýasyna bil baglaýarlar. Bu deňagramlylyk ýüze çykýar, sebäbi subword tokenizasiýasy seýrek ýa-da näbelli sözleri kiçijik, has köp ýaýran böleklere bölüp, şol bir wagtyň özünde ýygy-ýygydan sözleri ýeke bellik hökmünde kodlap bilýär.


Mysal :
unhappiness sözüne serediň. Subword belligini ulanyp, aşakdakylara girip biler:

  • un , happi we ness .

Bu çemeleşme kepillendirýär:

  • Netijelilik : un we ness ýaly umumy komponentler dürli sözlerde gaýtadan ulanylýar, söz düzümini azaldýar.
  • Ygtybarlylyk : unhappiness ýaly seýrek sözler, belli söz düzümlerine bölünip, sözden başga meselelerden gaça durmak arkaly işlenip bilner.


Amaly nukdaýnazardan seredeniňde, bu modellere söz düzümini aşa köpeltmezden dürli tekst girişlerinde has gowy umumylaşdyrmaga mümkinçilik berýär.


Kodlamak

Kodlamak, öňünden kesgitlenen söz düzümine esaslanyp, her bir belgä özboluşly bitewi san berýär - bir modeliň ykrar edip biljek ähli bellikleriniň ýygyndysy. GPT we şuňa meňzeş modelleriň kontekstinde söz düzümi okuw wagtynda döredilýär we modeliň tekste düşünmek we döretmek üçin ulanýan söz sözleriniň (ýa-da nyşanlaryň) toplumyny aňladýar.


Mysal üçin, GPT-de:

  • hello sözi, 1356 ýaly bitewi şekillendirilen bir nyşan bolup biler.
  • micropaleontology ýaly seýrek bir termin, hersiniň öz bitewi sanlary bolan micro , paleo we ntology ýaly söz belgilerine bölünip bilner.


ChatGPT üçin bu, ulanyjy tekst girizeninde, tokenizer giriş setirini modeliň söz düzümine esaslanýan bitewi yzygiderlilige kartalaşdyrýandygyny aňladýar. Soňra bu yzygiderlilik nerw ulgamy tarapyndan işlenýär. Sözlük ululygy modeliň ýadynyň ulanylyşyna we hasaplaýyş netijeliligine täsir edýär, çylşyrymly dil gurluşlaryny dolandyrmak we ulgamyň ýerine ýetirijiligini saklamak arasynda deňagramlylygy döredýär.


Dekodirlemek

Dekodirlemek ters prosesdir: bellik sanlarynyň yzygiderliligini adam okalýan tekste öwürmek. Subword belligi üçin, bu söz düzümlerini mümkin boldugyça doly sözlere ýygnamagy göz öňünde tutýar.


Bu nähili işleýär :

  1. Model çykyş wagtynda bitewi sanlaryň (bellikleriň) yzygiderliligini döredýär.
  2. Dekoder söz düzümindäki her bitewi sanlary gözleýär we degişli söz ýa-da nyşan alýar.
  3. Subwords sözleri emele getirmek üçin birleşýär, sazlaşygy üpjün etmek üçin düzgünleri ulanýar (mysal üçin, söz sözleriniň töweregindäki gereksiz ýerleri aýyrmak).


Mysal :
Model, un , happi we ness üçin bellikleri döredýär diýeliň. Dekodirlemek, söz sözlerini birleşdirip, ony unhappiness öwürýär. Boşluklary dogry dolandyrmak un aýratyn söz hökmünde garalmagyny üpjün edýär.


Bu ulgam, seýrek ýa-da çylşyrymly adalgalary dogry görkezmek ukybyny saklamak bilen, söz düzümine esaslanýan modellere teksti netijeli döretmäge mümkinçilik berýär.


Näme üçin dörediji hökmünde alada etmeli?

ChatGPT API tokenizasiýa awtomatiki usulda işleýän bolsa, döredijiler programmalaryna has gowy gözegçilik etmek üçin tiktoken ulanýarlar. Giriş tekstleriniň we jogaplaryň modeliň çäklendirmelerine laýyk gelmegini üpjün edip, bellik çäklerini öňünden barlamaga we dolandyrmaga mümkinçilik berýär. Bu, esasanam uzak gepleşikler ýa-da resminamalar bilen işleýän wagtyňyz ýalňyşlyklardan gaça durmak üçin möhümdir. Mundan başga-da, döredijiler girişleri kesmek ýa-da jemlemek arkaly API çykdajylaryny azaltmak üçin token ulanylyşyny optimizirläp bilerler.


tiktoken şeýle hem , tokenizasiýa meseleleriniň çözülmegine kömek edýär, tekstiň bellenilendigi we kodlanmagynyň aýdyňlygyny üpjün edýär. Uzyn girişleri dolandyrmak üçin tiktoken teksti kiçi böleklere bölüp, uly resminamalary böleklere gaýtadan işlemäge mümkinçilik berýär. Iň soňunda bolsa, ornaşdyrmak ýa-da token derejeli manipulýasiýa ýaly ösen ulanylyş ýagdaýlary üçin, tiktoken bellikleriň döredilişine we gaýtadan işlenişine takyk gözegçiligi üpjün edýär.

 import openai import tiktoken openai.api_key = "your-api-key" # Initialize tokenizer for GPT-4 encoding = tiktoken.get_encoding("cl100k_base") # Function to count tokens def count_tokens(text): return len(encoding.encode(text)) # Example input user_input = "Explain the theory of relativity in detail with examples." conversation_history = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What is the theory of relativity?"} ] # Combine inputs for token counting conversation_text = "".join([msg["content"] for msg in conversation_history]) + user_input # Pre-check input token limit (Use Case 1) token_limit = 4096 if count_tokens(conversation_text) > token_limit: print("Trimming conversation to fit within token limit.") conversation_history = conversation_history[1:] # Trim oldest message # Optimize input by summarizing if too long (Use Case 2) def summarize_if_needed(text, max_tokens=500): if count_tokens(text) > max_tokens: print("Input too long, summarizing...") response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "Summarize the following text."}, {"role": "user", "content": text} ], max_tokens=200 ) return response.choices[0].message["content"] return text long_text = "A very long text input that exceeds the desired token limit ... (more text)" optimized_text = summarize_if_needed(long_text, max_tokens=500) # Debug tokenization (Use Case 3) tokens = encoding.encode("OpenAI's ChatGPT is amazing!") print("Tokenized:", tokens) for token in tokens: print(f"Token ID: {token}, Token: '{encoding.decode([token])}'") # Handle long documents by splitting into chunks (Use Case 4) def split_into_chunks(text, chunk_size): tokens = encoding.encode(text) for i in range(0, len(tokens), chunk_size): yield encoding.decode(tokens[i:i + chunk_size]) document = "A very long document... (more text)" chunks = list(split_into_chunks(document, chunk_size=1000)) # Process each chunk separately responses = [] for chunk in chunks: response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": chunk}], max_tokens=300 ) responses.append(response.choices[0].message["content"]) full_response = " ".join(responses) # Advanced token manipulation (Use Case 5) custom_text = "Analyze the sentiment of this text." tokens = encoding.encode(custom_text) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": encoding.decode(tokens)}], max_tokens=100 ) print("Final Response:", response.choices[0].message["content"])

Koddaky esasy pursatlar:

  1. Tokeni çäklendirmelerini deslapky barlamak , girişiň ýa-da ýalňyşlyklaryň öňüni alyp, modeliň çäklendirmelerine laýyk gelmegini üpjün edýär.
  2. Giriş jemlemesi, uzyn tekst bilen işlän wagtyňyz token ulanylyşyny azaldar.
  3. Düzediş tokenizasiýasy, bellikleriň kodlanmagy we kodlanmagy barada aç-açanlygy üpjün edýär.
  4. Uzyn resminamalary dolandyrylýan böleklere bölmek uly girdejileri netijeli işleýär.
  5. Ösen token manipulýasiýasy, giriş girişlerine takyk gözegçiligi görkezýär.


Bu çemeleşme, ChatGPT API-de gurlanda iň amatly öndürijiligi we çykdajy netijeliligini üpjün edýär.

3. tiktoken gözlemek : GPT-iň Tokenizer

OpenAI-iň tiktoken kitaphanasy netijeli görkezmek we GPT modelleriniň çäklendirmelerine düşünmek üçin döredildi. Onuň nähili işleýändigini öwreneliň:

Ulanyş mysaly

Ine, tiktoken ulanyp teksti nädip bellemelidiginiň Python mysaly. Python depderlerimi işletmek üçin https://colab.research.google.com/ ulanmagy halaýaryn.


 import tiktoken # Choose a model-specific tokenizer encoding = tiktoken.get_encoding("o200k_base") # Input text text = "Tokenization is crucial for GPT models." # Tokenize text tokens = encoding.encode(text) print("Tokens:", tokens) # Decode back to text decoded_text = encoding.decode(tokens) print("Decoded Text:", decoded_text)

Çykyş

 Tokens: [4421, 2860, 382, 19008, 395, 174803, 7015, 13] Decoded Text: Tokenization is crucial for GPT models.

4. ChatGPT API-lerinde Tokenizasiýa üçin dörediji

ChatGPT API-lerini ulananyňyzda, tokenizasiýa düşünmek optimizirlemäge kömek edýär:

  1. Giriş netijeliligi :
    • Girişleri gysga saklaň. Her bir belgi gaýtadan işlemegiň güýjüni sarp edýär we belligiň çägine täsir edýär (mysal üçin, GPT-3,5 üçin 8k, GPT-4 üçin 32k).
    • Diňe möhüm maglumatlary saklamak bilen konteksti netijeli ulanyň.
  2. Model saýlamak :
    • Dürli GPT modellerinde dürli tokenizasiýa häsiýetleri bar. Has uly kontekstli penjireleri bolan modeller has giň giriş mümkinçiligini berýär, ýöne has köp çykdajy edýär.
  3. Çalt gurluş :
    • Gereksiz bellikleri azaltmak üçin formatlamak we sözleýiş bilen synag. Düşünjäni peseltmek, manysyny ýitirmän, uly býudjetini ulaldyp biler.
  4. Inçe düzmek we bellikli manipulýasiýa :
    • Programmalar boýunça birmeňzeş girişleri üpjün etmek üçin padding we kesmek ýaly token derejeli amallary ulanyň.

5. Pythonda ýerine ýetiriş nusgasy

“ChatGPT API” -i soranyňyzda token ulanylyşyny hasaplamak üçin amaly mysal:

 import tiktoken import openai def calculate_tokens(api_input, model="gpt-3.5-turbo"): encoding = tiktoken.encoding_for_model(model) tokens = encoding.encode(api_input) return len(tokens) # Example API call with token usage calculation api_input = "Explain the significance of tokenization in LLMs." model = "gpt-4" token_count = calculate_tokens(api_input, model) print(f"Token count for input: {token_count}") response = openai.ChatCompletion.create( model=model, messages=[{"role": "user", "content": api_input}] ) print("API Response:", response['choices'][0]['message']['content'])

Bu kod çykdajylaryň we öndürijiligiň optimizasiýasy üçin möhüm ähmiýete eýe bolan token ulanylyşyna gözegçilik etmäge kömek edýär.


6

AI programmalaryny gurýan inersenerler üçin tokenizasiýa düşünmek möhümdir, sebäbi bu tekst maglumatlarynyň dil modelleri bilen işlenişine gönüden-göni täsir edýär. Tokenizasiýa, bu modeller üçin esasy giriş bolan sözler, söz düzümleri ýa-da simwollar ýaly çig teksti kiçi, manyly birliklere bölmegi öz içine alýar. Bu amal işläp düzüjilere giriş ululyklaryny takyk dolandyrmaga, gereksiz nyşanlaryň ulanylyşyny azaltmak bilen çykdajylary optimizirlemäge we tekstiň kontekst manysyny saklaýan görnüşde bölünendigine göz ýetirip modeliň işleýşini gowulandyrmaga mümkinçilik berýär. Mundan başga-da, tokenizasiýany gönüden-göni müşderi tarapyndaky koda girizmek, has netijeli keş we has çalt işlemäge mümkinçilik berýän maglumatlary geçirişiň we gijä galmagy azaltmak arkaly amallary tertipleşdirip biler. Tokenizasiýany özleşdirmek bilen, inersenerler hem ygtybarly hem-de tygşytly AI ulgamlaryny gurup bilerler, netijede programmalarynyň duýgurlygyny we göwrümini ýokarlandyrarlar.