Praktyczne tworzenie promptów dla mniejszych modeli LLM

Maud Nalpas
Maud Nalpas

Skuteczność dużego modelu językowego zależy w dużym stopniu od instrukcji daj mu. Inżynieria promptów to tworzenia pytań w sposób optymalizowany z LLM. To kluczowy krok na drodze do wdrożenia funkcji opartej na LLM.

Inżynieria promptów to proces iteracyjny. Jeśli miałeś już doświadczenie z z różnych modeli LLM, prawdopodobnie zauważyłeś już, że musisz dostosować prompt, aby aby osiągnąć lepsze wyniki.

Dotyczy to również modeli o różnych rozmiarach.

Interfejsy czatu obsługiwane przez duże modele LLM, takie jak Gemini czy ChatGPT, mogą często osiągać satysfakcjonujące wyniki przy minimalnym wysiłku. Jednak w przypadku pracy z domyślnym, mniejszym LLM, który nie jest dostrojony, musisz dostosować swoje podejście.

Mniejsze modele LLM są mniej wydajne i wykorzystują mniejszą pulę informacji.

Co rozumiemy przez „mniejsze LLM”?

Definiowanie rozmiarów LLM jest skomplikowane i nie zawsze jest ujawnione przez twórców.

W tym dokumencie „mniejsze LLM” oznacza dowolny model poniżej 30B parametrów. Obecnie modele z od kilku milionów do kilku miliardów parametrów mogą które można by uruchomić w przeglądarce na urządzeniach konsumenckich.

Gdzie są używane mniejsze modele LLM?

  • generatywna AI na urządzeniu lub w przeglądarce, na przykład jeśli korzystasz z Gemma 2B. za pomocą interfejsu LLM Inference API firmy MediaPipe (odpowiednie dla urządzeń mających tylko procesor) lub DistilBert w przeglądarce Transformers.js. Pobranie modelu i uruchomienie wnioskowania na urządzeniu użytkownika jest możliwe tylko z mniejszymi modelami LLM, aby zapewnić rozsądne pobieranie plików z sieci pamięci i ograniczeń GPU/CPU urządzenia.
  • Niestandardowa generatywna AI po stronie serwera. Małe modele otwartej wagi, takie jak Gemma 2B, Gemma 7B lub Gemma 27B możesz uruchomić na własnym serwerze opcjonalnie).

Rozpocznij

Interfejsy czatu obsługiwane przez duże modele LLM, takie jak Gemini czy ChatGPT, często mogą przynieść satysfakcjonujące wyniki przy minimalnym nakładzie pracy z promptami. Jednak w przypadku pracy z mniejszymi LLM musisz dostosować swoje podejście. Mniejsze modele LLM są mniej wydajne i wykorzystują mniejszą pulę informacji.

Podaj kontekst i dokładne instrukcje dotyczące formatowania

Aby uzyskać optymalne wyniki w przypadku małych LLM, twórz bardziej szczegółowe i szczegółowe prompty.

Na przykład:

Based on a user review, provide a product rating as an integer between 1 and 5. \n
Only output the integer.

Review: "${review}"
Rating:
Dane wejściowe (opinia) Wartość wyjściowa (ocena)
  Większy LLM (Gemini 1.5) Mniejszy LLM (Gemma 2B)
Jest okrągły! Dobrze rozkłada ciężar i jest zaskakująco komfortowo nawet podczas całodziennych wędrówek. Polecam. 5 4 na 5 gwiazdek**
Paski są wąskie i zaczęły wtykać się w ramiona pod ciężkim obciążeniem. 1 2/5

Chociaż Gemini 1.5 zapewnia pożądany wynik za pomocą tego prostego promptu, dane wyjściowe są niezadowalające:

  • Format jest nieprawidłowy. Prosiliśmy o liczbę całkowitą.
  • Ocena nie wydaje się dokładna. Pierwsza opinia jest na tyle entuzjastyczna, że daje ocenę 5-gwiazdkową.

Aby rozwiązać ten problem, musimy użyć technik inżynierii promptów, Prompty jedno, kilka lub kilka zdjęć i łańcuch myśli. Musimy też dostarczyć jasne instrukcje dotyczące formatu i nalegać, aby model mogą korzystać z pełnego zakresu ocen.

Na przykład:

`Analyze a product review, and then based on your analysis give me the
corresponding rating (integer). The rating should be an integer between 1 and
5. 1 is the worst rating, and 5 is the best rating. A strongly dissatisfied
review that only mentions issues should have a rating of 1 (worst). A strongly
satisfied review that only mentions positives and upsides should have a rating
of 5 (best). Be opinionated. Use the full range of possible ratings (1 to
5). \n\n
    \n\n
    Here are some examples of reviews and their corresponding analyses and
    ratings:
    \n\n
    Review: 'Stylish and functional. Not sure how it'll handle rugged outdoor
    use, but it's perfect for urban exploring.'
    Analysis: The reviewer appreciates the product's style and basic
    functionality. They express some uncertainty about its ruggedness but
    overall find it suitable for their intended use, resulting in a positive,
    but not top-tier rating.
    Rating (integer): 4
    \n\n
    Review: 'It's a solid backpack at a decent price. Does the job, but nothing
    particularly amazing about it.'
    Analysis: This reflects an average opinion. The backpack is functional and
    fulfills its essential purpose. However, the reviewer finds it unremarkable
    and lacking any standout features deserving of higher praise.
    Rating (integer): 3
    \n\n
    Review: 'The waist belt broke on my first trip! Customer service was unresponsive too. Would not recommend.'
    Analysis: A serious product defect and poor customer service experience naturally warrants the lowest possible rating. The reviewer is extremely unsatisfied with both the product and the company.
    Rating (integer): 1
    \n\n
    Review: 'Love how many pockets and compartments it has. Keeps everything organized on long trips. Durable too!'
    Analysis: The enthusiastic review highlights specific features the user loves (organization and durability), indicating great satisfaction with the product. This justifies the highest rating.
    Rating (integer): 5
    \n\n
    Review: 'The straps are a bit flimsy, and they started digging into my shoulders under heavy loads.'
    Analysis: While not a totally negative review, a significant comfort issue leads the reviewer to rate the product poorly. The straps are a key component of a backpack, and their failure to perform well under load is a major flaw.
    Rating (integer): 1
    \n\n
    Now, here is the review you need to assess:
    \n
    Review: "${review}" \n`;
