Кіріспе
Жақын орналасқан таңбалар (токендер) біріктіру негізделген қысу алгоритмі Байт жұптық кодтау (диграмдық кодтау деп те аталады) - бұл алгоритм, алғаш рет 1994 жылы Филип Гейдж мәтіннің тізбектерін кесте түрінде кодтау үшін сипаттады. Оның модификациясы үлкен тілдік модельдік токендеуші ретінде ерекшеленеді, ол бір таңбаларды (бір цифрларды немесе бір тыныш белгілерді қоса алғанда) және бүтін сөздерді (әсіресе ең ұзын құрама сөздерді) кодтайтын белгілерді біріктіре алады. Бұл өзгерту бірінші қадамда барлық бірегей таңбаларды ұзындығы n грамм болатын 1 таңбадан тұратын бастапқы жиынтық деп санайды (яғни бастапқы "токендер"). Содан кейін, қатардағы таңбалардың ең жиі кездесетін жұбы жаңа, 2 таңбалық ұзындығы n граммға біріктіріледі және жұптың барлық инстанциялары осы жаңа токенмен ауыстырылады. Бұл әдіс белгіленген мөлшердегі сөздік қоры жиналғанға дейін қайталанады. Жаңа сөздерді әрқашан соңғы сөздік белгілері мен бастапқы таңбалар жиынтығынан құрауға болатынын ескеріңіз. Корпуста табылған барлық бірегей белгілер белгілер сөздікінде тізімделеді, оның мөлшері GPT 3.5 және GPT 4 жағдайында 100256 болып табылады. Өзгертілген және бастапқы алгоритмнің айырмашылығы - бастапқы алгоритм деректер байттарының ең жиі кездесетін жұбын біріктірмейді, бірақ оларды бастапқы деректер жиынтығында жоқ жаңа байтпен алмастырады. Бастапқы деректер жиынтығын қайта құру үшін алмастыру кестесі қажет. Алгоритм токенизация үшін тиімді, өйткені оның есептеу жүктемесі төмен және тұрақты және сенімді болып қалады.
Byte pair encoding (also known as digram coding) is an algorithm, first described in 1994 by Philip Gage for encoding strings of text into tabular form for use in downstream modeling. Its modification is notable as the large language model tokenizer with an ability to combine both tokens that encode single characters (including single digits or single punctuation marks) and those that encode whole words (even the longest compound words). This modification, in the first step, assumes all unique characters to be an initial set of 1 character long n grams (i. e. initial "tokens"). Then, successively the most frequent pair of adjacent characters is merged into a new, 2 character long n gram and all instances of the pair are replaced by this new token. This is repeated until a vocabulary of prescribed size is obtained. Note that new words can always be constructed from final vocabulary tokens and initial set characters. All the unique tokens found in a corpus are listed in a token vocabulary, the size of which, in the case of GPT 3.5 and GPT 4, is 100256. The difference between the modified and the original algorithm is that the original algorithm does not merge the most frequent pair of bytes of data, but replaces them by a new byte that was not contained in the initial dataset. A lookup table of the replacements is required to rebuild the initial dataset. The algorithm is effective for tokenization because it has low computational overhead and remains consistent and reliable.
Бастапқы алгоритм
Бастапқы алгоритм мақсатты мәтіндегі таңбалардың ең көп таралған жалғасқан тізбегін пайдаланылмаған "орналастырушы" байттармен қайталап алмастыру арқылы жұмыс істейді. Итерация, егер тізбекті табу мүмкін болмаса, мақсатты мәтінді тиімді түрде сығылған күйде қалдырады. Декомпрессияны осы процесті кері қайтару арқылы, іздеу кестесін пайдалана отырып, белгілі орын ұстаушы терминдерді олардың сәйкес келетін белгіленген реттілігіне қарсы сұрау арқылы орындауға болады. Бастапқы қағазда бұл іздеу кестесі кодталады және сығылған мәтінмен бірге сақталады.