Це сьома стаття стаття із серії яка описує шаблони будування запитів до LLM систем. Інші статті в серії

Шаблон список фактів для перевірки

Намір і контекст

Намір цього шаблону полягає в тому, щоб гарантувати, що велика мовна модель (LLM) виводить список фактів, які присутні у відповіді та становлять важливу частину тверджень у ній. Цей список фактів допомагає користувачу зрозуміти, на яких фактах бо припущеннях ґрунтується відповідь. Користувач може потім провести відповідну перевірку цих фактів або припущень, щоб підтвердити достовірність відповіді.

Мотивація

Поточна слабкість великих мовних моделей полягає в тому, що вони часто швидко і з великим захопленням генерують переконливий текст, який є неправильним. Ці помилки можуть мати різні форми — від вигаданих статистичних даних до некоректних номерів версій бібліотек програмного забезпечення, чи неіснуючих книг, академічних статей. Однак через переконливий характер згенерованого тексту користувачі можуть не проводити належної перевірки для визначення його достовірності.

Структура та ключові ідеї

Основні твердження для контексту:

Згенеруйте набір фактів, які містяться у вихідних даних

Набір фактів має бути вставлений у певний пункт виводу

Набір фактів має складатися з фундаментальних фактів, які можуть підірвати правдивість результату, якщо будь-який з них невірний

Однією з відмінностей у цій моделі є те, де виводяться факти. З огляду на те, що факти можуть бути термінами, з якими користувач не знайомий, бажано, щоб список фактів ішов після виведення. Таке впорядкування презентацій після виведення дозволяє користувачеві прочитати та зрозуміти твердження, перш ніж побачити, які твердження слід перевірити. Користувач також може визначити додаткові факти, перш ніж перевірити список фактів у кінці.

Приклад реалізації

Наведений нижче приклад формулювання шаблону Списку перевірки фактів:

«Відтепер, коли ти генеруєш відповідь, створи набір фактів, від яких залежить відповідь, які слід перевірити, і перерахуй цей набір фактів у кінці вашого результату. Включай лише факти, пов’язані з кібербезпекою.».

Користувач може мати експертизу в деяких темах, пов’язаних із запитом, але не в інших. Список перевірки фактів можна адаптувати до тих тем, у яких користувач має менше досвіду або які становлять найбільший ризик. Наприклад, у наведеному вище запиті користувач обмежує список перевірки фактів темами безпеки, оскільки вони, ймовірно, мають велике значення з точки зору ризиків і можуть бути недостатньо добре зрозумілими для нього. Орієнтація на конкретні факти також зменшує когнітивне навантаження на користувача, потенційно скорочуючи кількість пунктів для перевірки.

Наслідки

Шаблон Список фактів для перевірки слід використовувати щоразу, коли користувач не є експертом у тій предметній області, для якої він генерує відповідь. Наприклад, розробник програмного забезпечення, який переглядає код, може отримати користь від шаблону, що пропонує перевірити міркування щодо безпеки. Натомість експерт із програмної архітектури, ймовірно, самостійно помітить помилки у твердженнях про структуру програмного забезпечення й не потребуватиме списку фактів для превірки у таких відповідях.

Помилки є потенційно можливими у всіх відповідях великих мовних моделей, тому Списку фактів для перевірки є ефективним шаблоном, який доцільно поєднувати з іншими шаблонами — наприклад, із шаблоном Уточнення запиту. Ключовим аспектом цього шаблону є те, що користувачі можуть самостійно співставити його з відповіддю. Зокрема, користувачі можуть безпосередньо порівняти список фактів для перевірки із відповіддю, щоб переконатися, що зазначені факти дійсно присутні у відповіді. Вони також можуть виявити будь-які пропуски в списку. Хоча сам список перевірки фактів також може містити помилки, користувачі зазвичай мають достатньо знань і контексту, щоб оцінити його повноту та точність відносно відповіді.

Одним із застережень щодо використання шаблону Списку фактів для перевірки буде те, що він може бути застосованим лише тоді, коли тип відповіді піддається перевірці фактами. Наприклад, цей шаблон добре працює, коли LLM просять згенерувати файл requirements.txt для Python, оскільки в ньому вказуються версії бібліотек як факти, які можна перевірити — що корисно, адже версії часто містять помилки. Однак LLM відмовиться створювати список фактів для перевірки для зразка коду й зазначить, що не може здійснити таку перевірку, хоча сам код цілком може містити помилки.