Dane wejściowe (opinia) Dane wyjściowe z mniejszym modelem LLM (Gemma 2B)

Jest okrągły! Dobrze i zaskakująco rozkłada wagę i wygodne nawet na całodzienne wędrówki. Polecam.

Analiza: ta opinia jest bardzo pozytywna i podkreśla dopasowania i wygody, co wskazuje na duże zadowolenie z produktu. Ten uzasadnia wysoką ocenę.

Ocena (liczba całkowita): 5

Paski są wąskie i zaczęły wtykać się w ramiona pod dużym obciążeniem.

**Analiza:** opinia podkreśla istotny problem związany z komfortem: pasy. Sugeruje też, że produkt może nie być odpowiedni dla ciężkich przedmiotów. ani długotrwałego korzystania z aplikacji.

**Ocena:** 1 (najgorsza)

Nasz bardziej złożony prompt w połączeniu z technikami tworzenia promptów typu „few-shot” i „łańcuchem myśli” zapewnia dokładniejsze oceny.

Spodziewaj się ręcznej analizy danych wyjściowych

Zawsze należy ręcznie wyczyścić i zinterpretować dane wyjściowe LLM, ale jest to zwłaszcza w przypadku mniejszych LLM, które mogą dawać mniej dopracowane wyniki. może wymagać zastosowania promptów w ramach łańcucha myśli.

W pierwszym przykładzie użyliśmy promptów typu „łańcuch myśli”, więc dane wyjściowe zawierają zarówno analiza, jak i ocenę, którą musimy przeanalizować ręcznie. Poza tym zwróć uwagę na niespójne formatowanie na danych wyjściowych w poprzedniej sekcji: model czasami zapisuje format Markdown, ale nie za każdym razem.

// Use try/catch to catch (parsing) errors
try {
  // Parse the output for a rating
  const int = /[1-5]/;
  const ratingAsString = llmOutput.match(int)[0];
  // Parse as int
  const ratingAsInt = parseInt(ratingAsString);
  // `checkRating` checks the rating is a number between 1 and 5, since the
  // regEx may catch a number like "100"
  const finalRating = checkRating(ratingAsInt);
} catch (e) {
  console.error('Error', e);
}

Różnice w Mind API

Interfejsy Cloud APIs LLM, takie jak Gemini API czy OpenAI, które są zwykle na większe modele LLM, oferują przydatne funkcje promptów. Na przykład Gemini 1.5 Pro oferuje instrukcje systemowe oraz Tryb JSON.

Obecnie te funkcje nie zawsze są dostępne w przypadku korzystania z modelu niestandardowego lub dla mniejszych modeli LLM, do których dostęp jest uzyskiwany za pomocą interfejsów API AI w przeglądarce, takich jak Interfejs MediaPipe LLM Inference API lub Transformers.js. Chociaż nie jest to ograniczenie techniczne, interfejsy API AI w przeglądarce zwykle i lepiej schudnąć.

Limity tokenów uważności

Ponieważ prompt dla mniejszych modeli LLM musi zawierać przykłady lub bardziej szczegółowe instrukcje, prawdopodobnie zajmie to więcej czasu i zajmie więcej danych wejściowych o ile występuje.

Poza tym mniejsze modele mają zwykle mniejszy limit tokenów wejściowych. Dla: Na przykład Gemini 1.5 Pro ma limit 1 mln tokenów wejściowych a modele Gemma mają okno kontekstu 8K.

korzystać z funkcji liczenia tokenów; aby nie przekroczyć limitu.

Dostosuj szacowany czas trwania

W szacowanym czasie pracy inżynierów uwzględnij projektowanie i testowanie promptów.

Ze względu na różnice w interfejsach API i limity tokenów prawdopodobnie będziesz potrzebować więcej czasu i wysiłku aby stworzyć prompt dla mniejszego LLM niż większy. Testowanie i weryfikacja z LLM może też wymagać większego wysiłku.

inżynier promptów czy dostrajanie?

Inżynieria promptów to preferowana metoda w przypadku programistów stron internetowych generatywna AI trenowanie niestandardowe i dostrajanie. Jednak w niektórych przypadkach zaawansowana inżynieria promptów może nie wystarczyć, zwłaszcza jeśli korzystasz z mniejszego modelu LLM.

Użyj dostrajania, gdy:

  • Potrzebujesz najwyższej dokładności i skuteczności w konkretnym zadaniu. Wysoka dostrajanie bezpośrednio dostosowuje wewnętrzne parametry modelu w celu uzyskania optymalnych wyników.
  • Masz już wyselekcjonowane dane związane z Twoim zadaniem, oznaczone już etykietą preferowanych danych wyjściowych. Dane te są potrzebne do skutecznego dostrajania reklam.
  • Wielokrotnie używasz modelu do tego samego celu. Można dostroić raz używany do określonego zadania.