Як запускати відкриті GenAI-моделі локально. Генеруємо переказ 8-годинного відео Валерія Маркуса
Вітаю! Мене звати Юрій, я працюю в індустрії понад 15 років, із них близько 10 — у сфері DS/ML. Окрім того, займаюся бекенд-розробкою. Захоплююся прикладним машинним навчанням і продуктизацією інтелектуальних систем.
Багато з нас уже звикли користуватися онлайн-сервісами AI, такими як ChatGPT, Dall-E, Copilot чи Claude. Проте часом виникає потреба запитати в генеративної моделі те, що некомфортно слати в інтернет. Причини можуть бути різні:
- Приватність даних. Ви працюєте з конфіденційними даними клієнта чи роботодавця. Залежно від політики онлайн-сервісу, вашого статусу як клієнта чи умов контракту, компанія-розробник іноді може переглядати ваші запити або використовувати їх для навчання своїх моделей.
- Прозорість, відтворюваність, контроль. Ви не знаєте, на яких даних навчалась онлайн-модель, яку архітектуру вона використовує, як налаштовані її відповіді (system prompt), наскільки часто її поведінка оновлюється, що вона знає про вас.
- Цензура. Ви хочете задати запит, який не має поганих намірів, але буде заблокований контент-фільтрами розробника. Або ж модель дасть максимально «безпечну» чи політкоректну відповідь, уникаючи прямої відповіді на запитання.
- Інвестиції у власне «залізо». Ви сказали дружині/чоловікові/батькам, що вам потрібна новенька відеокарта за $2000+ для AI, і взагалі за AI — майбутнє людства. Проте чомусь поки що на відеокарті запускався лише S.T.A.L.K.E.R. 2. «Залізо» вже придбане, тому не хочеться платити ще й за онлайн-сервіси.
Уникнути цих проблем дають змогу відкриті моделі, які можна розгортати на власному середовищі та використовувати офлайн. У статті я розповім, як із ними працювати. Також покажу, як я застосував відкриті моделі, щоб генерувати стислі перекази довгих відео Валерія Маркуса на YouTube, які я не мав часу подивитися повністю.
Що таке відкрита модель
Відкритими (open-access, open-source тощо) називають моделі, ліцензії яких дозволяють використовувати, змінювати та розповсюджувати модель. Відкритість моделі може мати різні форми.
Відкриті ваги (open-weight). Розробник публікує ваги моделі, тобто матриці коефіцієнтів, вивчені в результаті її тренування. Однак навчальні дані та алгоритм тренування залишаються закритими. Користувач може застосувати цю готову модель для генерації відповідей (inference) або адаптувати ваги моделі, довчивши її на власних даних (fine-tune). Приклади таких моделей: LLaMa, Mistral, Stable Diffusion.
Відкриті дані та код (open-source / fully open). Розробник публікує вивчені ваги моделі, навчальні дані, а також код і параметри процесу навчання. В цьому випадку будь-хто, хто має достатні обчислювальні ресурси, може відтворити цю модель самостійно. Приклади таких моделей: OLMo, LLM360.
Використання відкритої моделі зазвичай зводиться до того, щоб завантажити її ваги з сайту розробника й потім запустити inference-код, який на основі цих ваг і ваших запитів (prompts) генеруватиме відповіді моделі. Цей inference-код може мати вигляд скриптів, хостингових фреймворків або ж застосунків для кінцевого користувача.
Якщо проводити аналогію з програмним забезпеченням, то open-weight модель нагадує скомпільований бінарник, а open-source / fully open модель — вихідний код ПЗ, який дозволяє зібрати цей бінарник самостійно. Також, як і у відкритому ПЗ, ліцензія моделі може мати специфічні умови: наприклад, забороняти комерційне використання.
Як обрати потрібну модель
За здібностями
На сьогодні не існує єдиної моделі, яка справляється з усіма завданнями найякісніше, як і не існує єдиного лідерборду для їхнього порівняння. Є низка бенчмарків, які допоможуть зорієнтуватися, яка відкрита модель підійде вам найкраще. Наприклад, Open LLM Leaderboard від Hugging Face використовує шість ключових бенчмарків:
- Instruction-Following Evaluation (IFEval): вимірює здатність моделі дотримуватися інструкцій, таких як вимоги до форматування відповіді чи використання конкретних ключових слів.
- Big Bench Hard (BBH): добірка складних завдань з різних предметних галузей, що містять розуміння природної мови, математичне мислення, здоровий глузд і знання світу.
- Mathematics Aptitude Test of Heuristics (MATH): математичні завдання шкільного олімпіадного рівня, що містять алгебру, геометрію та основи матаналізу.
- Graduate-Level Google-Proof Q&A (GPQA): запитання, що потребують експертного (PhD) рівня знань з природничих наук — хімії, біології, фізики.
- Multistep Soft Reasoning (MuSR): вимірює здатність до опрацювання та аналізу довгих текстів, що містять алгоритмічно згенеровані логічні задачі.
- Massive Multitask Language Understanding — Professional (MMLU-Pro): добірка експертних запитань із різних галузей, таких як медицина, право, етика, інженерні науки, математика.
Ще є окремий рейтинг моделей EvalPlus, який вимірює здатність LLM генерувати код.
Оцінка якості генеративних моделей досі є академічно складною задачею. Якщо ви маєте власний тестовий набір запитань, що відповідає вашим повсякденним завданням, можете використовувати і його для оцінки моделей-кандидатів.
За розробником / сімейством
Ви можете також обирати модель, відштовхуючись від її розробника та екосистеми. Найпопулярніші сімейства відкритих LLM на сьогодні:
Сімейство |
Розробник |
---|---|
LLaMa |
Meta |
Phi |
Microsoft |
Gemma |
|
Mistral, Mixtral |
Mistral |
Command |
Cohere |
Qwen |
Alibaba |
DeepSeek |
DeepSeek |
Варто зауважити, що моделі Qwen та DeepSeek мають високі показники на бенчмарках, проте створені китайськими компаніями. Врахуйте цей ризик, якщо розглядаєте їх для ваших задач.
За технічними характеристиками
Кількість параметрів. Якщо ви бачите «12B» в описі моделі, це означає, що вона містить 12 мільярдів параметрів. Зазвичай що більше параметрів, то якісніші відповіді моделі. Проте й зростають її системні вимоги та зменшується швидкість генерації.
Правило «кількість параметрів = якість» не універсальне. Моделі вдосконалюються, з’являються новіші версії. Їхня параметрична ефективність (parameter efficiency) зростає завдяки використанню якісних синтетичних даних, а також таким технікам як дистиляція чи підрізання (pruning). За оцінками аналітиків, параметрична ефективність моделей за два роки покращилася в ~50 разів. Наприклад, Meta стверджує, що якість моделі LLaMa 3.3 70B співмірна з LLaMa 3.1 405B (x6 за шість місяців).
Шукаєте просте емпіричне правило? З мого досвіду, моделі до 14B переважно добре справлятимуться з простими, поширеними завданнями, проте на складніші запити можуть давати неякісні відповіді. Хороші універсальні LLM починаються від 30B, а моделі на 70B і вище вже можуть позмагатися з закритими моделями від OpenAI чи Anthropic. До речі, кількість параметрів у Claude 3.5 Sonnet та GPT-4o приблизно оцінюють як 175B+ та 200B+ відповідно.
Що таке «неякісна відповідь»? Найпоширеніші вади генеративних моделей під час обробки запитів:
- Модель неправильно розуміє запит і робить не те, про що її попросили.
- Дає надто узагальнену відповідь і втрачає важливі нюанси.
- Забуває контекст і починає генерувати текст «від себе».
- Плутає факти та генерує дезінформацію.
- Генерує незв’язний чи неграмотний текст.
- Галюцинує.
Як наочний приклад галюцинації, ось що LLaMa 3.1 8B каже про мене:
>>> Хто такий Юрій Гуц? Юрій Гуц (нар. 28 листопада 1970 року в місті Львів) — український співак, композитор та актор театру і кіно. Він є одним із найбільш продюсованих виконавців України початку 2000 років, його пісні були дуже популярними на початку тисячоліття: наприклад "Ми не проїдемо" (1999), "Дзвеніть, дівчата!" (2003) тощо.
Квантизація. Квантизація параметрів застосовується, щоб зменшити вимоги моделі до пам’яті та дискового простору. Під час квантизації кожен параметр, який зазвичай мав би тип float32
, кодується k-бітним цілочисельним представленням. Наприклад, Q5
означає, що кожен параметр квантизується Q4_K_M
трохи складніші: у них застосовується змішана точність, де для більшості тензорів використовується 4 біти, але деякі шари моделі вибірково кодуються точнішим представленням.
Зрозуміло, що таке кодування передбачає втрату інформації. Що компактніша квантизація застосовується, то дужче страждає якість моделі.
дякую за допомогу користувачу Reddit /u/staviq
Instruct чи Chat? Іноді назви моделей мають приставку -Instruct або -Chat. Вона означає тип тюнінгу, який застосовано до моделі. Тип Instruct оптимізований для одноразових запитів «інструкція — відповідь», а Chat — до багатокрокової діалогової взаємодії з користувачем. На практиці обрати «неправильний» тип моделі — не катастрофа, проте якщо ви будуєте чат-інтерфейси на основі цієї моделі, доцільніше вибрати тип Chat.
Розмір контекстного вікна. Кожна LLM має обмежене вікно контексту: наприклад, 128k токенів для LLaMa 3.1. Ваш запит + згенерований результат мають поміститися в контекстне вікно моделі. У разі перевищення контексту ви або отримаєте помилку, або inference-фреймворк може тишком-нишком обрізати ваш запит, що не завжди бажано.
Що більше контекстне вікно, то значнішу кількість інформації LLM може втримувати «в голові». Наприклад, це важливо для задач узагальнення довгих текстів, RAG або для програмування за допомогою AI-асистентів, де в контексті потрібно утримувати цілі файли з кодом. До сучасних моделей часто застосовують спеціальний тюнінг, щоб штучно збільшити контекстне вікно.
З-поміж рівних варіантів обирайте ту модель, яка має більший контекст. Проте ставтеся до розміру контексту як до кількості мегапікселів у фотокамері. Іноді числа на кшталт 1M tokens є «маркетинговими», а якість обробки контекстів понад 16—32k стає сумнівною.
Це все надто складно. Є якийсь простий рецепт вибору моделі?
Спробуйте завантажити останні версії моделей кількох різних виробників розміром від 7B до 14B параметрів та квантизацією Q4_K_M
. Наприклад, по одній з моделей LLaMa, Phi та Mistral. Якщо якість їхніх відповідей вас не влаштовує, спробуйте варіанти з точнішою квантизацією (Q4 → Q5 → Q6) або збільшуйте кількість параметрів (7B → 14B → 30B → 70B), допоки вистачає можливостей «заліза». Про апаратні вимоги поговоримо далі.
Підготовка до хостингу моделей
Головне, що треба знати про сучасні генеративні моделі, — вони вибагливі до ресурсів і виконують дуже багато обчислень. Втім, не обов’язково мати суперкомп’ютер для їхнього хостингу. Як ми вже розібралися вище, моделі бувають різних розмірів і архітектур. Такі моделі можна запускати як на ігровому ПК, так і на звичайному ноутбуці розробника, а деякі — навіть на смартфоні.
Обирайте модель, враховуючи можливості свого «заліза». Інакше генеративна модель генеруватиме вам лише страждання.
Що стане в пригоді:
Хороший GPU
Ключовий критерій — якомога більший обсяг відеопам’яті (VRAM). Деякі inference-бібліотеки (наприклад, llama.cpp / GGML) дозволяють відвантажувати частину моделі на GPU, а решту виконувати на CPU. Але якщо модель повністю поміститься у VRAM, це забезпечить найкращу швидкість її виконання. Якщо у вас MacBook з Apple Silicon, вбудований GPU вельми добре справляється з хостингом невеликих LLM і text-to-image моделей.
На ПК можете використовувати вашу наявну ігрову відеокарту (наприклад, з сімейства GeForce RTX). А якщо ви не з такої сім’ї, як другі, а з богатої, то можете встановити кілька GPU та використовувати GPU-паралелізм. До речі, зовсім нещодавно NVIDIA анонсувала персональний AI-суперкомп’ютер Project DIGITS вартістю від $3000, здатний запускати моделі на 200B параметрів.
Багато RAM
Оперативна пам’ять використовується для токенізації тексту, підготовки пакетів даних (batches), обміну даними з GPU, кешування, а також для утримання тих ваг моделі, які не помістилися у VRAM. Як і у випадку з GPU, кількість потрібної пам’яті залежить від обраної моделі. Комфортний мінімум пам’яті для популярних моделей —
Дисковий простір
Хороша модель може важити, як AAA-гра. Розмір ваг залежить від кількості параметрів моделі та ступеня їхньої квантизації. Наприклад, LLaMa 3.1 8B Instruct займає 4.9 GB, Phi-4 14B — 9.1 GB, а LLaMa 3.3 70B Instruct — 42 GB (усі моделі вказані з квантизацією Q4_K_M та у форматі GGUF). Модель генерації зображень Stable Diffusion 3.5 Large має 8.1B параметрів і займає 26 GB на диску.
Можна також розгорнути відкриту модель на Google Colab чи Kaggle Notebooks, використовуючи їхні GPU-середовища в рамках безплатних лімітів.
Для оцінки, чи вистачить вам відеопам’яті на ту чи іншу модель, можете скористатися приблизною формулою нижче або ж більш точними калькуляторами (UI, скрипт).
На MacBook Pro M1 32GB мені комфортно користуватися моделями до 32B параметрів, якщо запити не дуже об’ємні. Менші моделі на ~10B параметрів «літають» на ноутбуці зі швидкістю ChatGPT. Також із ними справиться навіть нотбук без GPU. Великі моделі та важкі запити я запускаю на ПК з RTX 4090 (24 GB VRAM) і 96 GB RAM.
Операційна система. Загалом не відіграє ролі. Я користуюся відкритими моделями на Windows, Linux i macOS. Inference-інструменти є для кожної популярної ОС. Головне, щоб вони підтримували апаратне прискорення обчислень (CUDA, Metal, AVX тощо). Про кілька популярних інструментів поговоримо далі.
Генеруємо контент
Ollama
Якщо ви любите термінал і код, то один із найпростіших способів працювати з відкритими LLM — це встановити Ollama. Ви відразу отримуєте локальний inference-сервер, який уміє завантажувати моделі з власного репозиторію та виконувати запити на цих моделях (зокрема в режимі стримінгу). Ollama базується на бібліотеці llama.cpp, яку я вже згадував раніше.
Запускаємо сервер Ollama:
$ ollama serve
Завантажуємо ваги моделі Google Gemma 2 9B Instruct Q4_0:
$ ollama pull gemma2:9b
Надсилаємо запит через інтерактивний CLI:
$ ollama run gemma2:9b
>>> Розкажи про сайт DOU.ua DOU.ua - це **українська професійна спільнота для IT-фахівців**. **Основні функції та особливості:** * **Форум:** * Активна дискусія на різноманітні теми, пов'язані з IT-сферою: технології, освіта, кар'єра, життя. * Доступ до знання та досвіду досвідчених фахівців. * Можливість отримати відповіді на свої питання та поділитися власними роздумами. * **Вакансії:** * Великий вибір актуальних вакансій від українських компаній та IT-агентств. * Підбір вакансій за напрямом, місцезнаходженням та рівнем зарплати. * **Профіль користувача:** * Можливість створити професійний профіль з досвідом роботи, навичками та покликаннями. * Зростання популярності та візуалізація власного іміджу в IT-спільноті. * **Статті та інтерв'ю:** * Публікації фахівців, аналітичні матеріали, огляди галузі, інсайдерські розповіді про компанії. * **Вебінари та події:** * Онлайн-семінари та конференції з актуальними темами IT-сфери. * **Клуби та спільноти:** * Приєднання до тематичних клубів за інтересами, галуззю або технологією. DOU.ua є **корисним ресурсом для всіх, хто працює в IT-галузі**. Він допомагає знаходити роботу, навчатися новим технологіям, спілкуватися з колегами та будувати свою кар'єру.
Або через API:
$ REQUEST_BODY='{ "model": "gemma2:9b", "prompt": "Розкажи про сайт DOU.ua", "stream": false, "options": {"temperature": 0.5, "num_ctx": 512}} }' $ curl -X POST http://localhost:11434/api/generate -d "$REQUEST_BODY"
Якщо ви користуєтеся LangChain, то можете викликати моделі з Ollama у вашому Python-коді:
$ pip install langchain-ollama
from langchain_ollama import OllamaLLM llm = OllamaLLM(model="gemma2:9b") response = llm.invoke("Як пропатчити KDE2 під FreeBSD?") print(response)
Перемикаємося на модель з більшою кількістю параметрів (27B) і задаємо складніший запит:
$ ollama run gemma2:27b
>>> Уяви, що ти — Тарас Шевченко. Напиши невеликий вірш про українську IT-індустрію. Ой, мово рідна, в світі знов співаєш, Не лиш в піснях, а й в коді оживаєш. Юні душі, як кобзарі майбутнього, З клавіш створюють світ новітній, без сну й нудьги. Програми пнуться, мов сонця промені, До зірок знань, до неба безмежного. І хай вороги гукають, що не сила в нас, Та IT-Україна, як дуб міцний, стоїть весь час!
Під час роботи з Ollama корисно переглядати логи сервера. Наприклад, щоб переконатися, чи помістилася модель у VRAM повністю. У мене з gemma2:27b
все виглядає чудово:
time=2025-01-13T20:31:31.336+02:00 level=INFO source=sched.go:714 msg="new model will fit in available VRAM in single GPU, loading" model=D:\Documents\Ollama\models\blobs\sha256-d7e4b00a7d7a8d03d4eed9b0f3f61a427e9f0fc5dea6aeb414e41dee23dc8ecc gpu=GPU-f5d299ea-cff4-60ee-d8b2-ffc981b1f02a parallel=4 available=22374043648 required="18.8 GiB" time=2025-01-13T20:31:31.354+02:00 level=INFO source=memory.go:356 msg="offload to cuda" layers.requested=-1 layers.model=47 layers.offload=47 layers.split="" memory.available="[20.8 GiB]" memory.gpu_overhead="0 B" memory.required.full="18.8 GiB" memory.required.partial="18.8 GiB" memory.required.kv="2.9 GiB" memory.required.allocations="[18.8 GiB]" memory.weights.total="16.5 GiB" memory.weights.repeating="15.6 GiB" memory.weights.nonrepeating="922.9 MiB" memory.graph.full="562.0 MiB" memory.graph.partial="1.4 GiB"
А з llama3.3:70b
— уже ні. Тільки 38 шарів із 81 вмістилися на GPU, тому модель працюватиме відчутно повільніше, оскільки виконуватиме решту обчислень на CPU:
time=2025-01-13T21:37:11.887+02:00 level=INFO source=memory.go:356 msg="offload to cuda" layers.requested=-1 layers.model=81 layers.offload=38 layers.split="" memory.available="[20.6 GiB]" memory.gpu_overhead="0 B" memory.required.full="42.9 GiB" memory.required.partial="20.5 GiB" memory.required.kv="640.0 MiB" memory.required.allocations="[20.5 GiB]" memory.weights.total="38.9 GiB" memory.weights.repeating="38.1 GiB" memory.weights.nonrepeating="822.0 MiB" memory.graph.full="324.0 MiB" memory.graph.partial="1.1 GiB"
Також остерігайтеся повідомлень «truncating input prompt». Зазвичай це означає, що ви надіслали великий запит і він перевищив розмір контекстного вікна за замовчуванням, який використовує Ollama (2048 токенів). У цьому випадку можете збільшити вікно, вказавши в запиті параметр num_ctx
. Однак врахуйте, що збільшення розміру вікна також призведе до більшого використання пам’яті.
llama_new_context_with_model: n_ctx_per_seq (2048) < n_ctx_train (8192) -- the full capacity of the model will not be utilized ... time=2025-01-13T21:32:29.500+02:00 level=WARN source=runner.go:129 msg="truncating input prompt" limit=2048 prompt=17814 keep=5 new=2048
LM Studio
Якщо вам більше до вподоби графічний інтерфейс і ви шукаєте офлайн-аналог ChatGPT, можете користуватися кросплатформним застосунком LM Studio. Він також дає можливість легко знаходити й завантажувати моделі, створювати окремі чати та налаштовувати параметри запитів:
У роботі з відкритими GenAI-застосунками є одна незручність: кожен із них має власне сховище моделей, і не хочеться завантажувати одну й ту саму модель на диск кілька разів. Проте моделі з Ollama можна «імпортувати» в LM Studio, створивши символічні посилання. Я для цього написав невеличкий скрипт на Python.
LM Studio також має простенький вбудований RAG, за допомогою якого можна «спілкуватися» з власними документами. Наприклад, я завантажив аналітичний звіт, присвячений ШІ, який я вже згадував вище в розділі про параметри моделей:
Окрім LM Studio, можете розглянути подібні застосунки — Jan.ai або LibreChat.
Amuse (Windows) і DiffusionBee (macOS)
Amuse і DiffusionBee дозволяють працювати з відкритими моделями генерації зображень і виконувати такі завдання:
- Text to image: генерація зображення за текстовим описом.
- Image to image: перетворення одного зображення на інше на основі запиту.
- Image upscaling: збільшення роздільної здатності зображення.
- Image inpainting: заміна частини зображення зі збереженням загальної структури та контексту.
Приклад: просимо Amuse намалювати типового користувача DOU за допомогою відкритої моделі Stable Diffusion 3.5 Large Turbo:
Аналогічний запит у DiffusionBee з моделлю Stable Diffusion XL Base 1.0:
Під час генерації зображень іноді корисно задавати параметр Negative Prompt. Він дозволяє вказати, що модель не повинна робити, і прибрати небажані елементи. Інший корисний параметр — Seed: фіксуючи його, ви можете «закріпити» базове зображення та експериментувати надалі з його варіаціями.
Крім цих застосунків, можете також звернути увагу на ComfyUI та Stable Diffusion Web UI.
Практичний кейс: стислий переказ довгого YouTube-відео
Місяць тому військовий Валерій Маркус, який раніше служив головним сержантом
За допомогою OpenAI Whisper Large та LLaMa 3.3 70B мені вдалося стиснути всі сім роликів до кількох сторінок executive summary. При цьому обробка години відео займала приблизно 20 хвилин на ПК: 10 хвилин на speech-to-text і 10 хвилин на запит до LLM, яка не повністю влазила на мою RTX 4090. Відео, які мене зацікавили на основі стислих описів, я потім переглянув детальніше.
Фрагмент переказу:
Частина 1: Мрія
Інтерв’ю з Валерієм Маркусом, головним сержантом47-ї окремої механізованої бригади ЗСУ, розкриває деталі внутрішніх конфліктів та проблем всередині бригади. Маркус розповідає про створення бригади, концепцію її розвитку та роль Івана Михайловича Шаламаги, командира батальйону. Він підкреслює важливість команди, яка працювала над стратегічним розвитком військової частини, але також вказує на недоліки Шаламаги як лідера.Маркус описує процес формування бригади, початкові успіхи та подальші проблеми, які виникли через нездатність Шаламаги ефективно керувати та приймати рішення. Він також зазначає про свою роль у просуванні позитивного образу Шаламаги та спробах зробити його більш ефективним лідером.
Інтерв’ю також торкається теми корупції, некомпетентності та впливу зовнішніх факторів на роботу бригади. Маркус підкреслює важливість командної роботи та необхідність зміни системи управління в ЗСУ для уникнення подібних проблем в майбутньому.
Основні тези/озвучені проблеми:
- Некомпетентність Івана Михайловича Шаламаги: Маркус вважає, що Шаламага не має необхідних лідерських якостей та здібностей для ефективного керування бригадою.
- Внутрішні конфлікти: Маркус описує конфлікти всередині бригади, зокрема між ним та Шаламагою, які негативно впливають на роботу бригади.
- Корупція та некомпетентність: Маркус зазначає про корупцію та некомпетентність в ЗСУ, які перешкоджують ефективній роботі бригади.
- Недоліки системи управління: Маркус підкреслює необхідність зміни системи управління в ЗСУ для уникнення подібних проблем в майбутньому.
- Важливість командної роботи: Маркус вважає, що командна робота є ключовим фактором успіху бригади та necesario для досягнення спільних цілей.
- Проблеми з рекрутингом та підготовкою: Маркус описує проблеми з рекрутингом та подготовкою бійців, які негативно впливають на роботу бригади.
- Вплив зовнішніх факторів: Маркус зазначає про вплив зовнішніх факторів, таких як політичні інтереси та корупція, на роботу бригади.
Повний переказ відео Маркуса, опис інструментів і код можна подивитися на GitHub.
Теми за межами цієї статті
Оскільки фокус цієї статті — як почати використовувати відкриті генеративні моделі для власних повсякденних потреб, я не розкривав глибоко такі дотичні теми:
- Тонке налаштування моделей (fine-tuning). Ця техніка може бути ефективною, якщо вам потрібно адаптувати відкриту модель до вузькоспеціалізованої галузі чи специфічної форми запитів / відповідей. Наприклад, MedAlpaca — це модель, похідна від LLaMa, навчена на медичних текстах. З інструментів для тонкого налаштування можу рекомендувати Unsloth.
- Продакшн-хостинг моделей для бізнес-потреб. Це широка тема, яка заслуговує окремого циклу статей. Щодо інструментів — особисто мав справу та раджу придивитися до vLLM, Hugging Face Text Generation Inference, NVIDIA Triton Inference Server, NVIDIA NIM.
Якщо ви активно користуєтеся відкритими моделями, поділіться своїми кейсами в коментарях!
P.S. Дякую Олександру Руппельту та Олександру Косовану за рецензію статті.
P.P.S. Жодне слово в цій статті, крім зразків роботи моделей, не було написане AI :)
16 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів