Запуск відкритих моделей на Linux-машинах
Складність:
[MEDIUM]Час на виконання: 45–60 хв
Передумови: впевнена робота з основами Linux shell, базове уявлення про хаби відкритих моделей і знайомство з термінологією локального інференсу з попередніх модулів
Що ви зможете робити
Розділ «Що ви зможете робити»- Діагностувати обмеження CPU, GPU та CUDA на Linux-машині для інференсу перед вибором середовища виконання.
- Порівнювати шляхи CPU-орієнтованих машин, робочих станцій з одним GPU та серверів домашньої лабораторії для інференсу відкритих моделей.
- Проєктувати середовище виконання та профіль моделі для інтерактивного експериментування або розгортання персистентного сервісу.
- Реалізувати відтворюваний профіль Linux-хосту, який фіксує апаратне забезпечення, драйвери, пам’ять, сховище та цілі сервісу.
- Оцінювати компроміси безпеки, моніторингу та ескалації перед наданням доступу до локального модельного сервісу користувачам.
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»Гіпотетичний сценарій: слухач отримує стару робочу станцію з Linux, бачить, що відкриті моделі можна запускати локально, і вирішує перетворити машину на приватного асистента для нотаток з коду, резюме документів і пошукових експериментів. Перше встановлення працює для невеликої квантованої моделі, а потім той самий робочий процес руйнується, коли вони пробують більшу інструкційну модель, додають веб-інтерфейс і залишають сервіс працювати на ніч. Нічого містичного не сталося. Машина перейшла від «коробки, яка може запустити один експеримент» до «хосту з тиском на пам’ять, зростанням сховища, припущеннями щодо драйверів, мережевою доступністю та обов’язками з управління сервісами».
Саме цей перехід робить Linux таким цінним навчальним середовищем для локального інференсу. Linux-машина змушує вас побачити межу операційної системи, яку відшліфований десктопний застосунок може приховати: який пристрій присутній, який драйвер завантажено, який процес володіє пам’яттю, який обліковий запис користувача запускає сервіс, де живуть файли моделей, який порт слухає і як середовище виконання буде перезапущене або зупинене після збою. Сенс не в тому, що Linux завжди кращий за робочий процес на ноутбуці. Сенс у тому, що Linux робить інфраструктурні наслідки видимими на ранніх етапах, поки ставки ще достатньо малі, щоб вчитися на помилках.
Цей модуль навчає дисциплінованого способу профілювання Linux-хосту перед вибором середовища виконання, такого як Transformers, llama.cpp, Ollama, text-generation-inference або vLLM. Ви чесно класифікуєте машину, вирішите, чи достатньо інференсу лише на CPU, визначите, коли CUDA змінює операційний шлях, і відокремите інтерактивне експериментування від розгортання персистентного сервісу. До кінця модуля ви маєте вміти пояснити, чого ваша Linux-машина може вас навчити, чого вона обґрунтовано не може робити і які докази вам потрібні, перш ніж надавати доступ до локальної моделі будь-кому іншому.
Почніть із машини, яка у вас реально є
Розділ «Почніть із машини, яка у вас реально є»Правильне питання слухача — не «Яке найкраще налаштування Linux для ШІ?», бо це питання приховує реальне обмеження. Невелика машина лише з центральним процесором, ігровий десктоп з однією картою NVIDIA, перероблена робоча станція і невеликий сервер домашньої лабораторії — усі можуть працювати під Linux, але вони не є рівноцінними платформами для інференсу. Хороша інженерія починається з називання машини перед вами, а потім — з узгодження навчальної цілі з цією машиною, замість того щоб змушувати машину імітувати скріншот бенчмарку.
Ставтеся до профілю хосту як до маршруту подорожі, а не як до списку бажань. Вам потрібно знати, звідки ви починаєте, скільки місткості можете нести і який маршрут створить корисний досвід, не залишивши вас на півдорозі. Для локального інференсу це означає фіксацію класу процесора, системної пам’яті, типу прискорювача, доступності драйверів, швидкості сховища, мережевої доступності та запланованого стилю використання. Ці факти не приймають рішення за вас, але вони запобігають рішенням, які ігнорують фізику.
Машини лише з CPU — це не невдалі GPU-машини. Вони чудово підходять для вивчення пакування моделей, потоку промптів, підключення пошуку, квантованих форматів, нагляду за сервісами, логування та різниці між середовищем виконання, яке завантажується, і середовищем виконання, яке відповідає комфортно. Компроміс — у пропускній здатності. Центральний процесор може бути корисним для невеликої моделі та одного слухача, але він не зробить велику модель інтерактивною лише тому, що командний рядок приймає команду.
Робочі станції з одним GPU є практичною золотою серединою для багатьох слухачів, оскільки вони роблять пам’ять прискорювача досяжною без потреби в кластері. На Linux це часто означає карту NVIDIA, сумісний драйвер, фреймворки з підтримкою CUDA та середовище виконання, яке справді може використовувати пристрій. Цей шлях навчає як локальному інференсу, так і першому рівню інфраструктури машинного навчання: видимість пристрою, сумісність драйверів, підтримку контейнерного середовища виконання та бюджетування пам’яті навколо KV-кешу та конкурентних запитів.
Сервери домашньої лабораторії додають інший урок. Сервер корисний, коли ви хочете персистентних сервісів, віддаленого доступу, автоматизованого запуску, логів і відтворюваних звичок розгортання, але він також може приховувати слабкий вибір моделі за операційним церемоніалом. Якщо слухач ще не зрозумів поведінку середовища виконання на одному хості, перетворення моделі на сервіс може створити більше поверхні, ніж навчальної цінності. Сервер має робити працюючу модель надійнішою; він не має бути способом відкласти розуміння моделі.
Зупиніться та спрогнозуйте: якщо Linux-машина має достатньо пам’яті, щоб завантажити квантовану модель один раз, чи доводить це, що вона готова до персистентного локального асистента? Безпечніший прогноз — ні. Завантаження — це лише перша межа. Персистентний асистент також потребує запасу пам’яті для довших промптів, одночасних запитів, зростання логів, оновлень кешу моделі, роботи операційної системи та контрольованого шляху завершення, коли середовище виконання поводиться некоректно.
Наступний блок інвентаризації навмисно нудний, тому що нудна інвентаризація запобігає захопливим збоям. Запустіть команди, подібні до цих, зі звичайної термінальної сесії та збережіть результати в нотатці поруч із моделлю та середовищем виконання, які ви оцінюєте. Команди не обирають середовище виконання; вони дають вам докази, необхідні для вибору з меншою кількістю здогадок.
uname -alscpufree -hlsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTSdf -hЯкщо машина має GPU NVIDIA, наступна перевірка — чи може операційна система побачити пристрій через встановлений драйвер. Карта, яка з’являється в маркетингових матеріалах, але не в стеку драйверів, недоступна для вашого середовища виконання. Коли nvidia-smi працює, читайте це як знімок стану драйвера, пам’яті пристрою, поточних процесів і підказок щодо сумісності з CUDA, а не як гарантію того, що кожна збірка фреймворку працюватиме.
nvidia-smiЯкщо машина не має підтримуваного GPU або робочого драйвера прискорювача, залишайтеся на шляху CPU-орієнтованого підходу та вивчайте модель середовища виконання. Ця порада може здаватися консервативною, але вона підтримує рух навчання. Ви все ще можете порівнювати квантовані артефакти, вимірювати затримку промптів, будувати прототип пошуку, вивчати нагляд за сервісами та дізнаватися, де з’являються вузькі місця. Найкраще початкове налаштування — те, яке дозволяє вам чесно ітерувати, а не витрачати цілий тиждень на лагодження стеку драйверів, якого ви ще не розумієте.
Порівняйте три навчальні шляхи на Linux
Розділ «Порівняйте три навчальні шляхи на Linux»Три поширені навчальні шляхи — це CPU-орієнтовані машини, робочі станції з одним GPU та невеликі сервери або хости домашньої лабораторії. Вони перетинаються, але оптимізують різні уроки. CPU-орієнтована машина наголошує на механіці та обмеженнях. Робоча станція з одним GPU наголошує на інференсі з урахуванням прискорювача та виборі моделі. Невеликий сервер наголошує на персистентності, віддаленому доступі, спостережуваності та дисципліні, необхідній, коли інструмент перестає бути приватним експериментом.
| Шлях на Linux | Сильна навчальна цінність | Основне обмеження | Краща перша категорія середовища виконання |
|---|---|---|---|
| CPU-орієнтована машина | Квантизація, пакування, прототипи пошуку, основи сервісів | Повільна генерація та обмежений розмір моделі | Локальне середовище виконання в стилі llama.cpp або невеликий експеримент із Transformers |
| Робоча станція з одним GPU | Інференс з урахуванням CUDA, ембединги, сильніші експерименти, бюджетування пам’яті | Сумісність драйверів і пам’яті прискорювача | Transformers, vLLM, TGI або локальне середовище виконання з підтримкою GPU |
| Сервер домашньої лабораторії | Персистентні сервіси, віддалений доступ, моніторинг, операційні звички | Вразливість безпеки та очікування надійності | Контрольований сервіс після успішного проходження інтерактивних тестів |
CPU-орієнтований шлях часто недооцінюють, оскільки слухачі ототожнюють швидкість із серйозністю. Швидкість важлива, але це не єдине, чого може навчити хост локального інференсу. Повільніший робочий процес на CPU змушує вас помічати розмір моделі, довжину промпту, швидкість токенів, формати файлів і різницю між прийнятною пакетною обробкою та болісним інтерактивним використанням. Це справжні інженерні уроки, особливо якщо ви пізніше перейдете до обслуговування з підтримкою GPU і вам потрібно буде пояснити, чому той самий промпт поводиться інакше.
Шлях з одним GPU дає вам більш реалістичний міст у сучасну ШІ-інженерію, оскільки багато продакшен-стеків інференсу припускають обізнаність про прискорювач. Ви починаєте стикатися з версіями CUDA, колесами фреймворків, доступом до GPU в контейнерах, обмеженнями пам’яті пристрою та виборами середовищ виконання, які не з’являються в суто споживацькому робочому процесі. Цей шлях потужний, але його також легше неправильно діагностувати. Збій може походити від моделі, пакету Python, драйвера, контейнерного середовища виконання або бюджету пам’яті GPU, тому дисциплінований збір доказів має значення.
Шлях сервера домашньої лабораторії цінний, коли мета включає постійно доступний сервіс. Сервіс, який запускається при завантаженні, пише логи, відкриває локальну мережеву кінцеву точку та переживає вихід із shell, навчає іншому набору звичок, ніж ноутбук чи одноразова команда. Ризик — передчасна операціоналізація. Якщо модель не була оцінена інтерактивно, сервісні обгортки можуть зробити слабке налаштування офіційним на вигляд, приховуючи той факт, що базова модель занадто повільна, занадто велика або занадто слабко захищена.
Сценарій вправи: у вас є повторно використаний офісний десктоп із тридцятьма двома гігабайтами системної пам’яті, без дискретного GPU та зі швидким твердотілим накопичувачем. Найкраща перша мета — не обслуговування найбільшої моделі, яку ви можете знайти. Краща мета — запустити невелику квантовану інструкційну модель, виміряти швидкість токенів на репрезентативних промптах, побудувати крихітну пошукову демонстрацію та записати, яка затримка є прийнятною для вашого власного навчального робочого процесу. Цей результат навчить більше, ніж тиждень, витрачений на гонитву за шляхом прискорювача, якого обладнання не має.
Практична золота середина — мислити в термінах «навчальної віддачі за годину». Якщо ваша машина дозволяє вам тестувати промпти, спостерігати за використанням ресурсів і змінювати одну змінну за раз — вона вас навчає. Якщо ваша машина заганяє вас у незрозумілі збої залежностей до того, як ви зможете запустити базову модель, навчальна віддача низька, поки ви не спростите шлях. Скромна CPU-машина може мати високу навчальну віддачу, коли метою є грамотність у середовищах виконання, тоді як потужна робоча станція може мати низьку навчальну віддачу, коли кожен збій сприймається як випадкова магія.
Перед запуском першої моделі запитайте, яке обмеження ви тестуєте. Чи тестуєте ви, чи може модель відповісти на доменне питання, чи може середовище виконання використовувати GPU, чи квантований артефакт усе ще добре форматує відповіді, чи сервіс може чисто перезапуститися? Це різні експерименти. Об’єднання їх в одну сесію «встанови все і подивимося» ускладнює усунення несправностей, оскільки будь-який збій має занадто багато можливих причин.
Де CUDA змінює шлях на Linux
Розділ «Де CUDA змінює шлях на Linux»CUDA зазвичай входить у цей модуль, коли слухач Linux використовує GPU NVIDIA для локального інференсу. Це не окремий знак серйозності; це рівень, який дозволяє багатьом фреймворкам машинного навчання ефективно взаємодіяти з прискорювачем. Коли задіяна CUDA, профіль хосту має включати сумісність драйверів, сумісність збірок фреймворків, конфігурацію контейнерного середовища виконання, якщо використовуються контейнери, та обсяг пам’яті моделі при реальній довжині промпту. Працюючий shell — це не те саме, що працюючий стек прискорювача.
Найпростіше операційне правило все ще корисне. Без GPU або з непідтримуваним GPU — залишайтеся на шляху CPU-орієнтованого підходу та вивчайте модель середовища виконання. З доступним GPU NVIDIA — CUDA стає частиною рішення щодо середовища виконання. Із серйозними амбіціями локального обслуговування або тонкого налаштування — обізнаність про CUDA стає важливою, оскільки завантаження моделі, пакетування, поведінка KV-кешу та ядра фреймворку залежать від когерентності шляху прискорювача. Вам не потрібно опановувати внутрішні механізми CUDA тут, але вам потрібно знати, коли CUDA є частиною проблеми.
Сумісність драйверів — це перша межа, оскільки фреймворки залежать від того, що встановлений драйвер може підтримувати. PyTorch, Transformers, vLLM і text-generation-inference публікують шляхи встановлення, які припускають певну підтримку прискорювача. Коли очікування фреймворку та драйвера розходяться, збій може проявитися як помилка імпорту, відсутня бібліотека, попередження середовища виконання або тихе повернення до виконання на центральному процесорі. Тихий відкат особливо небезпечний, оскільки модель усе ще працює, просто достатньо повільно, щоб спотворити кожен висновок про продуктивність.
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csvДруга межа — пам’ять. Пам’ять GPU — це не те саме, що розмір диска чи системна пам’ять, і сервіс інференсу потребує більше, ніж сире зберігання ваг. Ваги моделі займають пам’ять, але так само займають буфери середовища виконання, KV-кеш для активного контексту, накладні витрати на пакетування та інші процеси, що спільно використовують пристрій. Модель, яка ледь завантажується в порожньому терміналі, може вийти з ладу, коли промпти стають довшими або коли надходить другий запит. Ось чому «завантажилася один раз» — це слабкий доказ готовності до сервісу.
Думайте про пам’ять прискорювача як про робочий стіл, а не як про склад. Диск — це місце, де зберігаються файли моделей, але пам’ять GPU — це стіл, де відбуваються активні обчислення. Якщо стіл зайнятий самою моделлю, немає місця для контексту промпту, інструментів, логів чи другої задачі. Ви можете володіти великим складом файлів моделей і все ще мати крихітний робочий стіл для реального інференсу.
Контейнеризовані робочі процеси з GPU додають ще один рівень. Образ контейнера може включати бібліотеки простору користувача, потрібні середовищу виконання, але хост усе ще надає драйвер і доступ до пристрою. Контейнерний інструментарій NVIDIA існує тому, що звичайні контейнери автоматично не роблять прискорювачі доступними всередині простору імен процесу. Якщо ви використовуєте контейнери для локального обслуговування, тест — це не лише «чи запускається Docker?» Тест полягає в тому, чи може контейнер побачити пристрій, виділити пам’ять і запустити той самий шлях фреймворку, який ви перевірили поза контейнером.
Тег базового образу CUDA нижче є ілюстративним (станом на 2026-06); перевірте актуальний тег на Docker Hub відповідно до вашого хостового драйвера, перш ніж покладатися на нього.
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smiВикористовуйте цю контейнерну перевірку як діагностичний засіб, а не як універсальний рецепт. Деяким слухачам варто уникати контейнерів, поки нативний шлях середовища виконання не стане зрозумілим. Іншим варто використовувати контейнери, оскільки вони хочуть відтворюваності та легшого очищення. Рішення залежить від навчальної мети. Якщо ви вивчаєте сумісність пакетів Python, нативні віртуальні середовища можуть бути зрозумілішими. Якщо ви вивчаєте розгортання сервісів, контейнерні межі можуть краще відповідати операційній формі, яку ви хочете практикувати.
Перш ніж запускати це, який результат ви очікуєте, якщо хостовий драйвер відсутній, але образ контейнера включає бібліотеки CUDA? Ймовірний результат — неможливість доступу до GPU, оскільки контейнер не може створити хостовий драйвер. Цей прогноз має значення, оскільки він відокремлює вміст образу від можливостей хосту. Контейнер може запакувати середовище виконання, але він не може зробити непідтримуване обладнання підтримуваним.
Шлях CUDA також впливає на те, які наступні модулі будуть найважливішими. Якщо ви плануєте продовжити до відтворюваних середовищ Python, CUDA та ROCm, тоді дисципліна драйверів і фреймворків стає частиною вашого навчального шляху. Якщо ви плануєте залишитися з CPU-орієнтованим локальним середовищем виконання, застосовується та сама операційна дисципліна, але стек залежностей, специфічний для прискорювача, менш центральний. Сенс у тому, щоб обирати наступний урок на основі машини та мети, а не ставитися до кожного налаштування локального інференсу як до одного треку.
Спроєктуйте середовище виконання та профіль моделі
Розділ «Спроєктуйте середовище виконання та профіль моделі»Середовище виконання — це програма, яка завантажує модель, готує вхідні дані, виконує інференс і повертає згенеровані токени або ембединги. Профіль моделі — це письмовий контракт, який пояснює, який артефакт моделі, формат, рівень квантування, довжину контексту, середовище виконання, апаратний шлях і режим сервісу ви збираєтеся використовувати. Без цього профілю слухачі схильні змінювати дві або три змінні одночасно, а потім не можуть пояснити, чому змінилася якість, швидкість або надійність. Профіль перетворює експериментування на інженерні докази.
Почніть із форми навантаження. Інтерактивне експериментування винагороджує швидке налаштування, видимі помилки та просте очищення. Персистентний сервіс винагороджує стабільний запуск, передбачувані логи, контрольовані порти, обмеження ресурсів і відтворюваність. Спільний внутрішній інструмент додає доступ користувачів, межі автентифікації, мережеве розміщення та шляхи ескалації. Та сама Linux-машина може підтримувати кожну форму на різних рівнях зрілості, але її не слід вважати продакшен-подібною лише тому, що існує веб-кінцева точка.
Поширені категорії середовищ виконання відповідають різним сильним сторонам. Transformers чудово підходить для безпосереднього вивчення екосистеми моделей, оскільки він відкриває токенізатори, класи моделей і варіанти встановлення фреймворку. Середовища виконання в стилі llama.cpp чудово підходять для квантованого локального інференсу та обмежених пристроїв. Ollama дає більш плавний досвід локального сервісу та робочий процес керування моделями. vLLM і text-generation-inference ближчі до патернів високопропускного обслуговування, особливо коли важливі пакетування з підтримкою прискорювача та продакшен-стиль API.
| Категорія середовища виконання | Добре підходить | Уважно стежте |
|---|---|---|
| Transformers | Вивчення файлів моделей, токенізаторів, поведінки фреймворку, невеликих власних скриптів | Дрейф залежностей Python і сумісність коліс прискорювача |
| llama.cpp або середовище виконання GGUF | CPU-орієнтований або обмежений локальний інференс із квантованими моделями | Втрата якості від квантизації та підтримка форматів моделей, специфічна для середовища виконання |
| Ollama | Швидкі експерименти з локальним сервісом і прості команди життєвого циклу моделі | Приховані типові значення, які можуть приховувати використання ресурсів або деталі форматування промптів |
| vLLM | Обслуговування з підтримкою GPU, пакетування, експерименти з API, сумісним з OpenAI | Шлях CUDA, пам’ять прискорювача, матриця підтримки моделей та операційне налаштування |
| Text Generation Inference | Контейнерно-орієнтоване обслуговування на GPU та практика продакшен-подібного розгортання | Налаштування контейнерів NVIDIA, конфігурація шардів і вимоги до обладнання |
Профіль моделі має точно називати артефакт. «Невелика відкрита модель» — недостатньо. Зафіксуйте репозиторій, ревізію або версію, коли доступно, формат файлу, рівень квантизації, довжину контексту, джерело токенізатора, статус перевірки ліцензії та промпти, використані для оцінювання. Це може здаватися надмірним під час першого експерименту, але економить час, коли пізніший запуск поводиться інакше. Без профілю ви не можете сказати, чи покращилося середовище виконання, чи змінилася модель, чи ваш промпт випадково став легшим.
Профіль сервісу має називати режим роботи. Якщо модель лише для приватних експериментів у командному рядку, процесу переднього плану може бути достатньо. Якщо модель має пережити закриття терміналу, використовуйте менеджер сервісів, такий як systemd, і свідомо визначте користувача, робочий каталог, файл середовища, політику перезапуску, логи та адресу прив’язки до мережі. Управління сервісами — це місце, де локальний інференс починає виглядати як звичайна інфраструктура, а звичайна інфраструктура заслуговує на звичайну гігієну.
[Unit]Description=Local model runtime for learning experimentsAfter=network.target
[Service]Type=simpleUser=localmodelWorkingDirectory=/srv/localmodelEnvironmentFile=/etc/localmodel/runtime.envExecStart=/srv/localmodel/bin/start-runtime.shRestart=on-failureRestartSec=5
[Install]WantedBy=multi-user.targetЦей сервісний файл є шаблоном для мислення, а не командою для сліпого вставляння на кожен хост. Важливими частинами є явне володіння та явна поведінка перезапуску. Модельний сервіс не повинен працювати під вашим повсякденним користувачем shell, якщо до нього матимуть доступ інші люди. Він не повинен випадково прив’язуватися до кожного мережевого інтерфейсу. Він не повинен перезапускатися вічно без логів, які пояснюють збій. Це ті самі звички, які ви застосовували б до будь-якого довготривалого сервісу.
Сховище потребує рядка в профілі, оскільки файли моделей великі, а кеші накопичуються. Слухач може завантажити кілька варіантів тієї самої моделі під час порівняння форматів, і кожен варіант може займати достатньо дискового простору, щоб спотворити припущення щодо резервного копіювання, файлової системи та очищення. Зберігайте артефакти моделей у передбачуваному каталозі, записуйте, які з них схвалені для поточних експериментів, і видаляйте невдалі кандидати після завершення нотаток. Безлад на диску стає проблемою надійності, коли наступне завантаження моделі завершується невдачею на половині лабораторної роботи.
Безпека також належить до першого профілю, а не до пізнішого продакшен-чеклісту. Локальний інференс часто здається приватним, оскільки він працює на машині, яку ви контролюєте, але сервіс, прив’язаний до неправильної адреси, може стати досяжним із мережі, яку ви не планували. Кінцева точка моделі може витікати дані промптів через логи, зберігати чутливі документи в пошуковому індексі або приймати запити від людей, які не розуміють обмежень. Безпека починається з чіткої відповіді на питання «хто може надсилати промпти цьому процесу?»
Який підхід ви обрали б тут і чому: прямий Python-скрипт, який виводить відповіді у вашому терміналі, чи сервіс під керуванням systemd, який слухає на локальній мережевій адресі? Якщо мета — вивчити поведінку моделі та форму промпту, скрипт зазвичай є кращим першим кроком. Якщо мета — практикувати роботу персистентного сервісу після того, як модель уже поводиться прийнятно, керований сервіс стає правильним наступним кроком. Різниця не в престижі; вона в тому, чи відповідає операційна обгортка навчальному питанню.
Реалізуйте відтворюваний профіль Linux-хосту
Розділ «Реалізуйте відтворюваний профіль Linux-хосту»Відтворюваний профіль хосту — це документ, який дозволяє вам перезапустити експеримент наступного місяця та зрозуміти, що змінилося. Він має бути достатньо малим для підтримки, але достатньо повним, щоб пояснити продуктивність, збої та обмеження. Як мінімум, зафіксуйте клас обладнання, модель CPU, системну пам’ять, модель GPU за наявності, пам’ять GPU, версію драйвера, випуск операційної системи, місце зберігання файлів моделей, назву середовища виконання, артефакт моделі, формат моделі, заплановане використання та те, чи є налаштування інтерактивним або персистентним.
Ви можете вести профіль у markdown, оскільки перша аудиторія — це слухач, а не система автоматизації. Пізніше ви можете перетворити ті самі поля на YAML, інвентарні дані або запис розгортання, але простого тексту достатньо, щоб сформувати звичку. Ключ — у послідовності. Кожен експеримент із середовищем виконання має оновлювати ті самі поля, щоб порівняння базувалися на фактах, а не на пам’яті. «Минулого тижня здавалося швидшим» менш корисне, ніж «квантована модель показала виміряну швидкість токенів на тому самому промпті».
## Linux Inference Host Profile
- Host role: interactive experiment or persistent service- CPU:- System memory:- GPU and GPU memory:- Driver version:- Operating system:- Runtime:- Model artifact and revision:- Model format or quantization:- Intended use:- Network binding:- Notes from evaluation:Нотатки з оцінювання мають включати короткий репрезентативний набір промптів. Не тестуйте лише щасливий шлях, де модель відповідає на просте питання одним реченням. Включіть довший промпт, доменно-специфічний промпт, випадок відмови або невизначеності та випадок форматування, якщо ваш застосунок очікує JSON, markdown або цитування. Локальний інференс — це не лише про те, щоб змусити токени з’являтися. Це про те, щоб дізнатися, чи конкретний хост, середовище виконання та модель можуть підтримувати поведінку, яка вам насправді потрібна.
Вимірювання спочатку мають бути простими. Час до першого токена, токенів за секунду, пікова пам’ять, час запуску та суб’єктивна зручність використання — цього достатньо для профілю слухача. Якщо пізніше ви побудуєте сервіс, додайте затримку запитів, частоту помилок, кількість перезапусків і зростання дискового простору. Не перетворюйте перший профіль на моніторингову платформу. Мета — створити достатньо доказів, щоб наступне рішення можна було чітко обґрунтувати.
/usr/bin/time -v ./run-local-model.sh < prompts/smoke-test.txtТочна команда залежатиме від вашого середовища виконання, але звичка переноситься. Обгорніть команду середовища виконання, подайте їй відтворюваний промпт і зафіксуйте спостереження щодо часу та пам’яті. Якщо ви використовуєте HTTP-сервіс, напишіть невеликий скрипт, який надсилає той самий запит кожного разу та записує час відповіді. Відтворюваність на цьому етапі важливіша за точність. Грубе вимірювання, послідовно повторене, корисніше, ніж ідеальне вимірювання, яке ви ніколи більше не зберете.
Моніторинг починається з видимості процесів і ресурсів. На приватному хості слухача звичайні інструменти, такі як systemctl status, journalctl, ps, top, htop, free, df і nvidia-smi, можуть відповісти на багато перших питань. У середовищах Kubernetes 1.35+ те саме мислення розширюється до міток вузлів, плагінів пристроїв, запитів ресурсів, логів, метрик і справності розгортання, але урок на одному хості — перший: знайте, який процес запущено, який ресурс він споживає і як він виходить з ладу.
systemctl status localmodel.servicejournalctl -u localmodel.service --since "30 minutes ago"Правила ескалації мають значення навіть для одного слухача, оскільки локальна модель може спожити всю машину. Вирішіть, коли зупинити сервіс, коли перейти на меншу модель, коли зменшити довжину контексту та коли відмовитися від шляху GPU, доки ситуація з драйвером не стане зрозумілою. Хороші оператори визначають умови зупинки до того, як фрустрація візьме гору. Сервіс, який робить машину непридатною до використання, не є навчальним успіхом лише тому, що він технічно запускається.
Профіль хосту також має зазначати, чого Linux-машина не вирішує. Linux дає вам контроль над пакетами, процесами, моніторингом, вибором середовища виконання та автоматизацією. Він не обирає хорошу модель, не створює валідний набір для оцінювання, не захищає чутливі промпти за замовчуванням і не змушує слабкий GPU поводитися як висококласний прискорювач. Контроль корисний лише в парі з розсудливістю. Профіль — це місце, де ця розсудливість стає видимою.
Від локальної машини до інфраструктурного мислення
Розділ «Від локальної машини до інфраструктурного мислення»Linux стає особливо цінним, коли ви перестаєте ставитися до машини як до іграшки й починаєте ставитися до неї як до крихітного інфраструктурного середовища. Ті самі категорії, які мають значення на одному хості, матимуть значення пізніше в Kubernetes 1.35+ або на більшій платформі: походження артефактів, планування апаратного забезпечення, сумісність середовищ виконання, володіння сервісами, моніторинг, мережева доступність і відкат. Одна Linux-машина — це не кластер, але вона може навчити ментальній моделі, яку кластери роблять більш формальною.
Найважливіше перенесення — це чесність щодо ресурсів. У Kubernetes робоче навантаження з підтримкою прискорювача потребує видимості пристрою, правил планування, підтримки середовища виконання та планування місткості. На одній Linux-машині ці проблеми проявляються як nvidia-smi, володіння процесами, запас пам’яті та вибір середовища виконання. Словник змінюється, але дисципліна — ні. Ви все ще питаєте, який ресурс потрібен, хто ним володіє, що станеться, коли він вичерпається, і як система повідомляє про проблему.
Мережева доступність — це друге перенесення. Локальний сервіс, прив’язаний до 127.0.0.1, доступний лише на локальній машині, тоді як сервіс, прив’язаний до 0.0.0.0, може слухати на кожному інтерфейсі. Цю різницю легко пропустити, коли веб-інтерфейс працює у вашому браузері. У більшій інфраструктурі еквівалентними питаннями стають тип сервісу, інгрес, автентифікація, авторизація та аудит-логування. Звичка починається з перевірки того, що ваш Linux-процес насправді слухає.
ss -ltnpСекрети та дані промптів заслуговують на таку саму увагу. Локальний модельний сервіс може не викликати зовнішнє API, але він усе ще може зберігати чутливі промпти в логах, історії shell, пошукових індексах або тимчасових файлах. Якщо ви тестуєте з приватними документами, ризик переміщується від передачі постачальнику до локальної обробки. Це все ще ризик. Локальний інференс звужує одні межі та розширює інші, особливо коли машина є спільною, резервно копіюється або досяжна через мережу.
Надійність — це третє перенесення. Демонстрація в командному рядку може голосно вийти з ладу й бути перезапущеною вручну. Сервіс потребує перевірок стану, поведінки перезапуску, збереження логів, доступності артефакту моделі та шляху відкату до меншої або безпечнішої моделі. На Linux-машині systemd і базових логів достатньо для практики цих концепцій. У платформному середовищі ті самі ідеї стають пробами готовності, пробами живості, відкатами образів, персистентними томами та ресурсними політиками.
Це також місце, де шляхи Mac і Linux розходяться корисним чином. Apple Silicon дає багатьом слухачам плавний локальний шлях, особливо через інструментарій з підтримкою MLX, і ця плавність цінна, коли метою є експериментування із застосунками. Linux спочатку грубіший, але він відкриває деталі операційної системи та управління сервісами, які безпосередньо переносяться в інфраструктурну роботу. Жоден шлях не є переможцем для кожного слухача. Оберіть шлях, який навчає наступному обмеженню, яке вам насправді потрібно опанувати.
Остаточне рішення — про зрілість, а не про ідентичність. Використовуйте CPU-орієнтовану Linux-машину, коли вам потрібна грамотність у середовищах виконання та невеликі експерименти. Використовуйте робочу станцію з одним GPU, коли локальний інференс з урахуванням прискорювача є справжньою навчальною метою. Використовуйте сервер домашньої лабораторії, коли важливі персистентність, контроль доступу та операційна практика. Переходьте до Kubernetes лише тоді, коли профіль одного хосту відповів на питання щодо моделі, середовища виконання та сервісу достатньо чітко, щоб оркестрація вирішувала реальну проблему, а не приховувала невирішену.
Патерни й антипатерни
Розділ «Патерни й антипатерни»Патерни
Розділ «Патерни»Починайте з профілю хосту перед встановленням середовища виконання. Цей патерн працює, тому що він відокремлює факти від уподобань і дозволяє чесно порівнювати експерименти. Зафіксуйте процесор, пам’ять, прискорювач, драйвер, сховище, операційну систему, артефакт моделі, середовище виконання та режим сервісу перед зміною пакетів. У міру зростання вашого налаштування той самий профіль стає вхідним документом для огляду платформи, планування місткості та усунення несправностей.
Використовуйте CPU-орієнтовані експерименти для вивчення механіки моделей, навіть якщо ви зрештою плануєте використовувати GPU. CPU-орієнтована робота навчає форматам файлів, квантизації, формі промптів, поведінці кешу моделі та контролю сервісів без додаткової невизначеності залежностей прискорювача. Цей патерн масштабується, оскільки словник налагодження переноситься. Коли шлях GPU стане активним, ви зможете сказати, чи є збій новою складністю прискорювача, чи поведінкою, яку ви вже бачили в простішому середовищі виконання.
Просувайте модель від інтерактивної команди до персистентного сервісу лише після того, як відтворюваний набір промптів пройде успішно. Цей патерн запобігає тому, щоб операційна обгортка стала маскуванням слабкої поведінки моделі. Сервіс має додавати надійність, логування, поведінку перезапуску та межі доступу навколо моделі, яка вже відповідає навчальній меті. Якщо модель занадто повільна, занадто велика або занадто ненадійна в сесії переднього плану, systemd зробить її більш офіційною, але не більш правильною.
Тримайте перевірки прискорювача близько до перевірок середовища виконання. Якщо середовище виконання має використовувати CUDA, перевірте пристрій, драйвер, фреймворк і розміщення процесу під час того самого оцінювання. Цей патерн працює, тому що збої GPU часто маскуються під проблеми середовища виконання або моделі. Модель, яка тихо повертається до виконання на центральному процесорі, може виглядати функціональною, продукуючи оманливі докази щодо затримки, тому кожен результат GPU має зазначати, як було підтверджено використання пристрою.
Антипатерни
Розділ «Антипатерни»Не ставтеся до будь-якої Linux-машини як до серверного рівня лише тому, що вона працює без дисплея. Команди та слухачі потрапляють у цю помилку, оскільки Linux має сильну асоціацію з серверами. Краща альтернатива — чесно класифікувати машину за обладнанням, очікуваннями щодо сервісу та толерантністю до збоїв. Повторно використаний десктоп може бути чудовим навчальним хостом, водночас залишаючись поганим постійно доступним спільним сервісом.
Не припускайте, що GPU є обов’язковим для всього корисного навчання. Ця помилка блокує прогрес для слухачів, які могли б вивчати середовища виконання, квантизацію, пошук, оцінювання промптів і управління сервісами на обладнанні лише з CPU. Краща альтернатива — узгодити урок із машиною. Використовуйте шляхи CPU для механіки та обмежень, потім переходьте до інференсу з підтримкою GPU, коли мета вимагає поведінки прискорювача.
Не оптимізуйте для кластерної складності до розуміння одного хосту. Kubernetes, плагіни пристроїв і пули вузлів із прискорювачами цінні, коли форма навантаження зрозуміла, але вони додають рухомі частини. Краща альтернатива — довести модель, середовище виконання, бюджет пам’яті та поведінку сервісу спочатку на одному хості. Оркестрація має вирішувати проблеми планування та розгортання, а не компенсувати невідоме локальне налаштування.
Не плутайте інфраструктурні амбіції з інфраструктурною готовністю. Слухач може хотіти продакшен-стиль обслуговування, але готовність походить від доказів: відтворюваних промптів, виміряної затримки, відомого використання пам’яті, задокументованого стану драйверів, контрольованої мережевої прив’язки та чітких умов зупинки. Краща альтернатива — заробляти складність крок за кроком. Кожен новий рівень має відповідати на питання, на яке попередній рівень не міг відповісти.
Система прийняття рішень
Розділ «Система прийняття рішень»Почніть із вибору навчальної мети, потім оберіть шлях середовища виконання. Якщо мета — зрозуміти завантаження моделі, поведінку токенізатора та механіку пакетів, використовуйте простий експеримент із Transformers або невелике локальне середовище виконання перед введенням нагляду за сервісами. Якщо мета — вивчити обмежений локальний інференс, використовуйте квантовану модель і виміряйте втрату якості відносно задачі. Якщо мета — обслуговування з підтримкою прискорювача, перевірте шлях CUDA перед порівнянням складних функцій середовищ виконання.
Далі класифікуйте обладнання. Машина лише з CPU вказує на менші моделі, квантовані формати, прототипи пошуку та терплячі очікування. Робоча станція з одним GPU вказує на середовища виконання з підтримкою CUDA, обережне бюджетування пам’яті та сильніші локальні експерименти. Сервер домашньої лабораторії вказує на управління сервісами, гігієну сховища, мережеву прив’язку та моніторинг. Машина може відповідати більш ніж одній категорії, але одна категорія має вести перший експеримент, щоб обсяг залишався чітким.
Потім вирішіть, чи буде модель інтерактивною або персистентною. Інтерактивна робота надає перевагу командам, які легко запускати, переривати та змінювати. Персистентна робота надає перевагу явним користувачам, каталогам, логам, політикам перезапуску та адресам прив’язки. Спільний доступ додає очікування щодо безпеки та підтримки. Це рішення має бути прийняте перед встановленням веб-інтерфейсу, оскільки зручний інтерфейс може зробити випадковий експеримент схожим на сервіс до того, як власник прийняв сервісні обов’язки.
Нарешті, запишіть критерії виходу. Шлях локального інференсу готовий до наступного рівня, коли профіль хосту заповнений, артефакт моделі названий, середовище виконання відтворюване, набір промптів виміряний, а режими збоїв відомі. Він не готовий, коли успіх залежить від однієї крихкої сесії shell, одного непоясненого стану драйвера або одного файлу моделі, який ніхто не може ідентифікувати. Система прийняття рішень має підказувати вам, коли продовжувати, коли спрощувати та коли змінювати обладнання.
+------------------------------------+| Почніть із навчальної мети |+---------------+--------------------+ | v+------------------------------------+| Класифікуйте обладнання Linux || лише CPU, GPU або сервер |+---------------+--------------------+ | v+------------------------------------+| Оберіть категорію середовища || виконання: механіка, локальне || або обслуговування |+---------------+--------------------+ | v+------------------------------------+| Виміряйте відтворюваний набір || промптів: затримка, пам'ять, || якість |+---------------+--------------------+ | v+------------------------------------+| Просувайте лише якщо докази || відповідають |+------------------------------------+Чи знали ви?
Розділ «Чи знали ви?»- Чи знали ви, що модель може успішно завантажитися й все одно бути поганим кандидатом для сервісу, оскільки пам’ять KV-кешу зростає з активним контекстом і конкурентними запитами?
- Чи знали ви, що
nvidia-smiпоказує стан драйвера та пристрою, але сумісність із фреймворком усе ще залежить від конкретної збірки середовища виконання, яку ви встановлюєте? - Чи знали ви, що прив’язка локального модельного сервера до
127.0.0.1і прив’язка його до0.0.0.0можуть бути різницею між приватним тестуванням і мережевою доступністю? - Чи знали ви, що робочі процеси Apple Silicon MLX можуть бути плавнішими для локального експериментування, тоді як робочі процеси Linux часто навчають сервісним та інфраструктурним звичкам, які переносяться в середовища Kubernetes 1.35+?
Поширені помилки
Розділ «Поширені помилки»| Помилка | Чому вона трапляється | Як її виправити |
|---|---|---|
| Ставлення до будь-якої Linux-машини як до серверного рівня | Linux відчувається як серверне середовище, навіть коли обладнання — це крихкий десктоп або перероблена робоча станція. | Чесно класифікуйте машину за CPU, пам’яттю, прискорювачем, сховищем, очікуванням безперервної роботи та тим, хто її використовуватиме. |
| Припущення, що GPU є обов’язковим для всього навчання | Слухачі ототожнюють швидку генерацію з корисною освітою та не помічають, чого можуть навчити шляхи лише з CPU. | Використовуйте CPU-орієнтовані експерименти для механіки середовищ виконання, квантованих моделей, прототипів пошуку та основ сервісів, перш ніж гнатися за складністю прискорювача. |
| Оптимізація для кластерної складності занадто рано | Kubernetes і сервісні mesh-мережі можуть здаватися серйознішими, ніж один хост, тому слухачі додають оркестрацію до розуміння навантаження. | Доведіть модель, середовище виконання, поведінку пам’яті та профіль сервісу на одній Linux-машині, перш ніж переходити до патернів Kubernetes 1.35+. |
| Плутанина інфраструктурних амбіцій з інфраструктурною готовністю | Бажання запустити продакшен-стиль обслуговування сприймається як доказ того, що хост достатньо стабільний. | Вимагайте профіль хосту, відтворюваний набір промптів, виміряну затримку, контрольовану мережеву прив’язку та відомі режими збоїв перед наданням доступу. |
| Ігнорування сумісності драйверів і фреймворків CUDA | GPU фізично присутній, тому слухач припускає, що кожне середовище виконання може використовувати його автоматично. | Перевірте видимість пристрою, версію драйвера, інструкції зі встановлення фреймворку та фактичне використання пам’яті GPU під час того самого тесту. |
| Залишення кешів моделей і невдалих завантажень без керування | Порівняння моделей швидко створює великі файли, а очищення здається менш цікавим, ніж наступний експеримент. | Зберігайте артефакти в передбачуваному каталозі, записуйте схвалених кандидатів і видаляйте невдалі варіанти після фіксації нотаток. |
| Відкриття локального сервісу без меж доступу | Веб-інтерфейс, який працює локально, спокушає прив’язатися широко для зручності. | Почніть із прив’язки лише до localhost, задокументуйте, хто може підключатися, і додайте автентифікацію або мережеві контролі перед спільним використанням. |
| Тестування лише одного щасливого промпту | Проста відповідь може приховати слабке форматування, погану доменну поведінку або неприйнятну затримку на довших вхідних даних. | Використовуйте відтворюваний набір промптів із короткими, довгими, доменно-специфічними, відмовними та форматувальними випадками перед просуванням налаштування. |
Тест
Розділ «Тест»Ваш Linux-міні-ПК лише з CPU може запускати невелику квантовану модель, але генерація повільна. Що вам слід зробити перед купівлею обладнання з GPU?
Спочатку вирішіть, якого уроку поточна машина ще може навчити. Хост лише з CPU корисний для вивчення механіки середовищ виконання, квантованих форматів, вимірювання промптів, прототипів пошуку, нагляду за сервісами та гігієни сховища. Виміряйте відтворюваний набір промптів і зафіксуйте формат моделі, використання пам’яті та суб’єктивну затримку перед зміною обладнання. Якщо навчальна мета — поведінка прискорювача, GPU може бути виправданим, але експеримент на CPU все одно має створити базову лінію, яка зробить рішення про оновлення зрозумілішим.
Ваша робоча станція з одним GPU показує, що модель працює, але відповіді набагато повільніші, ніж очікувалося. Що ви перевірите першим?
Перевірте, чи середовище виконання насправді використовує GPU, а не тихо повертається до виконання на центральному процесорі. Використовуйте nvidia-smi під час інференсу, підтвердьте, що встановлення фреймворку відповідає шляху прискорювача, і перевірте, чи вибраний формат моделі підтримується середовищем виконання. Якщо пристрій не використовується, проблема, ймовірно, в драйвері, фреймворку, контейнері або конфігурації середовища виконання, а не в інтелекті моделі. Порівнюйте якість моделі лише після того, як шлях ресурсу відомий.
Ви хочете перетворити інтерактивну команду локальної моделі на сервіс для колег. Які докази мають існувати перед цим?
У вас має бути повний профіль хосту, названий артефакт моделі, відтворюваний набір промптів, спостереження щодо затримки та пам’яті, а також чіткі нотатки про режими збоїв. Сервісна обгортка додає володіння, логи, поведінку перезапуску та мережеву доступність, тому вона має оточувати модель, яка вже поводиться прийнятно в інтерактивних тестах. Також вирішіть, хто може підключатися, до якої адреси прив’язується сервіс і де дані промптів з’являються в логах чи індексах. Без цих доказів сервіс може зробити незрілий експеримент надійним на вигляд.
Образ контейнера включає бібліотеки CUDA, але контейнер не може побачити GPU. Чому це не дивно?
Образ контейнера може запакувати бібліотеки простору користувача, але він усе ще залежить від хостового драйвера та доступу до пристрою. Якщо хостовий драйвер відсутній, несумісний або не відкритий через контейнерне середовище виконання, процес усередині контейнера не може виділити прискорювач. Виправлення полягає в тому, щоб спочатку перевірити видимість хостового пристрою, а потім налаштувати контейнерний інструментарій NVIDIA або інший підтримуваний шлях прискорювача. Не ставтеся до тегу образу CUDA як до доказу того, що Linux-хост готовий до GPU.
Ваш модельний сервіс домашньої лабораторії працює з іншої кімнати після того, як ви прив'язали його до всіх інтерфейсів. Який ризик вам слід негайно оцінити?
Оцініть мережеву доступність і контроль доступу. Прив’язка до всіх інтерфейсів може зробити кінцеву точку моделі досяжною за межами локальної машини, а можливо, й за межами запланованої домашньої чи лабораторної мережі, залежно від маршрутизації та правил брандмауера. Перевірте адресу, яку слухає сервіс, політику брандмауера, межу автентифікації та логи, які можуть містити промпти. Зручний віддалений інтерфейс не слід вважати безпечним, доки ви не знаєте, хто може до нього дістатися і які дані він зберігає.
Ви обираєте між плавнішим локальним шляхом на Mac і грубішим шляхом робочої станції на Linux. Що обрати для вивчення інфраструктури?
Оберіть шлях, який відповідає наступному обмеженню, яке вам потрібно вивчити. Робочі процеси Apple Silicon можуть бути чудовими для швидкого локального експериментування, особливо коли інструментарій з підтримкою MLX підходить для моделі. Linux зазвичай кращий, коли метою є управління сервісами, видимість драйверів, автоматизація, моніторинг і звички, які переносяться в інфраструктуру Kubernetes 1.35+. Жоден шлях не є універсально кращим; правильна відповідь залежить від того, чи є поточним уроком ітерація застосунків чи операційний контроль.
Ваш профіль Linux-хосту каже, що модель завантажилася один раз із невеликим залишком вільної пам'яті. Чи варто просувати її до персистентного сервісу?
Ні, не без додаткових доказів. Одноразове завантаження не враховує довші промпти, зростання KV-кешу, конкурентні запити, логи, роботу операційної системи або поведінку перезапуску. Протестуйте репрезентативний набір промптів, спостерігайте за піковою пам’яттю, зменшіть довжину контексту або розмір моделі за потреби та залиште запас, перш ніж пропонувати кінцеву точку будь-кому іншому. Персистентний сервіс потребує операційного запасу, а не лише успішного запуску.
Практична вправа
Розділ «Практична вправа»Сценарій вправи: створіть практичний профіль для Linux-машини, яку ви вже маєте або до якої маєте доступ. Вам не потрібно встановлювати велику модель для цієї вправи. Мета — створити докази, які б дозволили вам відповідально обрати середовище виконання, пояснити, чи є інференс на CPU або GPU реалістичним, і вирішити, чи має машина залишатися інтерактивною, чи стати персистентним сервісом пізніше.
Завдання 1: Класифікуйте Linux-машину
Розділ «Завдання 1: Класифікуйте Linux-машину»Запустіть команди інвентаризації хосту з цього модуля та напишіть коротку класифікацію. Назвіть клас обладнання, системну пам’ять, місце зберігання файлів моделей і чи присутній прискорювач. Якщо машина має GPU NVIDIA, включіть вивід драйвера та пам’яті з nvidia-smi; якщо ні — явно зазначте, що перший шлях є CPU-орієнтованим.
Орієнтир для розв'язання
Сильна відповідь називає машину як CPU-орієнтовану, робочу станцію з одним GPU або сервер домашньої лабораторії, а потім підкріплює цю класифікацію доказами. Вона не має казати «достатньо хороша для ШІ» без апаратних фактів. Якщо перевірка GPU не вдається, чесно зафіксуйте невдачу, а не припускайте, що CUDA запрацює пізніше. Ця чесність і є сенсом завдання.
Завдання 2: Оберіть початкову категорію середовища виконання
Розділ «Завдання 2: Оберіть початкову категорію середовища виконання»Використовуйте таблицю середовищ виконання, щоб обрати першу категорію середовища виконання, не обов’язково остаточне середовище виконання. Поясніть, чи вашою метою є механіка моделей, обмежений локальний інференс, плавні експерименти з локальним сервісом, обслуговування з підтримкою GPU чи продакшен-стиль контейнерної практики. Прив’яжіть вибір до вашого профілю хосту, а не до популярності середовища виконання.
Орієнтир для розв'язання
CPU-орієнтований слухач може обрати локальне середовище виконання, орієнтоване на GGUF, для вивчення квантованого інференсу. Слухач із GPU-станцією може обрати Transformers, vLLM або text-generation-inference залежно від того, чи хоче він грамотності у фреймворку чи практики обслуговування. Слухач із домашньою лабораторією все ще має довести інтерактивну поведінку перед вибором сервісного інструментарію. Відповідь має пояснювати компроміс, а не просто називати інструмент.
Завдання 3: Складіть чернетку профілю моделі та сервісу
Розділ «Завдання 3: Складіть чернетку профілю моделі та сервісу»Заповніть шаблон профілю в markdown артефактом моделі, який ви плануєте тестувати, форматом моделі або рівнем квантизації, запланованим використанням і тим, чи є налаштування інтерактивним або персистентним. Якщо ви ще не знаєте точну модель, запишіть обмеження, яким модель має задовольняти, замість того щоб вигадувати кандидата.
Орієнтир для розв'язання
Профіль має бути достатньо конкретним, щоб інший слухач міг перезапустити той самий експеримент. Наприклад, він має розрізняти невелику квантовану інструкційну модель і модель із повною точністю для GPU, а також зазначати, чи є кінцева точка локальною, чи призначена для спільного доступу. Невідоме прийнятне, коли воно позначене як невідоме та перетворене на наступні питання.
Завдання 4: Побудуйте відтворюваний набір промптів
Розділ «Завдання 4: Побудуйте відтворюваний набір промптів»Напишіть щонайменше п’ять промптів, які представляють заплановане використання. Включіть один короткий промпт, один довгий промпт, один доменно-специфічний промпт, один випадок невизначеності або відмови та один випадок форматування, якщо ви очікуєте структурованих вихідних даних. Запишіть, як виглядала б прийнятна поведінка для кожного промпту перед запуском моделі.
Орієнтир для розв'язання
Корисний набір промптів тестує навантаження, а не здатність моделі відповідати на trivia-питання. Очікувана поведінка має включати очікування щодо затримки, вимоги до форматування та межі безпеки, де це доречно. Якщо модель призначена для пошукової практики, включіть промпт, який має вимагати пошукового контексту, і промпт, який має бути відхилений, коли контекст відсутній.
Завдання 5: Вирішіть, чи є машина лише інтерактивною або готовою до сервісу
Розділ «Завдання 5: Вирішіть, чи є машина лише інтерактивною або готовою до сервісу»Використовуйте свої докази, щоб вирішити, чи має Linux-машина залишатися інтерактивним навчальним середовищем, чи може відповідально розміщувати персистентний сервіс. Включіть умови зупинки, такі як неприйнятна затримка, тиск на пам’ять, широка мережева доступність, невдала видимість GPU або незрозуміле походження моделі.
Орієнтир для розв'язання
Найсильніші відповіді часто консервативні. Машина може бути чудовою для навчання й усе ще не бути готовою до спільного сервісного використання. Готовність до сервісу означає, що власник може пояснити артефакт моделі, середовище виконання, використання ресурсів, логи, поведінку перезапуску, мережеву прив’язку та шлях ескалації. Якщо цих фактів бракує, залиште налаштування інтерактивним і продовжуйте вимірювати.
Критерії успіху
Розділ «Критерії успіху»- Діагностувати обмеження CPU, GPU та CUDA на Linux-машині для інференсу, використовуючи записаний вивід команд.
- Порівняти шляхи CPU-орієнтованої машини, робочої станції з одним GPU та сервера домашньої лабораторії для вашого конкретного хосту.
- Спроєктувати середовище виконання та профіль моделі, який називає заплановане використання, обмеження артефакту та режим сервісу.
- Реалізувати відтворюваний профіль Linux-хосту з нотатками про обладнання, драйвери, пам’ять, сховище та середовище виконання.
- Оцінити компроміси безпеки, моніторингу та ескалації перед наданням доступу до будь-якого локального модельного сервісу користувачам.
Джерела
Розділ «Джерела»- Transformers Installation
- Using TGI with Nvidia GPUs
- Using MLX at Hugging Face
- NVIDIA CUDA Installation Guide for Linux
- NVIDIA Container Toolkit Install Guide
- PyTorch Get Started Locally
- vLLM Installation
- llama.cpp Build Documentation
- Ollama API Documentation
- Kubernetes Device Plugins
- Kubernetes Schedule GPUs
- systemd Service Documentation
Наступний модуль
Розділ «Наступний модуль»Продовжуйте до Вибір між Ollama, MLX, Transformers та vLLM, щоб перетворити профіль вашого хосту на вибір середовища виконання.