English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gość
1 / ?
powrót do lekcji

Słowa na liczby

Tłumacz na granicy

Model językowy nigdy nie widzi tekstu. Widzi liczby całkowite. Tokenizator znajduje się na przejściu granicznym: ludzkie słowa wpływają, identyfikatory liczbowe wypływają. Generowanie odwraca przepływ: identyfikatory liczbowe wracają, tokenizator renderuje tekst.


Trzy zadania:


1. Segmentacja. Podziel ciąg znaków na fragmenty (tokeny).

2. Mapowanie. Przypisz każdemu fragmentowi unikalny identyfikator liczbowy z ustalonego słownika.

3. Odwrotne mapowanie. Odtwórz tekst z identyfikatorów w czasie generowania.


Dlaczego fragmenty, a nie całe słowa

Słownik całych słów rośnie eksplozywnie. Sam angielski ma setki tysięcy form. Co gorsza, model trenowany na całych słowach nie radzi sobie z literówką, nowym nazwiskiem czy obcym zwrotem: każde nieznane słowo mapuje się na pojedynczy slot <UNK>.


Tokenizacja subwordowa to naprawia. Słownik powszechnych fragmentów składa się w dowolne słowo, w tym te nigdy niewidziane podczas treningu. Dwie strategie dominują: BPE (byte pair encoding) i segmentacja dystrybucyjna. ANDREA wybiera drugą strategię.


Harris vs BPE

Dlaczego Subword

Całkowy tokenizator słów zawodzi na rzadkim słowie `proporian` (słowo wyprodukowane przez ANDREA-12M w kroku 43,100). Nazwij dwa różne problemy, które tokenizator subwordowy (BPE lub Harris) unika, a całkowity tokenizator słów nie może.

Gdzie następuje podział słowa

Zellig Harris, 1955

Lingwista o imieniu Zellig Harris zauważył coś interesującego. Wewnątrz słowa liczba różnych liter następujących po danej sekwencji liter zmienia się gwałtownie. Po un możesz znaleźć dziesiątki liter: a, b, c, d, e ... Po unbel następuje tylko niewielki zestaw: i (następnie ievable).


Skok w różnorodności następników oznacza prawdopodobną granicę morfemu. Po un (prefiksie) różnorodność rośnie, ponieważ wiele rdzeni może nastąpić. Wewnątrz rdzenia jak believ różnorodność pozostaje niska, ponieważ litery przewidują się nawzajem. Na przejściu między morfemami różnorodność rośnie ponownie.


Od skoków różnorodności do segmentów

Przeprowadź ten detektor na korpusie treningowym. Każde słowo dostarcza statystycznych dowodów. Tokenizator zbiera często występujące segmenty, które powtarzają się na granicach w kształcie morfemów: un, re, pre, believ, know, ing, able, ly, tion, ed.


Brak etykiet. Żaden lingwista nie oznacza morfemów ręcznie. Statystyka współwystępowania liter wykonuje tę pracę.


Harris vs BPE


WłaściwośćHarrisBPE
Kryterium granicySkok różnorodności następnikówCzęstotliwość par
Kształt językowyWyrównane do morfemów (prefiks, rdzeń, sufiks)Częste pary bajtów
Przykład: unbelievablyun + believ + abl + yunb + eli + eva + bly
UogólnienieSilne (rdzeń + afiks rekombinują się)Słabsze (pary nie muszą się wyrównywać)

Oba produkują fragmenty podjednostek. Fragmenty Harrisa tendencją do wyrównywania się z tym, co lingwista nazwałby morfemem: najmniejszą jednostką znaczącą. Fragmenty BPE optymalizują kompresję: najbardziej częsta para bajtów jest scalana, niezależnie od znaczenia.

Segmentuj słowo

Zastosuj rozumowanie w stylu Harrisa do słowa `replayed`. Zaproponuj trzy segmenty morfemowe i uzasadnij każdy jedną frazą (jaką rolę pełni: prefiks, rdzeń czy sufiks).

Trzy Bloki Słownictwa

Anatomia Słownictwa ANDREA

Tokenizacja Harris produkuje słownictwo z trzema blokami:


