Kas ir tekstvienības?
Tekstvienības ir teksta pamatelementi, ko apstrādā OpenAI modeļi. Atkarībā no valodas un konteksta tās var būt gan viena rakstzīme, gan vesels vārds. Tekstvienību skaitu ietekmē atstarpes, pieturzīmes un vārdu daļas. Šādi API iekšēji sadala jūsu tekstu pirms atbildes ģenerēšanas.
Noderīgi aptuveni aprēķini angļu valodai:
1 tekstvienība ≈ 4 rakstzīmes
1 tekstvienība ≈ ¾ vārda
100 tekstvienības ≈ 75 vārdi
1–2 teikumi ≈ 30 tekstvienības
1 rindkopa ≈ 100 tekstvienības
~1500 vārdu ≈ 2048 tekstvienības
Dalīšana tekstvienībās atšķiras atkarībā no modeļa un kodējuma. Lai noskaidrotu precīzu skaitu izvēlētajam modelim, izmantojiet tekstvienību dalīšanas rīku vai tiktoken.encoding_for_model(model).
Piemēri
Tālāk sniegti daži reāli teksta paraugi un to aptuvenais tekstvienību skaits:
Veina Grecka citāts „Jūs neiemetīsiet 100% metienu, kurus neizdarīsiet” = 11 tekstvienības
OpenAI harta = 476 tekstvienības
ASV Neatkarības deklarācija = 1695 tekstvienības
Kā aprēķina tekstvienību skaitu
Kad nosūtāt tekstu API:
Teksts tiek sadalīts tekstvienībās.
Modelis apstrādā šīs tekstvienības.
Atbilde tiek ģenerēta kā tekstvienību virkne un pēc tam pārvērsta atpakaļ tekstā.
Tekstvienību lietojumu uzskaita vairākās kategorijās:
Ievades tekstvienības — tekstvienības jūsu pieprasījumā.
Izvades tekstvienības — atbildē ģenerētās tekstvienības.
Kešotās tekstvienības — atkārtoti izmantotas tekstvienības sarunas vēsturē (parasti par zemāku maksu).
Spriestspējas tekstvienības — dažos progresīvos modeļos pirms galīgās izvades izveides iekšēji tiek iekļauti papildu „domāšanas soļi”.
Šie skaitļi tiek rādīti API atbildes metadatos un izmantoti norēķiniem un lietojuma uzskaitei.
Lai tuvāk izpētītu dalīšanu tekstvienībās, varat izmantot mūsu interaktīvo tekstvienību dalīšanas rīku, kas ļauj aprēķināt tekstvienību skaitu un redzēt, kā teksts tajās tiek sadalīts.
Savukārt, lai programmiski dalītu tekstu tekstvienībās, izmantojiet Tiktoken — ātru BPE dalītāju, kas īpaši paredzēts OpenAI modeļiem.
Tekstvienību ierobežojumi
Katram modelim ir maksimālais kopējais tekstvienību ierobežojums (ievade + izvade). Pašreizējie lielas ietilpības modeļi kontekstā atbalsta līdz pat vairākiem simtiem tūkstošu tekstvienību, taču praktiskie ierobežojumi var atšķirties atkarībā no modeļa versijas un jūsu lietojuma līmeņa.
Ja pārsniedzat ierobežojumu, varat:
Saīsināt vai pārfrāzēt uzvednes.
Sadalīt lielu tekstu mazākās daļās.
Pirms nosūtīšanas apkopot vai priekšapstrādāt ievades datus.
Tekstvienību cenas
API lietojuma cenu aprēķina par tekstvienību; tā atšķiras atkarībā no modeļa un no tā, vai tekstvienības ir ievades, izvades vai kešotas. Pašreizējos tarifus skatiet OpenAI cenu lapā. Daži spriestspējas modeļi iekšēji var izmantot vairāk tekstvienību, taču tie cenšas uzlabot efektivitāti, samazinot viena pabeigta uzdevuma izpildei vajadzīgo tekstvienību skaitu.
Tekstvienību izpēte
API apstrādā vārdus atbilstoši to kontekstam korpusa datos. Modeļi saņem uzvedni, pārvērš ievadi tekstvienību sarakstā, apstrādā uzvedni un pārvērš prognozētās tekstvienības atpakaļ vārdos, ko redzam atbildē.
Divi šķietami vienādi vārdi var tikt pārvērsti atšķirīgās tekstvienībās atkarībā no to izvietojuma tekstā. Aplūkojiet, kā API ģenerē tekstvienību vērtības vārdam „red” atkarībā no tā konteksta tekstā:
Pirmajā piemērā tekstvienība „2266”, kas atbilst „ red”, ietver beigu atstarpi (ņemiet vērā, ka šie ir demonstrācijas nolūkiem izmantoti tekstvienību ID piemēri).
Tekstvienība „2296”, kas atbilst „ Red” (ar sākuma atstarpi un lielo sākumburtu), atšķiras no tekstvienības „2266”, kas atbilst „ red” ar mazo sākumburtu.
Ja „Red” ir lietots teikuma sākumā, ģenerētajā tekstvienībā nav sākuma atstarpes. Tekstvienība „7738” atšķiras no abiem iepriekšējiem šā vārda piemēriem.
Novērojumi:
Jo iespējamāka vai biežāk sastopama ir tekstvienība, jo mazāks tai piešķirtais numurs:
Punktam ģenerētā tekstvienība visos trijos teikumos ir vienāda („13”). Tas ir tāpēc, ka korpusa datos punkts dažādos kontekstos tiek lietots visai līdzīgi.
Vārdam „red” ģenerētā tekstvienība atšķiras atkarībā no tā novietojuma teikumā:
Mazais sākumburts teikuma vidū: „ red” — (tekstvienība: „2266”)
Lielais sākumburts teikuma vidū: „ Red” — (tekstvienība: „2297”)
Lielais sākumburts teikuma sākumā: „Red” — (tekstvienība: „7738”)
