Штучний інтелект без шумихи: посібник інженера, який працює
Практичний вступ до використання LLM та інструментів ML у реальних проектах без пустих слів і магічного мислення.
Більшість контенту про AI в інтернеті розділяється на два табори: апокаліптичні прогнози про надінтелект або захоплені заяви, що чатбот замінить вашу роботу до вівторка. Ні перше, ні друге вам не допоможе щось випустити. Цей посібник обходить обидва табори і показує, як справді використовувати поточне покоління інструментів AI в реальних проектах, з явно вказаними обмеженнями.
Що насправді робить LLM
Велика мовна модель, як GPT-4 або Llama 3, передбачає наступний токен у послідовності, навчена на величезній кількості тексту. От і все. Немає внутрішнього перевірювача фактів, немає постійної пам'яті між сеансами (якщо ви її не побудуєте), і немає розуміння в тому сенсі, як людина розуміє. Коли ви ставите їй запитання, вона генерує статистично правдоподібне продовження вашого запиту.
Це має практичне значення: модель з впевненістю генеруватиме функцію Python, яка викликає метод бібліотеки, що не існує, тому що цей метод звучить як щось, що мала б мати бібліотека. Завжди запускайте код. Завжди перевіряйте довідник API. Ставтеся до результату моделі як до першого варіанту від швидкого, добре обізнаного стажиста, який іноді неумисне брешe.
Справжній робочий процес: використання LLM для коду
Ось схема, яка працює, замість того щоб просто запитати ChatGPT "побудуй мені додаток":
- Напишіть сигнатуру функції та docstring самі, вказавши типи та граничні випадки.
- Попросіть модель реалізувати це за точною специфікацією.
- Напишіть тести окремо — не просіть модель писати тести для коду, який вона щойно написала, вона буде схильна писати тести, що тривіально проходять.
- Запустіть тести. Повертайте помилки як нові запити, а не невизначені "це не працює" заяви.
def parse_duration(text: str) -> int:
"""
Parse strings like '1h30m', '45s', '2d' into total seconds.
Raise ValueError on invalid input.
"""
Передача моделі цього точного контракту дає набагато кращий результат, ніж розпливчастий опис, і дає вам що конкретне протестувати.
Retrieval-augmented generation в простих словах
RAG кидають як модне слово, але механізм простий: замість того щоб покладатися на те, що модель запам'ятала під час навчання, ви отримуєте релевантні документи під час запиту й вставляєте їх у запит.
Базова установка:
- Розбийте документи на частини (по 500–1000 токенів кожна — звичайна вихідна точка).
- Вбудуйте кожну частину з моделлю на кшталт
text-embedding-3-smallабо відкритою моделлю на кшталтbge-small-en. - Зберігайте вектори в чомусь на кшталт Postgres з
pgvectorабо спеціалізованому сховищі на кшталт Qdrant. - Під час запиту вбудуйте запитання користувача, запустіть пошук подібності (косинусна відстань — стандарт), і витягніть найкращі k фрагментів у запит поряд з запитанням.
SELECT content FROM docs
ORDER BY embedding <=> '[0.012, -0.045, ...]'
LIMIT 5;
Отже, чатбот, навчений на даних до певної дати, все ще може відповідати на запитання про вашу внутрішню wiki з минулого тижня. Він не розмірковує про вашу компанію — він читає ваші документи й резюмує їх.
Де класичне ML все ще перемагає
Не кожна задача потребує трансформера. Якщо ви передбачаєте відтік користувачів із структурованих табличних даних — вік облікового запису, частота використання, квитки до служби підтримки — модель на основі градієнтного бустінгу, як XGBoost або LightGBM, звичайно перевершить підхід на основі LLM, навчатиметься за хвилини замість годин і коштуватиме дроту для запуску. Звертайтеся до RandomForestClassifier scikit-learn або XGBoost перед звертанням до виклику API, особливо коли ваші дані вміщуються в електронну таблицю й цільова змінна — чисте число або категорія.
Вартість і затримка — це обмеження проектування, а не другорядні думки
Виклик GPT-4-класу коштує реальні гроші за токен і займає реальні секунди для повернення. Якщо ви будуєте функцію, яка запускається при кожному завантаженні сторінки для кожного користувача, це швидко накопичується і затримка буде помітна. Агресивно кешуйте, використовуйте меншу модель на кшталт GPT-4o-mini або локальну Llama 3 8B для чогось, що не потребує першорядного мислення, й зберігайте дорогі виклики моделей для частин вашого конвеєра, де якість справді має значення.
Режим відмови, про який ніхто вас не попереджує
Моделі галюцинують більше, а не менше, коли ви просите їх щось трохи поза межами їхнього розподілу навчання — невідомі версії бібліотек, внутрішній жаргон компанії, недавні номери CVE. Якщо відповідь мусить бути точною (рекомендація безпеки, посилання на закон, медична доза), не довіряйте лише генерації. Перевіряйте за первинним джерелом щоразу й вбудуйте цей крок перевірки в конвеєр, замість того щоб покладатися на людське рецензування після факту.
Інструменти AI справді корисні, коли ви припиняєте очікувати від них мислення й починаєте ставитися до них як до швидкого розпізнавача закономірностей, який вам треба перевіряти. Вбудуйте крок перевірки з першого дня й ви отримаєте справжню цінність замість потоку впевненого бреду.
Якщо хочете піти далі, перевірте Python та Data Science треки Korra Studio для основ, що роблять роботу з цими інструментами справді продуктивною.
Написано з допомогою штучного інтелекту, перевірено та опубліковано Мішалем Пільчем (CISSP), Korra Studio.
Це одна замітка з бази знань Korra Studio — платформа поєднує кожну тему з 1-на-1 менторингом.
Початок безплатноarrow_forward