Вибір моделі насамперед визначається обсягом відеопам'яті і завданням, під яке вона потрібна: модель, яка не вміщається в пам'ять цілком, починає працювати в рази повільніше, бо частина ваг постійно довантажується заново.
Що таке self-hosted LLM і чим це відрізняється від звернення до чужого API
Self-hosted LLM — це мовна модель, яка працює на вашому власному сервері, а не викликається через API стороннього сервісу. Ви відповідаєте за залізо, але дані не залишають вашу інфраструктуру.
Плата за це — зазвичай нижча якість відповідей порівняно з найбільшими закритими моделями, доступними лише через API, і витрати зміщуються з оплати за токени на оплату за сервер, який працює постійно, незалежно від того, звертаєтеся ви до моделі просто зараз чи ні.
Головне обмеження — обсяг пам'яті
Перш ніж обирати модель за назвою, варто зрозуміти, скільки пам'яті вона займе за різного ступеня стиснення. Нижче — орієнтовні значення: точні цифри залежать від конкретної реалізації, але порядок величини такий.
| Клас моделі (параметрів) | Повна точність | 8-біт | 4-біт |
|---|---|---|---|
| 7-8 млрд | близько 15 ГБ | близько 8 ГБ | близько 4-5 ГБ |
| 13-14 млрд | близько 28 ГБ | близько 14 ГБ | близько 7-8 ГБ |
| 30-34 млрд | близько 65 ГБ | близько 33 ГБ | близько 17 ГБ |
| 70 млрд і більше | близько 140 ГБ | близько 70 ГБ | близько 35-40 ГБ |
Звідси практичний висновок: модель із запасом має вміщатися в доступну пам'ять з урахуванням контексту і службових буферів, а не впритул.
Що таке квантування і чим за нього платиш
Квантування — це стиснення ваг моделі до меншої розрядності: замість 16-бітних чисел використовуються 8-бітні або 4-бітні. Це зменшує обсяг пам'яті і прискорює роботу на тому самому залізі.
Розплата — поступова втрата точності: чим сильніше стиснення, тим вищий ризик, що модель почне плутатися в деталях і довгих міркуваннях. Для більшості практичних завдань 8-бітне і помірне 4-бітне стиснення працюють прийнятно, але перевіряти варто на власних даних, а не довіряти загальним описам.
Вибір моделі під завдання
Різні завдання потребують різного класу моделей, і переплачувати пам'яттю за завдання, яке цього не потребує, сенсу немає.
| Завдання | Клас моделі | На що дивитися |
|---|---|---|
| Чат і листування | 7-8 млрд параметрів зазвичай достатньо | якість утримання контексту діалогу |
| Допомога з кодом | 13-14 млрд параметрів і вище | окрема версія, навчена на коді |
| Переклад тексту | 7-8 млрд параметрів | підтримка потрібної пари мов |
| Видобування даних з документів | 7-8 млрд параметрів з низьким стисненням | стійкість до формату і одруківок у джерелі |
| Векторні представлення для пошуку | окремий, компактніший клас моделей | розмір і швидкість отримання векторів, а не діалогові здібності |
Процесор чи відеокарта
Без відеокарти модель теж запускається, якщо вона вміщається в оперативну пам'ять, але відповідь формується помітно довше, слово за словом, і чекати на неї доводиться секундами чи довше на кожен запит.
Відеокарта обов'язкова, коли відповідь потрібна швидко і регулярно — наприклад, у сервісі з живими користувачами. Для рідкісних фонових завдань без жорсткої вимоги до швидкості процесора іноді достатньо.
Як перевірити, що модель підходить, до того як будувати на ній сервіс
Три ознаки видно вже на перших запитах, і перевірити їх варто до того, як навколо моделі побудований увесь сервіс.
- Модель утримує контекст саме тієї довжини, яка потрібна в завданні, а не губить початок діалогу
- Відповідь укладається в прийнятний час на реальному залізі, а не на папері
- Якість на ваших справжніх прикладах, а не на демонстраційних, лишається стабільною
Що робити далі
Коли клас моделі зрозумілий, далі — питання запуску і обв'язки навколо неї. Встановлення розібране в статті про налаштування Ollama на VDS, а про роботу з локальними моделями без зовнішніх API — у статті про локальні LLM на VPS.