Zwiększanie wydajności modelu językowego

Ukończone

Po wdrożeniu modelu w punkcie końcowym możesz wchodzić w interakcje z modelem, aby dowiedzieć się, jak działa. Jeśli chcesz dostosować model do swojego przypadku użycia, istnieje kilka strategii optymalizacji, które można zastosować w celu zwiększenia wydajności modelu. Przyjrzyjmy się różnym strategiom.

Rozmowa z modelem na placu zabaw

Możesz użyć preferowanego języka kodowania, aby wywołać interfejs API do punktu końcowego modelu lub porozmawiać z modelem bezpośrednio na placu zabaw portalu Azure AI Foundry. Plac zabaw dla czatów to szybki i łatwy sposób eksperymentowania i poprawiania wydajności modelu.

Zrzut ekranu przedstawiający plac zabaw czatu w narzędziu Azure AI Foundry.

Jakość pytań wysyłanych do modelu językowego ma bezpośredni wpływ na jakość odpowiedzi, które otrzymujesz. Możesz dokładnie skonstruować swoje pytanie lub monitować, aby otrzymywać lepsze i bardziej interesujące odpowiedzi. Proces projektowania i optymalizowania monitów o poprawę wydajności modelu jest również nazywany inżynierią monitu. Gdy użytkownik końcowy udostępnia odpowiednie, specyficzne, jednoznaczne i dobrze ustrukturyzowane monity, model może lepiej zrozumieć kontekst i wygenerować dokładniejsze odpowiedzi.

Stosowanie inżynierii monitu

Podczas rozmowy z modelem na placu zabaw możesz zastosować kilka technik inżynierii monitów, aby sprawdzić, czy poprawia dane wyjściowe modelu.

Zrzut ekranu przedstawiający pytanie do modelu językowego i odpowiedzi.

Przyjrzyjmy się niektórym technikom, których użytkownik końcowy może użyć do zastosowania inżynierii monitu:

  • Podaj jasne instrukcje: podaj szczegółowe informacje o żądanych danych wyjściowych. Zrzut ekranu przedstawiający pytanie z jasnymi instrukcjami, dzięki czemu odpowiedź jest bardziej specyficzna dla przypadku użycia.
  • Sformatuj instrukcje: użyj nagłówków i delineatorów, aby ułatwić odczytywanie pytania. Zrzut ekranu przedstawiający pytanie sformatowane, aby wyjaśnić, czym powinien być przetłumaczony tekst.
  • Użyj wskazówek: podaj kluczowe słowa lub wskaźniki dotyczące sposobu, w jaki model powinien uruchomić odpowiedź, na przykład określony język kodowania. Zrzut ekranu przedstawiający pytanie z wskazówką, od której zaczyna się odpowiedź asystenta.

Aktualizowanie komunikatu systemowego

Na placu zabaw czatu możesz wyświetlić kod JSON bieżącej konwersacji, wybierając pozycję Pokaż kod JSON:

Zrzut ekranu przedstawiający dane wyjściowe JSON konwersacji na placu zabaw czatu.

Pokazany kod JSON to dane wejściowe do punktu końcowego modelu za każdym razem, gdy wysyłasz nowy komunikat. Komunikat systemowy jest zawsze częścią danych wejściowych. Chociaż nie jest widoczny dla użytkowników końcowych, komunikat systemowy umożliwia deweloperowi dostosowanie zachowania modelu przez podanie instrukcji dotyczących jego zachowania.

Oto niektóre typowe techniki inżynieryjne monitów, które mają być stosowane jako deweloper, aktualizując komunikat systemowy:

  • Użyj jednego strzału lub kilku strzałów: podaj co najmniej jeden przykład, aby ułatwić modelowi zidentyfikowanie żądanego wzorca. Możesz dodać sekcję do komunikatu systemowego, aby dodać co najmniej jeden przykład. Zrzut ekranu przedstawiający komunikat systemowy z przykładami.
  • Użyj łańcucha myśli: poinstruuj model, aby uzasadnić krok po kroku, poinstruując go, aby zastanowić się nad zadaniem. Zrzut ekranu przedstawiający rozumowanie łańcuchowe myślenia.
  • Dodaj kontekst: Zwiększ dokładność modelu, podając kontekst lub informacje podstawowe istotne dla zadania. Kontekst można podać za pomocą danych uziemienia dostarczonych w wierszu polecenia użytkownika lub przez połączenie własnego źródła danych. Zrzut ekranu przedstawiający opcję dodawania danych dla kontekstu.

Stosowanie strategii optymalizacji modelu

Jako deweloper możesz również zastosować inne strategie optymalizacji, aby poprawić wydajność modelu bez konieczności pisania określonych monitów przez użytkownika końcowego. Obok monitu inżynieryjnego wybrana strategia zależy od wymagań:

Diagram przedstawiający różne strategie optymalizacji wydajności modelu.

  • Optymalizacja pod kątem kontekstu: gdy model nie ma kontekstowej wiedzy i chcesz zmaksymalizować dokładność odpowiedzi.
  • Zoptymalizuj model: Jeśli chcesz ulepszyć format odpowiedzi, styl lub mowę, maksymalizując spójność zachowania.

Aby zoptymalizować kontekst, można zastosować wzorzec generacji rozszerzonej (RAG). Za pomocą programu RAG uziemisz dane, najpierw pobierając kontekst ze źródła danych przed wygenerowaniem odpowiedzi. Na przykład chcesz, aby klienci zadawali pytania dotyczące hoteli oferowanych w katalogu rezerwacji podróży.

Jeśli chcesz, aby model odpowiadał w określonym stylu lub formacie, możesz poinstruować model, aby to zrobił, dodając wytyczne w komunikacie systemowym. Gdy zauważysz, że zachowanie modelu nie jest spójne, można dodatkowo wymusić spójność zachowania, dostrajając model. Dzięki dostrajaniu można wytrenować podstawowy model językowy na zestawie danych przed zintegrowaniem go z aplikacją.

Możesz również użyć kombinacji strategii optymalizacji, takich jak RAG i dostosowany model, aby ulepszyć aplikację językową.