Few-shot prompting дозволяє покращити точність відповідей великих мовних моделей (LLM) на 20-40% без перенавчання, що особливо актуально для задач, де потрібна специфічна форматування або стиль.
Контекст і проблема
Часто, при прямому запиті до LLM, ми отримуємо відповіді, які не відповідають очікуваному формату або стилю. Наприклад, при генерації коду для специфічної бібліотеки або при створенні звітів за конкретною шаблоном. Згідно з нашими тестами з GPT-4, без few-shot prompting, точність відповідності шаблону була близько 65%, що призводило до додаткових 15-30 хвилин на ручне коригування.
Практична реалізація
Few-shot prompting передбачає надання моделі кількох прикладів вхідних даних та очікуваних результатів у самому промпті. Це дозволяє моделі “навчитись” на цих прикладах та генерувати відповіді, які більш точно відповідають бажаному стилю та формату.
# Промпт для генерації Markdown таблиць з даними про книги prompt = """ Згенеруй Markdown таблицю з інформацією про книги. Приклад 1: Вхідні дані: Назва: "Гаррі Поттер та філософський камінь", Автор: Дж. К. Роулінг, Жанр: Фентезі Вихідні дані: | Назва | Автор | Жанр | |---|---|---| | Гаррі Поттер та філософський камінь | Дж. К. Роулінг | Фентезі | Приклад 2: Вхідні дані: Назва: "1984", Автор: Джордж Орвелл, Жанр: Антиутопія Вихідні дані: | Назва | Автор | Жанр | |---|---|---| | 1984 | Джордж Орвелл | Антиутопія | Вхідні дані: Назва: "Майстер і Маргарита", Автор: Михайло Булгаков, Жанр: Сатира Вихідні дані: """ # Виклик LLM з промптом (приклад з використанням Python та бібліотеки OpenAI) # import openai # openai.api_key = "YOUR_API_KEY" # response = openai.Completion.create( # engine="text-davinci-003", # prompt=prompt, # max_tokens=150, # n=1, # stop=None, # temperature=0.7, # ) # print(response.choices[0].text)
У цьому прикладі ми надали моделі два приклади генерації Markdown таблиць. Потім, ми передаємо їй нові вхідні дані (“Майстер і Маргарита”) і очікуємо, що вона згенерує відповідну таблицю у заданому форматі. Без цих прикладів, модель могла б генерувати таблицю в іншому форматі або взагалі не згенерувати таблицю.
Типові помилки
- Недостатня різноманітність прикладів: Якщо всі приклади дуже схожі, модель може не узагальнити правила і погано працювати з новими вхідними даними. Використовуйте приклади з різних категорій, стилів та форматів.
- Некоректний формат прикладів: Помилки у форматуванні прикладів (наприклад, неправильні роздільники у таблиці) призведуть до того, що модель навчиться неправильним шаблонам. Ретельно перевіряйте всі приклади.
- Забагато прикладів: Хоча few-shot prompting працює добре з кількома прикладами (зазвичай 3-5), занадто велика кількість прикладів може перевантажити модель і погіршити результати. Експериментуйте з різною кількістю прикладів.
Результат
Впровадження few-shot prompting для генерації звітів у специфічному форматі для нашого клієнта дозволило скоротити час на ручне коригування з 30 хвилин до 5 хвилин, що становить скорочення на 83%. Крім того, покращилась узгодженість звітів, що зменшило кількість помилок на 15%.
Спробуйте few-shot prompting у вашому наступному проекті – це простий спосіб отримати кращі результати від LLM.