Płyta 1: 256 bazowych bajtów. Każdy możliwy bajt UTF-8 (0x00 przez 0xFF) otrzymuje swój własny identyfikator tokenu. Sieć bezpieczeństwa: każdy znak zawarty w korpusie, tokenizer może przedstawić jako sekwencję bajtów. Nigdy nie aktywuje się <UNK>.


Płyta 2: N segmentów morfemów. Powszechne fragmenty odkryte poprzez analizę dystrybucyjną. ANDREA-12M trenowane N = 4096; ANDREA-120M trenowane N = 8192. Każdy segment kompresuje powtarzający się ciąg wielobajtowy do pojedynczego tokenu.


Płyta 3: 1 token BOS. Specjalny znacznik umieszczony na początku każdej sekwencji treningowej. Pozwala modelowi nauczyć się 'ta pozycja nie ma przeszłości'. ANDREA-12M i ANDREA-120M oba rezerwują dokładnie jeden ID dla BOS.


Rozmiary słownictwa


ModelBase bytesMorpheme segments (N)BOSVocab size
ANDREA-12M256409614353
ANDREA-120M256819218449

256 + N + 1 = rozmiar słownictwa. Proste. Powtarzalne. Otwarte.


Dlaczego blok bajtów ma znaczenie

Rezerwowy mechanizm bajtowy gwarantuje pełne pokrycie. Jeśli model napotka 日本語 i tokenizer nie ma japońskich morfemów, pojedyncze bajty UTF-8 przenoszą sekwencję dalej. Model trenuje się na bajtach; jakość na rzadkich skryptach zależy od pojemności i ekspozycji, ale żaden wejściowy tekst nigdy nie powoduje awarii tokenizera.

Oblicz słownik

ANDREA-480M (trzeci model w rodzinie, przyszła aktywność 24 o nim opowie) planuje wytrenować tokenizer Harris z N = 16 384 segmentami na większym korpusie. Oblicz rozmiar jego słownika. Pokaż formułę. Następnie wyjaśnij w jednym zdaniu, dlaczego warstwa bajtowa pozostaje na poziomie 256, nawet gdy N rośnie.

Początek sekwencji

Dlaczego sekwencja potrzebuje znacznika

Dekoder-only transformer przewiduje następny token na podstawie wcześniejszego kontekstu. Pozycja 0 nie ma wcześniejszego kontekstu. Bez znacznika pozycja 0 znajduje się w logicznej luce: model nie ma do czego się odwołać.


BOS rozwiązuje lukę. Pojedynczy specjalny token (ID = 256 + N) znajduje się na początku każdej sekwencji podczas treningu. Model uczy się:


- 'Gdy widzisz BOS, przewiduj prawdopodobny pierwszy token naturalnego tekstu.'

- 'Gdy widzisz BOS po którym następuje słowo, to słowo jest początkiem sekwencji, a nie kontynuacją.'


Jeden token, wiele zastosowań


BOS pojawia się w:


- Czasie treningu: dołączany na początku każdego fragmentu tekstu podawanego modelowi.

- Czasie inferencji: dołączany na początku promptu, aby model zobaczył znajomy sygnał „nowego początku”.

- Oznaczanie granic: w niektórych potokach, separator między sklejonymi dokumentami.


ANDREA rezerwuje dokładnie jeden ID dla BOS. Brak EOS, brak PAD, brak specjalnych tokenów poza tym, co potrzebne dla słownika. Prostota pozostaje wartością permakomputera: każdy token musi zasłużyć na swoje miejsce.


Aktywność 3 cd.

Aktywność 3 (grow_a_language_model_tokenizer_diet) omawia, co się dzieje, gdy N jest zbyt duże lub korpus tokenizera różni się od korpusu treningowego. ANDREA-12M zmarnowało 63,6% swojego słownika; ANDREA-120M to naprawiło. Czytaj dalej.

Kompromisy tylko BOS

Zastanów się nad wyborem projektowym ANDREA: tylko jeden specjalny token (BOS), brak EOS, brak PAD. Nazwij jeden kompromis, który to tworzy. Kompromis może być zaletą (prostszy silnik, mniej zmarnowanych slotów) lub ograniczeniem (niektóre sztuczki treningowe wymagają dodatkowych tokenów). Jedno zdanie wystarczy.