Бажаєте, щоб великі мовні моделі (LLM) генерували більш точні та релевантні відповіді? Few-shot prompting дозволяє досягти цього, навчаючи модель на прикладах без додаткового тренування, що часто дає кращі результати, ніж zero-shot підхід.
В чому проблема або контекст
Zero-shot prompting, коли ви просто даєте LLM запит без жодних прикладів, часто призводить до непередбачуваних результатів. Наприклад, при генерації SQL-запитів з опису, zero-shot підхід може генерувати неправильні запити в 30% випадків. Для задач, де потрібна специфічна структура або формат відповіді, zero-shot часто недостатньо. Few-shot prompting вирішує цю проблему, надаючи моделі кілька прикладів вхідних даних та очікуваних результатів.
Практична реалізація
Створюємо промпт, що містить кілька прикладів запиту та відповіді, а потім додаємо новий запит, щоб модель згенерувала відповідь на його основі.
# Промпт для генерації SQL запитів з опису
prompt = """
Згенеруй SQL запит на основі опису:
Опис: Отримати ім'я та email всіх користувачів з міста Київ.
SQL: SELECT name, email FROM users WHERE city = 'Kyiv';
Опис: Отримати загальну кількість замовлень за останній місяць.
SQL: SELECT COUNT(*) FROM orders WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
Опис: Отримати назву товару та ціну для товарів, які мають рейтинг вище 4.5.
SQL: SELECT product_name, price FROM products WHERE rating > 4.5;
Опис: {new_description}
SQL:"""
new_description = "Отримати ім'я та вік всіх клієнтів, які зробили замовлення на суму більше 1000 гривень."
final_prompt = prompt.format(new_description=new_description)
# Використання LLM для генерації SQL запиту
# (Приклад з використанням бібліотеки Transformers для Python)
# from transformers import pipeline
# generator = pipeline('text-generation', model='gpt2')
# result = generator(final_prompt, max_length=200, num_return_sequences=1)
# generated_sql = result[0]['generated_text'].split("SQL:")[1].strip()
# print(generated_sql)
Цей підхід дозволяє моделі зрозуміти очікуваний формат відповіді та на основі наданих прикладів згенерувати більш точний SQL запит. Надання 3-5 прикладів зазвичай достатньо для досягнення хорошого результату, але експерименти з кількістю прикладів можуть покращити точність.
Типові помилки
- Перша помилка: Некоректні приклади. Якщо приклади не представляють реальні сценарії або містять помилки, модель навчиться неправильним патернам. Перевіряйте приклади на точність.
- Друга: Недостатня різноманітність прикладів. Обмежений набір прикладів призводить до того, що модель не може узагальнювати та генерує відповіді лише для схожих запитів. Додавайте різноманітні приклади, що охоплюють різні сценарії.
- Третя: Занадто довгі приклади. Занадто детальні приклади можуть заплутати модель та заважати їй зрозуміти основний принцип. Приклади повинні бути чіткими та лаконічними.
Результат
Завдяки few-shot prompting, точність генерації SQL запитів підвищилась з 30% до 85% при використанні GPT-3.5. Спробуйте створити промпт з прикладами для вашої конкретної задачі вже сьогодні, щоб отримати більш точні та корисні відповіді від LLM.