Перейти до основного вмісту

Журнал досліджень Bean Labs

Gorilla: як навчання з урахуванням пошуку (Retriever-Aware Training) знижує рівень галюцинацій LLM API з 78% до 11%

Опубліковано Останнє оновлення 6 хв. читанняMike ThriftMike Thrift
Gorilla: як навчання з урахуванням пошуку (Retriever-Aware Training) знижує рівень галюцинацій LLM API з 78% до 11%

Документ: https://arxiv.org/abs/2305.15334

Зміст цієї сторінки

Читаю статтю про Gorilla (Patil та ін., 2023, arXiv:2305.15334, NeurIPS 2024), оскільки вона стоїть на перетині двох проблем, з якими я постійно стикаюся: як змусити LLM-агента викликати правильний інструмент із правильними аргументами та як підтримувати цю здатність актуальною в міру зміни API? Відповіді тут практичні, а цифри вражаюче високі — але припущення, закладені в оцінку, заслуговують на більш ретельний аналіз, ніж зазвичай.

Стаття​

Gorilla, автори Шишир Г. Патіл, Тяньцзюнь Чжан, Сінь Ван та Джозеф Е. Гонсалес з Каліфорнійського університету в Берклі, вирішує конкретну проблему: сучасні LLM галюцинують виклики API. Коли GPT-4 (станом на середину 2023 року) просять написати код, який викликає функцію певної бібліотеки, він часто генерує правдоподібні, але неправильні сигнатури функцій, неіснуючі моделі або застарілі назви аргументів. Gorilla — це модель на базі LLaMA з 7 мільярдами параметрів, спеціально налаштована для генерації точних викликів API. Вона навчена за допомогою методу, який автори називають навчання з урахуванням пошуку (Retriever-Aware Training, RAT). Ідея проста: під час навчання моделі показують знайдену документацію API разом із запитом користувача, відформатовану як "Використовуйте цю документацію API для довідки: <retrieved_API_doc_JSON>". Це вчить модель як читати документацію, так і довіряти знайденому контексту більше, ніж своїй параметричній пам'яті — властивість, яка приносить плоди під час інференсу, коли документація змінилася.

Набір даних для оцінки, APIBench, охоплює 925 API HuggingFace Model Hub, 95 API TorchHub і 696 API TensorFlow Hub, з десятьма синтетичними запитами на виконання інструкцій, згенерованими для кожного API за допомогою self-instruct. Метрикою оцінки є зіставлення піддерев AST (абстрактного синтаксичного дерева) — згенерований виклик API парситься і перевіряється на функціональну коректність — що також дозволяє вперше в таких умовах принципово виміряти рівень галюцинацій.

Ключові ідеї​

  • RAT робить документацію придатною для читання під час інференсу. Навчаючись на промптах, що включають знайдену документацію, Gorilla вчиться покладатися на знайдений текст, а не на згадування деталей API з ваг моделі. Це означає, що модель залишається актуальною в міру розвитку API без перенавчання.
  • Точність zero-shot: Gorilla 59–84%, GPT-4 18–39%. На TorchHub Gorilla досягає 59,13% проти 38,70% у GPT-4. На HuggingFace — 71,68% проти 19,80%. На TensorFlow Hub — 83,79% проти 18,20%. Розрив найбільший там, де простір API найбільш різноманітний.
  • Зниження рівня галюцинацій — головний результат. Рівень галюцинацій Gorilla становить 6,98% на TorchHub, 10,95% на HuggingFace та 5,40% на TensorFlow Hub. Показники GPT-4 на тих самих наборах даних коливаються від 36,55% до 78,65%.
  • Оракул-пошук (oracle retriever) — це межа. Якщо знайдено ідеально точний документ (режим оракула), точність досягає 67–94%. Це теоретично найкращий випадок для будь-якої RAG-системи, і розрив між Gorilla zero-shot і цією межею — це простір для вдосконалення механізмів пошуку.
  • Реальні системи пошуку поступаються. Перехід від оракула до GPT-Index під час оцінки знижує точність на 29,20%; BM25 знижує її на 52,27%. Стійкість моделі до шуму в пошуку реальна, але не безмежна.
  • Оцінка через AST узагальнює результати. Підхід із зіставленням піддерев вимірює, чи є згенерований виклик функціонально правильним, а не просто синтаксично схожим. Це правильна метрика для будь-якого завдання, де результатом є код, який дійсно буде виконуватися.

Що підтверджується, а що — ні​

Основне твердження залишається в силі: тонке налаштування на промптах, доповнених документацією, кардинально покращує точність викликів API та знижує рівень галюцинацій. Методологія оцінки AST є справді новаторською і явно кращою за порівняння рядків або оцінку людиною в масштабі. RAT — це чиста, відтворювана ідея.

