Przygotowywanie danych w celu dostosowania modelu uzupełniania czatu

Ukończone

Jeśli zdecydujesz, że chcesz dostosować model językowy, musisz zidentyfikować zestaw danych, którego możesz użyć do dostosowania modelu językowego.

Podobnie jak w przypadku dowolnego modelu uczenia maszynowego jakość zestawu danych ma duży wpływ na jakość modelu. Chociaż potrzebujesz mniej danych niż w przypadku trenowania modelu językowego od podstaw, nadal może być konieczne wystarczająca ilość danych, aby zmaksymalizować spójność żądanego modelu. Ilość potrzebnych danych zależy od przypadku użycia.

Podczas dostosowywania modelu językowego do ukończenia czatu dane używane do dostosowania modelu to kolekcja przykładowych konwersacji. W szczególności dane powinny zawierać trzy składniki:

  • Komunikat systemowy
  • Komunikat użytkownika
  • Odpowiedź asystenta

Trzy zmienne łączą się w pliku JSON Lines lub JSONL. Na przykład jeden wiersz w takim zestawie danych może wyglądać następująco:

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}

Zestaw danych powinien pokazywać idealne zachowanie modelu. Ten zestaw danych można utworzyć na podstawie historii czatów aplikacji czatu. Kilka kwestii, o których należy pamiętać, gdy używasz rzeczywistych danych, jest:

  • Usuń wszelkie informacje osobiste lub poufne.
  • Nie tylko skoncentruj się na tworzeniu dużego zestawu danych szkoleniowych, ale także upewnij się, że zestaw danych zawiera zróżnicowany zestaw przykładów.

W zestawie danych można dołączyć wiele kolei konwersacji w jednym wierszu. Jeśli chcesz dostosować tylko określone komunikaty asystenta, możesz opcjonalnie użyć weight pary klucz-wartość. Gdy waga jest ustawiona na 0, komunikat jest ignorowany, po ustawieniu wartości 1 komunikat jest dołączany do trenowania.

Przykładowy format pliku czatu z wieloma obrotami z wagami:

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}

Podczas przygotowywania zestawu danych w celu dostosowania modelu językowego należy zrozumieć żądane zachowania modelu, utworzyć zestaw danych w formacie JSONL i upewnić się, że uwzględnione przykłady są wysokiej jakości i zróżnicowane. Przygotowując zestaw danych, masz większe prawdopodobieństwo, że dostosowany model zwiększa wydajność aplikacji do czatu.