LLM API Integration English: Vocabulary for AI-Powered Applications (англійською)
Вивчайте англійську лексику, яку використовують розробники під час інтеграції API LLM — від інженерії пропозицій до RAG і викликів функцій.
Introduction
Інтеграція великих мов моделі API в виробничі застосунки стала головним інженерним завданням. Незалежно від того, створюєте ви помічника з підтримки клієнтів, інструмент перегляду коду або конвеєр аналізу документів, словник, який ви використовуєте у технічних обговореннях, проектних документах і переглядах коду, свідчить про глибину вашого розуміння. Ця стаття охоплює дев’ ять основних термінів, які розробники використовують під час роботи з API LLM на професійному рівні.
В. І. Леніна за спеціальністю «фізична культура»
** Пром інженерія ** — Практика проектування, структурування і ітерації текстових вхідних даних, надісланих до мовної моделі, з метою отримання більш точних, надійних і відповідно форматованих вихідних даних. Пром інженерія є частиною мистецтва, частиною науки, і це значно впливає на якість функцій, що працюють на LLM.
- “Ми витратили два тижні на інженерну підтримку функції аналізу контракту - остаточна підтримка включає явні інструкції формату виводу, декілька прикладів і інструкцію ланцюга думок, яка зменшила рівень галюцинацій на понад 60 відсотків.” *
** Системний запит ** — інструкція або контекстний блок, який надається мовній моделі перед введенням даних користувачем, використовується для визначення персони моделі, встановлення обмежень поведінки і надання фонової інформації. Системні запити зазвичай невидимі для кінцевого користувача.
“Наша системна команда встановлює роль асистента, визначає формат виводу як структурований JSON, і наказує моделі відхилити будь-який запит, що виходить за межі питань британського трудового права.”
** Контекстове вікно ** — Максимальна кількість токенів, які мова моделі може обробляти за один запит, включаючи вхід і вивід. Вміст, який перевищує розміри контекстного вікна, слід обрізати, підсумувати або обробляти за допомогою стратегій розбиття на частини.
“Документ, який нам потрібно проаналізувати, має 180 000 знаків, що перевищує навіть контекстне вікно нашої найбільшої моделі — ми реалізуємо стратегію розбиття вікна на частини з перекриванням для обробки довгих форм юридичних документів.”
** Температура ** — параметр, який керує випадковістю або творчістю виводу моделі. Температура 0 виробляє високодетерміновані, послідовні відповіді, тоді як вищі значення виробляють більш різноманітні і творчі виходи. Для фактичних або структурованих завдань, зазвичай, перевагу надається низькій температурі.
“Для бот-запитів клієнтів ми встановлюємо температуру на 0.1, щоб забезпечити послідовні, передбачувані відповіді — для креативного генератора слоганів ми використовуємо 0.9, щоб заохочувати більш різноманітні і винахідливі виходи.”
** Top- p ** — також відоме як вибірка ядра, top- p є параметром, який керує тим, які токени модель розглядає на кожному кроці побудови, обмежуючи вибір до найменшого набору токенів, накопичена ймовірність яких досягає вказаного значення. Він часто використовується разом з температурою для точної настройки різноманітності виходу.
“Ми використовуємо комбінацію temperature 0.7 і top-p 0.9 для генератора опису продукту — комбінація дає нам творчу різноманітність без виробництва повністю не пов’ язаних з темою виходів.”
** Галюцинація ** — тенденція мовних моделей генерувати правдоподібно звучачу, але фактично неправильну, не підтверджену або сфабриковану інформацію. Галюцинації є одним з основних ризиків надійності в застосунках, що працюють на LLM, і їх слід зменшити за допомогою заземлення, збільшення пошуку і перевірки виходу.
“Юридична команда помітила, що інструмент резюме контракту галюцинував юрисдикційні пункти, які не існували в джерельному документі - ми вирішили це, перейшовши на архітектуру RAG, яка ґрунтується на кожній претензії в отриманих пасажах.”
RAG — Retrieval-Augmented Generation — це архітектурний шаблон, де відповідь мовної моделі ґрунтується на документах, отриманих з зовнішнього сховища знань, а не на покладанні виключно на параметричну пам’ ять моделі. RAG значно зменшує галюцинації і дозволяє моделі відповідати на питання про власну або актуальну інформацію.
- “Ми реалізували конвеєр RAG для внутрішнього бот- підтримки: питання користувачів вбудовуються і використовуються для отримання п’ яти найкращих відповідних статей бази знань, які потім вводяться у запит як контекст заземлення перед тим, як модель створить свою відповідь.” *
** Виклик функції ** — можливість, яку надають деякі API LLM, що дозволяє моделі виразити намір викликати функцію, визначену розробником, повертаючи структурований вивід у певному форматі. Код розробника потім виконує функцію і може повернути результат до моделі для подальшого обґрунтування.
- “Ми використовуємо виклик функцій, щоб дозволити помічникові виконувати дії у реальному часі: коли користувач запитує про перенесення зустрічі, модель повертає структурований виклик до нашого API календаря, а не створює відповідь у вигляді простого тексту, яку нам би довелося аналізувати.” *
** Використання інструментів ** - ширший термін для шаблону, де LLM отримує доступ до зовнішніх можливостей - пошукових систем, інтерпретаторів коду, API, баз даних - які він може викликати під час кроку генерації. Використання інструментів дозволяє агентам робити дії в світі, а не просто створювати текст.
“Дослідницький помічник має чотири доступні інструменти: веб- пошук, читач PDF, калькулятор і API пошуку цитування — на кожному кроці модель вирішує, який інструмент викликати, на основі того, яка інформація їй ще потрібна, щоб відповісти на запитання користувача.”
Основні рішення проектування в інтеграції LLM
При інтеграції LLM API, деякі рішення проектування мають невеликий вплив на якість і надійність. По-перше, багато інвестуйте в дизайн системної команди — добре створена системна команда часто коштує більше, ніж тонка настройка моделі для виробничих застосунків. По- другому, з самого початку плануйте обмеження контекстних вікон: документи, історії розмов і отримані пасажири — усі вони споживають токени, а вихід з контексту є типовим способом втрати продуктивності.
По-третє, лікуйте галюцинації як першокласну інженерну проблему. Для будь-якого випадку використання, що включає фактичні претензії — юридичні, медичні, фінансові або специфічні для продукту — реалізуйте архітектуру RAG і перевіряйте виводи, перш ніж вони досягнуть користувачів. Нарешті, оцініть, чи відповідають шаблони виклику функцій або використання інструментів вашому випадку використання: для програм, які потребують виконання дій або отримання даних у реальному часі, ці шаблони є набагато надійнішими, ніж спроби аналізу намірів з виводів вільної текстової моделі.
Завдяки цьому словнику ви зможете робити значний внесок у обговорення архітектурних можливостей, що використовують штучний інтелект, писати чіткіші технічні специфікації і зневаджувати проблеми інтеграції LLM з більшою точністю.
Розрізняють: мовлення для немовляти; мовлення для дорослого
Інтеграція API великої мовної моделі (LLM) представляє собою значний зсув у розробці програмного забезпечення, що вимагає нових навичок спілкування. Окрім простого розуміння технічних концепцій, таких як «запит оптимізації» або «контекстне вікно», розробники повинні чітко і чітко сформулювати свою роботу в професійному англомовному середовищі. Це особливо важливо для тих, чия перша мова не є англійською, де тонкі відмінності у фразування можуть призвести до непорозумінь під час перегляду коду, обговорення Slack або при написанні описів запитів на витяг. Метою є не лише переклад технічних термінів; це навчання стилю спілкування, який очікується в рамках спільної команди розробників програмного забезпечення.
Одна поширена проблема виникає при обговоренні обмежень відповіді LLM. Замість того, щоб сказати «Це не працює», що може звучати обвинувачуючим, більш конструктивний підхід полягає в тому, щоб оформити його як «Модель, здається, бореться з нюансованими запитами щодо [спеціфічного аспекту]. Можливо, ми могли б уточнити запит, щоб надати більш чіткі приклади або змінити параметр температури. » Аналогічно, коли ви просите зміни від іншого розробника під час перегляду коду, формулювання на зразок: « Чи можете ви дослідити, чи врахування цього додаткового контексту покращить здатність LLM генерувати точні результати для цього сценарію? » є набагато ефективнішим, ніж тупе « Виправте це ». Тут акцент робиться на * спільному розв’ язанні проблем * і зосередженості на поведінці моделі, а не на приписуванні звинувачень. Інша поширена ситуація включає в себе опис намірів за запитом - “Я використовую цей запит, щоб керувати LLM в видаленні ключових об’єктів з неструктурованих текстових даних, націлених на точність в ідентифікації [спеціфічний тип об’єкта]”
Крім того, розуміння термінології, пов’язаної з генерацією з підвищеним пошуком (RAG), є життєво важливим. Замість того, щоб просто сказати «Ми використовуємо RAG», розробники повинні пояснити * чому * вони обрали цей підхід. Фрази на кшталт «Архітектура RAG дозволяє нам засновати відповіді LLM в нашій специфічній базі знань, зменшуючи потенційні галюцинації і покращуючи фактичну точність» є значно більш вражаючими. Це про демонстрацію продуманого розуміння основної технології і її переваг. Нарешті, під час документування викликів API або інтеграції функцій, важливо використовувати чітку і описову мову. « Ця функція використовує кінцеву точку OpenAI completions.create для створення тексту на основі введення команди, з параметрами, налаштованими для оптимального творчого виводу »
import openai
openai.api_key = "YOUR_API_KEY" # Replace with your actual API key
response = openai.completions.create(
model="gpt-3.5-turbo",
prompt="Write a short poem about a rainy day.",
max_tokens=50,
temperature=0.7
)
print(response.choices[0].text)
Цей простий приклад демонструє, що розробники інтерфейсу API часто документують і обговорюють - ретельний вибір параметрів, таких як temperature, щоб вплинути на вивід моделі. Ключовим моментом є те, що точна мова, зосереджена на * намір *, * вплив *, і * розуміння *, підвищує комунікацію від простого передачі інформації до сприяння ефективному співробітництву в рамках складного потоку роботи з розробки застосунків на основі штучного інтелекту.