Przez Charlesa Fostera
W Finetune tworzymy rozwiązania AI, aby rozwiązać niektóre z najtrudniejszych problemów w technologii edukacyjnej, w tym automatyczne generowanie treści oraz klasyfikację i rekomendacje zasobów edukacyjnych opartych na AI. Ponieważ tematyka, którą muszą obsługiwać nasze narzędzia, obejmuje zakres od K-12 do rozwoju siły roboczej, inwestujemy dużo w metody, które pozwalają nam skalować szerokość i głębokość tego, co obejmują nasze modele. Kluczowymi elementami tego podejścia są elastyczne metody szkolenia wyspecjalizowanych sieci neuronowych w domenach, w których modele ogólnego przeznaczenia są niewystarczające. W tym wpisie na blogu chciałbym podzielić się częścią naszej podróży eksplorującej te metody.
Dostrajanie
Typowe dostrajanie modeli języka neuronowego obejmuje równoczesną optymalizację wszystkich ich trenowalnych parametrów, co może sięgać wielu miliardów w przypadku sieci takich jak GPT-J. W takich skalach zarówno dostrajanie, jak i procesy wnioskowania nie są trywialne, co utrudnia ich powszechne wdrażanie. W naszych własnych badaniach kilka kluczowych kwestii wydawało się najważniejsze:
- Już samo uruchomienie tych modeli transformatorów powoduje wykorzystanie limitów pamięci GPU (VRAM), a podczas precyzyjnego dostrajania istnieje bezpośrednia zależność między liczbą optymalizowanych parametrów a ilością zużywanej dodatkowej pamięci.
- W wyniku modyfikacji wszystkich parametrów sieci przepływ informacji poznanych podczas wstępnego treningu może zostać zakłócony, co może skutkować zapomnieniem i utratą zdolności do wykonywania niewielu operacji.
- Dostarczanie dostosowanego do potrzeb modelu wielogigabajtowego dla każdego przypadku użycia wiązałoby się z niedopuszczalnymi opóźnieniami i kosztami.
Te połączone obawy zmotywowały nas do zbadania innych metod z niedawnej literatury, aby dostroić nasze neuronowe modele językowe. Na szczęście w ciągu ostatniego roku sfera badań nad przetwarzaniem języka naturalnego opracowała mnóstwo metod, aby obniżyć koszty dostosowywania zachowania wstępnie wytrenowanych modeli językowych.
Szybkie strojenie
Oryginalne podejście, które zastosowaliśmy, nazywa się Prompt Tuning lub Soft Prompting (Lester i in. 2021). W tej metodzie parametry sieci z wstępnego treningu są utrzymywane w stanie zamrożonym. Zamiast tego dodajemy niewielką liczbę wektorów uczenia się (zwykle od 10 do 20) przed tokenami wejściowymi prompt i dostrajamy te osadzenia zgodnie ze zwykłym celem modelowania języka na zestawie danych do precyzyjnego dostrajania. Te osadzenia nie reprezentują tokenów języka; możemy je postrzegać jako gęsty magazyn kontekstu, na którym sieć może warunkować — za pośrednictwem mechanizmu uwagi — podczas gdy dokonuje przewidywań dotyczących tokenów w sekwencji.
Dostrajanie podpowiedzi dodaje tylko niewielki koszt czasu wykonania do modelu, ponieważ miękkie podpowiedzi mieszczą się w zakresie kilobajtów i mogą być uruchamiane w sieci równolegle. Te cechy sprawiają, że są one atrakcyjne do obsługi wielu równoczesnych użytkowników, jak wskazują ostatnie wdrożenia tej techniki w opowiadaniu historii AI . Jednak integrowanie miękkich podpowiedzi z popularnymi strukturami, takimi jak transformatory HuggingFace'a, jest złożone, ponieważ interfejsy są w dużej mierze zaprojektowane do działania na sekwencjach indeksów tokenów, a nie na gęstych wektorach. Ponadto, w miarę dodawania większego kontekstu między miękkim podpowiedzią a generowaniem, zaczynamy dostrzegać nierównowagę między siłą warunkowania na miękkim podpowiedzi i na kontekście tokena. Zachowanie możliwości elastycznego dodawania setek tokenów kontekstu w czasie wykonania było dla nas ważne, ponieważ zapewnia dodatkowe, szczegółowe dźwignie kontroli w procesie tworzenia elementów. Jeśli chcemy pokierować modelem tak, aby skupił się na treści z określonej strony podręcznika lub aby napisał element do czytania ze zrozumieniem lub aby dostarczył kilka przykładów, kontekstualizacja w długiej formie ma znaczenie.
Adaptery niskiego rzędu (LoRA)
Później przeszliśmy na metodę zwaną LoRA lub Low Rank Adapters (Hu i in. 2021). Ta technika została opracowana przez badaczy z Microsoftu pracujących nad modelami o rozmiarze GPT-3 i opiera się na wcześniejszych podejściach do adapterów. Jeśli pomyślimy o transformatorze jako o stopniowo udoskonalającym swoje ukryte stany tokenów z każdą warstwą resztkową, koncepcja adaptera polega na dodaniu małej, zależnej od wejścia delty (zainicjowanej do no-op) do tych ukrytych stanów na danej warstwie. To delikatne szturchnięcie jest następnie w stanie modulować swoje zachowanie w dół strumienia, na przykład poprzez podkreślenie części wejścia, które są istotne dla zadania.
Adaptery niskiego rzędu to rodzaj adaptera, który jest ukierunkowany na podprzestrzeń niskiego rzędu, co zmniejsza liczbę nowych parametrów, które musimy trenować (z D 2 do 2 × D × r, gdzie D jest w tysiącach). Podobnie jak w przypadku miękkiego podpowiadania, oryginalne parametry sieci są zamrożone, aby zachować wszelką wiedzę, jaką zawierają z wstępnego treningu, i dostosowujemy tylko te nowe parametry adaptera. W naszych wewnętrznych testach widzieliśmy dobre wskaźniki z LoRA. Oprócz umożliwienia nam dostrajania dużych modeli przy małych budżetach sprzętowych, modele z warstwami adaptera przeplatanymi zachowują również wiele ze swojej pierwotnej zdolności do niewielu strzałów, jednocześnie dostosowując się do domeny docelowej. Warto zauważyć, że integrowanie adapterów niskiego rzędu z innymi strukturami jest proste, ponieważ możemy po prostu zamienić istniejące warstwy liniowe na warstwy liniowe + adapter w razie potrzeby.
Poruszamy się do przodu
Aby dać przedsmak tego, jakiego rodzaju usprawnienia widzieliśmy w naszych eksploracjach, poniżej udostępniamy niewielki wybór generacji z modeli wyszkolonych przy użyciu różnych podejść dostrajania. Wszystkie te elementy zostały wygenerowane przy użyciu tych samych trzech monitów wejściowych dotyczących świadczenia opieki pielęgniarskiej: pierwszy skupiał się na ustalaniu priorytetów potrzeb wielu klientów, a drugi na podejmowaniu działań w zespole.
Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.
Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.
Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.
Możemy zauważyć, że podczas gdy najlepsze pozycje z modelu bazowego są w dużej mierze płynne i logicznie spójne, mają tendencję do bycia niedostatecznie ograniczonymi (jak w #1) lub wymagają bardzo małej wiedzy z zakresu pielęgniarstwa (jak w #3). W porównaniu z pozycjami bazowymi pozycje z modeli szybkiego strojenia i adaptera niskiej rangi zawierają więcej szczegółów w swoich bodźcach, rdzeniach i opcjach. Temat jest istotny dla domeny, wymagając konkretnej wiedzy w zakresie zarządzania opieką pielęgniarską, a nie polegając wyłącznie na wiedzy ogólnej. Ponadto pozycje z modelu adaptera niskiej rangi mają bardziej spójną formę. Na przykład pozycje konsekwentnie odnoszą się do „klienta”, a nie do „pacjenta”, zgodnie z językiem, który prawdopodobnie pojawiłby się w ocenach (porównaj #5 z #1 i #3). Z powodzeniem śledzi również odniesienia do wielu osób w ramach scenariusza (porównaj #6 z #4).
Ulepszenia w zakresie pokrycia domeny, spójności stylistycznej i logicznej mogą przełożyć się na znaczące ulepszenia w zakresie użyteczności neuronowych modeli językowych. To dopiero początek: wraz z dojrzewaniem technologii, zostanie odkrytych jeszcze więcej metod tworzenia dostosowanych, kontrolowanych modeli języka naturalnego na dużą skalę. A wraz z odkrywaniem tych metod będziemy nadal włączać to, co najlepsze ze środowiska akademickiego, przemysłu i niezależnych badań do produktów Finetune.
Serdeczne podziękowania dla Nicka Koprowicza, Jessego Hamera, Saada Khana i Ogdena Morse'a za miłe i pomocne uwagi, które udzielili mi podczas tworzenia tego wpisu na blogu.
Odniesienia
Hu, EJ, Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Adaptacja niskiego rzędu dużych modeli językowych. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R. i Constant, N. (2021). Siła skali w dostrajaniu szybkiego działania parametrów. Wydruk wstępny arXiv arXiv:2104.08691.