Używanie dużych modeli językowych do budowy generatywnych aplikacji AI wiąże się z nowymi wyzwaniami. Kluczową kwestią jest zapewnienie jakości odpowiedzi (dokładności i trafności) w treści generowanej przez model na określone zapytanie użytkownika. W poprzednich lekcjach omawialiśmy techniki takie jak inżynieria promptów oraz generowanie wspomagane wyszukiwaniem, które próbują rozwiązać problem przez modyfikację wejścia promptu do istniejącego modelu.
W dzisiejszej lekcji omówimy trzecią technikę, dostosowywanie (fine-tuning), która stara się rozwiązać wyzwanie przez ponowne trenowanie samego modelu na dodatkowych danych. Przyjrzyjmy się szczegółom.
Ta lekcja wprowadza koncepcję dostosowywania dla wcześniej wytrenowanych modeli językowych, bada zalety i wyzwania takiego podejścia oraz daje wskazówki, kiedy i jak używać dostosowywania, aby poprawić wydajność twoich generatywnych modeli AI.
Na koniec tej lekcji powinieneś być w stanie odpowiedzieć na następujące pytania:
- Czym jest dostosowywanie modeli językowych?
- Kiedy i dlaczego dostosowywanie jest przydatne?
- Jak mogę dostosować wcześniej wytrenowany model?
- Jakie są ograniczenia dostosowywania?
Gotowy? Zaczynajmy.
Chcesz zobaczyć ogólny obraz tego, co omówimy, zanim zaczniemy? Sprawdź ten ilustrowany przewodnik, który opisuje ścieżkę nauki dla tej lekcji – od poznania podstawowych pojęć i motywacji do dostosowywania, po zrozumienie procesu i najlepszych praktyk realizacji zadania dostosowywania. To fascynujący temat do eksploracji, więc nie zapomnij odwiedzić strony Zasoby po dodatkowe linki wspierające twoją samodzielną naukę!
Z definicji, duże modele językowe są wcześniej wytrenowane na dużych ilościach tekstu pochodzącego z różnych źródeł, w tym internetu. Jak dowiedzieliśmy się w poprzednich lekcjach, potrzebujemy technik takich jak inżynieria promptów i generowanie wspomagane wyszukiwaniem, aby poprawić jakość odpowiedzi modelu na pytania użytkownika („prompty”).
Popularną techniką inżynierii promptów jest udzielanie modelowi większej ilości wskazówek, co ma znaleźć się w odpowiedzi, poprzez dostarczanie instrukcji (wyraźnych wskazówek) lub pokazywanie kilku przykładów (wskazówki niejawne). Nazywa się to uczeniem na małej liczbie przykładów (few-shot learning), ale ma dwa ograniczenia:
- Limity tokenów modelu mogą ograniczać liczbę przykładów, które można podać, i zmniejszać efektywność.
- Koszty tokenów modelu mogą sprawić, że dodawanie przykładów do każdego promptu będzie drogie, ograniczając elastyczność.
Dostosowywanie to powszechna praktyka w systemach uczenia maszynowego, gdzie bierzemy wcześniej wytrenowany model i ponownie go trenujemy na nowych danych, aby poprawić jego wydajność w określonym zadaniu. W kontekście modeli językowych możemy dostosować wcześniej wytrenowany model za pomocą wyselekcjonowanego zestawu przykładów dla konkretnego zadania lub domeny zastosowania, tworząc model dostosowany, który może być dokładniejszy i bardziej trafny dla tego konkretnie zadania lub domeny. Dodatkowym efektem dostosowywania jest to, że może ono również zmniejszyć liczbę przykładów potrzebnych przy uczeniu na małej liczbie przykładów – zmniejszając użycie tokenów i powiązane koszty.
W tym kontekście, gdy mówimy o dostosowywaniu, odnosimy się do nadzorowanego dostosowywania, gdzie ponowne trenowanie odbywa się przez dodanie nowych danych, które nie były częścią oryginalnego zestawu treningowego. To różni się od nienadzorowanego dostosowywania, gdzie model jest ponownie trenowany na oryginalnych danych, ale z różnymi hiperparametrami.
Kluczową rzeczą do zapamiętania jest to, że dostosowywanie to zaawansowana technika, która wymaga pewnego poziomu wiedzy, aby uzyskać oczekiwane rezultaty. Jeśli zostanie wykonane niepoprawnie, może nie przynieść spodziewanych ulepszeń, a nawet pogorszyć wydajność modelu w twojej docelowej domenie.
Zatem zanim nauczysz się „jak” dostosowywać modele językowe, musisz wiedzieć „dlaczego” powinieneś obrać tę ścieżkę i „kiedy” rozpocząć proces dostosowywania. Zacznij od zadania sobie tych pytań:
- Przypadek użycia: Jaki jest twój przypadek użycia dla dostosowywania? Co chcesz poprawić w obecnym wcześniej wytrenowanym modelu?
- Alternatywy: Czy próbowałeś innych technik, aby osiągnąć pożądane wyniki? Użyj ich do stworzenia bazy do porównania.
- Inżynieria promptów: Spróbuj technik takich jak few-shot prompting z przykładami odpowiedzi. Oceń jakość odpowiedzi.
- Generowanie wspomagane wyszukiwaniem: Spróbuj wzbogacić prompt o wyniki zapytań uzyskanych przez wyszukiwanie w twoich danych. Oceń jakość odpowiedzi.
- Koszty: Czy zidentyfikowałeś koszty związane z dostosowywaniem?
- Możliwość dostosowania – czy model wcześniej wytrenowany jest dostępny do dostosowania?
- Nakład pracy – przygotowanie danych treningowych, ocena i dopracowanie modelu.
- Obliczenia – przeprowadzanie zadań dostosowywania i wdrażanie modelu dostosowanego.
- Dane – dostęp do dostatecznej jakości przykładów, aby dostosowanie miało efekt.
- Korzyści: Czy potwierdziłeś korzyści płynące z dostosowywania?
- Jakość – czy model dostosowany przewyższał bazę?
- Koszty – czy zmniejsza zużycie tokenów przez uproszczenie promptów?
- Rozszerzalność – czy możesz wykorzystać model bazowy dla nowych domen?
Odpowiadając na te pytania, powinieneś móc zdecydować, czy dostosowywanie jest właściwym podejściem dla twojego przypadku użycia. Idealnie, podejście ma sens tylko wtedy, gdy korzyści przewyższają koszty. Gdy już zdecydujesz się kontynuować, czas pomyśleć o tym, jak możesz dostosować wcześniej wytrenowany model.
Chcesz uzyskać więcej informacji na temat procesu podejmowania decyzji? Obejrzyj Dostosować czy nie dostosować
Aby dostosować wcześniej wytrenowany model, potrzebujesz:
- wcześniej wytrenowanego modelu do dostosowania
- zbioru danych do wykorzystania w dostosowywaniu
- środowiska treningowego do uruchomienia zadania dostosowywania
- środowiska hostingowego do wdrożenia modelu dostosowanego
Poniższe zasoby dostarczają samouczków krok po kroku, które przeprowadzą cię przez rzeczywisty przykład z wybranym modelem i wyselekcjonowanym zbiorem danych. Aby skorzystać z tych samouczków, potrzebujesz konta u konkretnego dostawcy, wraz z dostępem do odpowiednich modeli i zbiorów danych.
| Dostawca | Samouczek | Opis |
|---|---|---|
| OpenAI | Jak dostosować modele czatu | Naucz się dostosowywać gpt-35-turbo do konkretnej domeny („asystent przepisów”) poprzez przygotowanie danych treningowych, uruchomienie zadania dostosowywania oraz wykorzystanie modelu dostosowanego do wnioskowania. |
| Azure OpenAI | Samouczek dostosowywania GPT 3.5 Turbo | Naucz się jak dostosować model gpt-35-turbo-0613 na platformie Azure przechodząc przez etapy tworzenia i przesyłania danych treningowych, uruchamiania zadania dostosowywania, wdrożenia i użycia nowego modelu. |
| Hugging Face | Dostosowywanie LLM z Hugging Face | Ten wpis na blogu przeprowadza cię przez dostosowywanie otwartego LLM (np. CodeLlama 7B) z użyciem biblioteki transformers oraz Transformer Reinforcement Learning (TRL) z otwartymi zbiorami danych na Hugging Face. |
| 🤗 AutoTrain | Dostosowywanie LLM z AutoTrain | AutoTrain (lub AutoTrain Advanced) to biblioteka Pythona opracowana przez Hugging Face, która umożliwia dostosowywanie dla wielu różnych zadań, w tym dostosowywanie LLM. AutoTrain to rozwiązanie bez kodu, a dostosowywanie można przeprowadzić w swojej własnej chmurze, na Hugging Face Spaces lub lokalnie. Obsługuje zarówno interfejs webowy, CLI, jak i trening przez pliki konfiguracyjne yaml. |
| 🦥 Unsloth | Dostosowywanie LLM z Unsloth | Unsloth to otwartoźródłowy framework wspierający dostosowywanie LLM i uczenie ze wzmocnieniem (RL). Unsloth usprawnia lokalne trenowanie, ocenę i wdrażanie z gotowymi do użycia notatnikami. Obsługuje również syntezę mowy (TTS), BERT oraz modele multimodalne. Aby zacząć, przeczytaj ich krok po kroku Przewodnik po dostosowywaniu LLM. |
Wybierz jeden z powyższych samouczków i przejdź go krok po kroku. Możemy przygotować wersję tych samouczków w notatnikach Jupyter w tym repozytorium wyłącznie dla odniesienia. Prosimy korzystaj bezpośrednio z oryginalnych źródeł, aby uzyskać najnowsze wersje.
Po ukończeniu tej lekcji, sprawdź naszą kolekcję Generatywnej Sztucznej Inteligencji, aby dalej rozwijać swoją wiedzę o Generatywnej AI!
Gratulacje!! Ukończyłeś ostatnią lekcję z serii v2 tego kursu! Nie przestawaj się uczyć i tworzyć. **Sprawdź stronę ZASOBY z listą dodatkowych sugestii właśnie na ten temat.
Nasza seria lekcji v1 również została zaktualizowana o więcej zadań i koncepcji. Poświęć chwilę, aby odświeżyć swoją wiedzę – i prosimy, dziel się swoimi pytaniami i opiniami, aby pomóc nam ulepszać te lekcje dla społeczności.
Zrzeczenie się odpowiedzialności:
Niniejszy dokument został przetłumaczony przy użyciu usługi tłumaczeń AI Co-op Translator. Mimo że dążymy do jak największej dokładności, prosimy pamiętać, że tłumaczenia automatyczne mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być uznawany za autorytatywne źródło. W przypadku istotnych informacji zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.