Те, до чого я ставлюся скептично, — це охоплення бенчмарку. Усі три набори даних — HuggingFace, TorchHub, TensorFlow Hub — це реєстри моделей машинного навчання з дуже регулярною структурою API: ви завантажуєте модель за назвою, можливо, з кількома іменованими аргументами, і викликаєте метод типу predict. Інструкції згенеровані синтетично, що означає, що тестовий розподіл тісно пов'язаний із навчальним. Модель, налаштована на документації ML API за допомогою self-instruct і оцінена на таких самих запитах, не перевіряється на складних випадках, які виникають у реальній експлуатації: неоднозначні запити, багатокрокові робочі процеси, приведення типів аргументів, автентифікація, ліміти запитів або відновлення після помилок.

Деградація через пошук також більша, ніж стверджується у статті. Падіння точності на 52% при використанні пошуку BM25 є катастрофічним. Якщо пошукова система, яку ви розгортаєте в реальних умовах, більше схожа на BM25, ніж на оракула, переваги зникають. Автори визнають цей розрив, але не пропонують шляху для його подолання.

Нарешті, сама модель — це донавчання LLaMA 7B. Порівняння з GPT-4 zero-shot вражає, але воно не зовсім справедливе: GPT-4 не була навчена використовувати знайдену документацію. GPT-4 з підтримкою RAG і системним промптом, розробленим для читання документації API, майже напевно значно скоротив би цей розрив.

Чому це важливо для фінансового ШІ​

Патерн RAT безпосередньо застосовний до агентів зворотного запису Beancount. Агенту Beancount потрібно викликати команди CLI (bean-query, bean-report), Python API (beancount.loader, beancount.core) та сервіс FastAPI beancount-ledger — кожен зі специфічною семантикою аргументів, яка задокументована, але не обов'язково є в навчальних даних моделі. Підхід Gorilla каже: знайдіть відповідний фрагмент документації під час інференсу, вставте його в контекст і навчіть модель читати його та слідувати йому.

Показники галюцинацій є найкориснішим сигналом для фінансового контексту. 10% галюцинацій у назвах моделей ML — це неприємно. 10% галюцинацій у викликах мутації леджера — неправильні назви рахунків, помилкові коди валют, переплутані знаки дебету/кредиту — це проблема коректності. Це означає, що навіть навчений у стилі Gorilla агент потребує валідатора під час виконання перед фіксацією будь-якого запису, що узгоджується з тим, що CRITIC (LOG-012) показав щодо інтерактивної критики інструментів. Результат про деградацію пошуку підкріплює це: якщо реальний пошук знижує точність вдвічі, якість самого пошуку не може бути єдиною сіткою безпеки.

Методологія оцінки AST перекладається природним чином. Транзакції Beancount мають структуру, що піддається парсингу, і перевірка згенерованих директив за схемою за допомогою AST-зіставлення — це саме той тип легковагового валідатора, який можна запустити в pre-commit hook або в циклі агента.

Що читати далі​

  • ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs (arXiv:2307.16789) — розширює проблему виклику API до 16 000 реальних REST API з багатокроковими ланцюжками використання інструментів; безпосередньо вирішує обмеження Gorilla, що оцінює лише поодинокі виклики реєстрів ML.
  • The Berkeley Function Calling Leaderboard (BFCL) (OpenReview:2GmDdhBdDk, постер NeurIPS 2024) — пряма еволюція Gorilla у "живу" таблицю лідерів, що відстежує, як передові моделі покращують виклик функцій з часом; V3 додає багатоходові взаємодії, V4 додає агентний веб-пошук.
  • API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs — оцінює LLM на 73 API у ширшому діапазоні доменів, включаючи фінанси та веб-сервіси, з багатоходовим використанням інструментів; корисне доповнення до більш вузького фокусу APIBench на ML.

Джерело: https://beancount.io/uk/bean-labs/research-logs/2026/05/03/gorilla-llm-retrieval-augmented-api-calling

Опубліковано: 3 травня 2026 р.

Останнє оновлення: 15 липня 2026 р.

5 хв. читання

Тонке налаштування проти RAG: Чому пошук перемагає при впровадженні нових знань у LLM

RAG досягає точності 0.875 на фактах після граничної дати, тоді як донавчання…

ai
llm
6 хв. читання

ShieldAgent: Верифіковане міркування щодо політики безпеки для агентів LLM

ShieldAgent дає 90,4% точності на атаках агентів і на 64,7% менше викликів API…

ai
llm
5 хв. читання

PHANTOM (NeurIPS 2025): Вимірювання виявлення галюцинацій LLM у фінансових документах

PHANTOM (NeurIPS 2025) вимірює виявлення галюцинацій LLM на реальних звітах…

llm
ai
5 хв. читання

Atlas: спільне попереднє навчання ретривера та рідера перевершує LLM з 540 млрд параметрів, маючи лише 11 млрд

Atlas дає 42,4% на Natural Questions із 64 прикладами, випереджаючи PaLM 540B…

ai
machine-learning
5 хв. читання

FinTrace: оцінка виклику інструментів LLM для фінансових завдань на рівні траєкторії

FinTrace показує: передові LLM обирають правильні фінансові інструменти (F1…

llm
ai