Статья предназначена для тех, кому не нужен мгновенный ответ от ИИ и кто готов ожидать в очереди. Кому нужен мгновенный ответ — выбирайте GPU Хостинг.
Запустить полноценную языковую модель непосредственно внутри слабого железа для генерации статей не получится — для написания текста на естественном языке требуются миллиарды параметров (модели вроде Claude, GPT-4 или Llama 3 8B весят от 4 до 16 гигабайт оперативной памяти).
Это практическая инструкция для тех, кто работает и умеет считать деньги. Не всем нужен ChatGPT, для малого бизнеса и вебмастеров существует множество мелких задач.
Зачем вообще запускать ИИ самостоятельно (Self-hosted)
Возникает закономерный вопрос: зачем устанавливать модель на VPS, если существуют ChatGPT, Claude, Gemini и десятки облачных AI API?
Основное преимущество запуска на собственном оборудовании (офисный персональный компьютер, VPS) — контроль. Большинство серверных AI-задач не требуют написания романа или решения олимпиадных задач. Для VPS с 1 vCPU и 4 GB RAM задача другая: использовать очень маленькие квантизированные модели для фоновой автоматизации.
При использовании локальной модели запрос выглядит примерно так:
пользователь → мой сервер → Ollama → локальная модель Не требуется отправлять каждый запрос внешнему AI-провайдеру. Это дает несколько интересных возможностей:
Можно обрабатывать приватные данные, создавать внутренние сервисы, автоматизировать обработку текста, классифицировать данные или выполнять тысячи небольших AI-задач без оплаты каждого запроса внешнему API. Автономность: Позволяет запускать ИИ локально на устройствах (в смартфонах, кассах, терминалах) без постоянно подключённого мощного облака.
При этом локальная модель не обязательно должна заменять ChatGPT или Claude. На практике гораздо интереснее гибридная архитектура:
- Простая задача → локальная модель
- Сложная задача → облачная модель
Например, локальная модель может выполнять: классификацию текста, определение языка, генерацию тегов, извлечение сущностей, короткие summaries, нормализацию данных, преобразование текста в JSON. А сложные задачи можно по-прежнему отправлять мощной облачной модели. Именно такой сценарий делает небольшие локальные модели особенно интересными.
Практический пример
Большинство серверных AI-задач не требуют написания романа или решения олимпиадных задач.
Представим сайт, который ежедневно должен обработать 500 записей. Для каждой необходимо: определить язык, выбрать категорию, извлечь 3 сущности, создать 5 тегов и вернуть JSON.
Пользователь не ждет ответ в браузере. Если маленькая модель выполняет каждую операцию медленно, но сервер постепенно обрабатывает очередь в течение суток, скорость перестает быть критической.
При этом:
- нет оплаты за каждый API-запрос;
- данные остаются на сервере;
- отсутствует зависимость от лимитов API;
- обработка может работать круглосуточно.
Именно поэтому слабый VPS может оказаться не «плохим компьютером для ChatGPT», а вполне нормальным AI-воркером для фоновых задач.
Что такое Ollama? Что именно делает Ollama? Инфраструктура: Ollama ≠ ИИ-модель
Когда речь заходит о запуске искусственного интеллекта на собственном сервере, очень быстро появляется название Ollama. На первый взгляд может показаться, что Ollama — это еще одна нейросеть вроде ChatGPT, Qwen или Gemma. На самом деле это принципиально разные вещи.
Ollama — не языковая модель. Это программная среда для загрузки, запуска и управления AI-моделями на собственном оборудовании. Если провести аналогию с обычным веб-сервером, то модель — это данные и алгоритм, а Ollama — инфраструктурный слой, который позволяет эту модель удобно запустить и обращаться к ней через API. Ollama может быть установлена на Linux, Windows, macOS.
Что именно делает Ollama
Большая языковая модель сама по себе представляет собой набор весов размером от сотен мегабайт до десятков и даже сотен гигабайт. Просто скачать такой файл недостаточно. Нужен движок вычислений (inference engine) — программное обеспечение, которое загрузит модель в память, выполнит вычисления и вернет результат.
Упрощенно архитектура выглядит так:
Ваш сайт / приложение / скрипт → API → Ollama (движок) → модель Qwen/Gemma → CPU / GPU Поэтому фраза «установить Ollama» и фраза «установить модель Qwen» означают разные операции. Здесь: Ollama — программа, управляющая моделями и их запуском, а Qwen — семейство языковых моделей Alibaba. Можно заменить Qwen другой поддерживаемой моделью, не меняя сам Ollama. После запуска Ollama становится локальным AI-сервисом, к которому может обращаться приложение. Поэтому модель можно подключить к сайту, CMS, внутреннему сервису, Telegram-боту или собственной системе автоматизации.
Как это устроено внутри Ollama
Команда ollama ps показывает только те модели, которые в данный текущий момент загружены в оперативную память (RAM) и обрабатывают запрос.
- Режим ожидания (Idle): Когда запросов нет, Ollama висит в памяти как легкий системный процесс и потребляет минимум ресурсов. Сама модель
qwen3:1.7bвыгружена из RAM на диск. - Поступление запроса: Как только с вашего сайта прилетает API-запрос, Ollama мгновенно подгружает
qwen3:1.7bс диска в оперативку. В этот момент (во время генерации) командаollama psпокажет модель в списке. - Автоматическая выгрузка (Unload): После того как модель сформировала ответ и отдала его по API, Ollama держит её в оперативной памяти еще 5 минут (тайм-аут по умолчанию), а затем выгружает, освобождая память.
Вы можете убедиться в этом лично. Откройте два окна терминала. В первом запустите: watch -n 1 ollama ps. Во втором отправьте cURL-запрос. Вы увидите, как модель появится в списке на время генерации, а затем исчезнет. Это ключевое преимущество для VPS с 1 vCPU / 4 GB RAM: вам не нужно держать тяжелую модель постоянно залоченной в оперативной памяти, расходуя ресурсы.
Команды для контроля сервиса Ollama
- Перезапустить Ollama:
systemctl restart ollama - Посмотреть статус Ollama:
systemctl status ollama - Проверить запущенные в RAM модели:
ollama ps - Посмотреть скачанные модели и их размер:
ollama list - Удалить модель (если захотите 1.5b):
ollama rm qwen2.5:3b
VPS для теста
| Провайдер | CPU | RAM | Диск |
|---|---|---|---|
| Aeza | 1 vCPU, AMD Ryzen 9 5950X @ 3.39 GHz | 4 GB | 10 GB |
| AlexHost | 2 vCPU @ 2.30 GHz, QEMU Virtual CPU | 4 GB | 40 GB |
| AMHG | 2 vCPU, QEMU Virtual CPU 2.5+ GHz | 4 GB | 77 GB |
Все сервера с виртуализацией KVM, Ubuntu 24.04 LTS (x86-64), без GPU (хостинг с GPU) и без настроенного swap. Данные собирал своим bash скриптом ai-vps-check.
| Параметр / что проверяем | Aeza | AlexHost | AMHG |
|---|---|---|---|
| CPU — какой процессор видит VPS | AMD Ryzen 9 5950X | QEMU Virtual CPU 2.5+ | QEMU Virtual CPU 2.5+ |
| vCPU — сколько вычислительных потоков доступно | 1 | 2 | 2 |
| RAM — общий объем оперативной памяти | 3.8 GiB | 3.8 GiB | 3.8 GiB |
| Доступно RAM — сколько памяти доступно для модели на момент тестирования | 3.5 GiB | 2.7 GiB | 2.2 GiB |
| Swap — резерв при нехватке RAM | Нет | Нет | 1.4 GiB |
| AVX — ускоренные CPU-инструкции | Да | Нет | Да |
| AVX2 — современные SIMD-инструкции для CPU inference | Да | Нет | Да |
| FMA — ускорение математических операций | Да | Нет | Да |
| F16C — операции с 16-битными числами | Да | Нет | Да |
| AVX-512 — более широкие SIMD-инструкции | Нет | Нет | Да |
| Свободный диск — место для моделей | 6.1 GB | 30 GB | 59 GB |
| Steal time* — CPU-время, отбираемое гипервизором | 0% | 7.7% | 0% |
* Steal time (st) — процент времени, когда виртуальный CPU готов выполнять работу, но гипервизор не дает ему процессорное время. Устойчивые значения выше 10% — аргумент писать в техподдержку хостинг провайдера.
На что смотреть при выборе VPS
Наш тест показал, что количество vCPU само по себе — плохой критерий выбора VPS для запуска ИИ. Два виртуальных ядра могут оказаться значительно медленнее одного, если за ними стоит более слабый CPU, гипервизор ограничивает доступные процессорные инструкции или физический хост перегружен.
В первую очередь стоит проверить, какой CPU видит виртуальная машина и доступны ли ей AVX, AVX2 и FMA. llama.cpp, который используется Ollama для CPU inference, умеет использовать SIMD-оптимизации современных x86-процессоров. Наличие AVX, AVX2 и FMA поэтому предпочтительно для VPS, на котором LLM будет работать без GPU.
Отдельный повод насторожиться — generic-модель вроде QEMU Virtual CPU, особенно если вместе с ней отсутствуют AVX/AVX2/FMA. Это не означает, что физический процессор сервера обязательно старый: провайдер может намеренно предоставлять виртуальной машине унифицированную модель CPU для совместимости и миграции между физическими нодами. Но для локального ИИ важно не то, какой CPU установлен где-то в сервере, а какие возможности реально доступны вашей виртуальной машине (VPS).
Практически при выборе VPS для self-hosted ИИ я бы расставил приоритеты так: достаточный объем RAM → современный CPU с AVX2/FMA → низкий и стабильный steal time → производительность одного ядра → количество vCPU.
Количество оперативной памяти (RAM) — первый фильтр: модель вместе с рабочими буферами должна помещаться в оперативную память. Если памяти недостаточно, остальные характеристики уже не имеют значения. После этого стоит выбирать наиболее производительный CPU с доступными AVX2/FMA и только затем смотреть на количество виртуальных ядер. Наш тест хорошо показал, что для небольшой LLM один быстрый современный vCPU может оказаться значительно полезнее двух медленных виртуальных ядер
В нашем тесте это различие оказалось огромным. VPS с одним vCPU Ryzen 9 5950X и доступными AVX2/FMA выполнил 10 параллельных запросов Qwen3 1.7B за 2:09. VPS с двумя vCPU, generic QEMU CPU и без AVX/AVX2/FMA потребовалось 15:18 — примерно в 7 раз больше времени. При этом llama-server действительно загружал оба vCPU почти полностью, а во время теста steal time доходил примерно до 25%. Поэтому семикратную разницу нельзя приписать только AVX2: на результат одновременно влияли CPU, доступные инструкции и загрузка физического хоста.
Методика тестирования VPS
Для тестирования 10 параллельных запросов (количество одновременных запросов можно изменить в {1..10}) использовался bash код:
time (
for i in {1..10}; do
curl -s http://127.0.0.1:11434/api/generate \
-d '{
"model":"qwen3:1.7b",
"prompt":"Предложи 3 доменных имени для кофейни. Название латинскими буквами.",
"stream":false,
"think":false
}' > /tmp/ollama-$i.json &
done
wait
) Получишь:
real 0mXX.XXXs user ... sys ...
Нас интересует real.
Для RAM открой второй SSH-сеанс и во время генерации запусти:
watch -n 0.5 'ps -eo pid,comm,%cpu,%mem,rss --sort=-rss | head -10' RSS — реальная физическая RAM процесса, в KiB. Или проще запустить top и следить за загрузкой CPU, памятью и параметром st (steal time).
Единая таблица: Какую модель выбрать под ваш VPS
Вместо сложных расчетов, давайте просто посмотрим, какие модели реально запустить на слабом сервере (1 vCPU, 4 GB RAM).
Секрет кроется в квантизации — сжатии ИИ-модели, чтобы сделать её «легче» (формат Q4_K_M). Точность немного падает, но модель начинает работать на обычном CPU.
Если вы введете команду ollama list, то увидите вес скачанной модели. Например: NAME: qwen3:1.7b | SIZE: 1.4 GB Но помните, что помимо этих 1.4 ГБ на диске, в оперативной памяти модели потребуется дополнительное место под контекст (KV-кэш).
Матрица подбора моделей:
| Модель | Параметры | Вес на диске (Квантизация Q4) | Требования к RAM | Вердикт для VPS (1 vCPU / 4 GB RAM) |
| Qwen 2.5 / 3 (7B-8B) | 7–8 млрд | ~4.7 — 5.2 GB | 8+ GB | ❌ Не хватит памяти. |
| Qwen 3 (4B) | 4 млрд | ~2.5 GB | ~4 GB | ⚠️ На грани. Запустится, но сервер будет сильно тормозить. |
| Qwen 2.5 (3B) | 3 млрд | ~1.9 GB | ~3 GB | ✅ Хороший вариант, если ОС не перегружена. Отличный мультиязычный креатив. |
| Qwen 3 (1.7B) | 1.7 млрд | 1.4 GB | ~2.5 GB | 🔥 Идеально! Лучший баланс скорости и качества для фоновых задач. |
| Gemma 3 (1B) | 1 млрд | <1 GB | ~1.5 GB | ✅ Отличный и очень быстрый кандидат. |
| Qwen 3 (0.6B) | 0.6 млрд | ~523 MB | ~1 GB | ✅ Сверхлегкая. Для простейшей сортировки и тегирования. |
Вывод: На сервере с 4 ГБ RAM ваш предел — квантованные модели до 3 миллиардов параметров (3B). Большие модели (7B, 14B) оставьте для мощных серверов.
Как это развернуть за 10 минут (без Docker) с оптимизацией на 1 vCPU
Инфраструктура на VPS: Ubuntu 24.04 + Ollama + Nginx + SSL + Auth + IPv4/IPv6.
Установка Ollama:
# curl -fsSL https://ollama.com/install.sh | sh Вы увидите предупреждение: WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode. Это нормально.
Скачиваем базовую модель Qwen3 1.7B
ollama pull qwen3:1.7b Проверяем работу модели прямо из консоли:
ollama run qwen3:1.7b "Hi, suggest 3 domain names for a coffee shop"
Thinking... Ollama разворачивает локальный REST API на порту 11434. Вы можете отправлять JSON-запросы напрямую из PHP/JS.
~# lsof -i:11434
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ollama 2406 ollama 3u IPv4 25832 0t0 TCP localhost:11434 (LISTEN) non-thinking режим: отключаем рассуждения
Чтобы модель выдавала ответ мгновенно, нужно отключить цепочку рассуждений (блок мышления). Ollama официально поддерживает отключение thinking через --think=false, например:
ollama run qwen3:1.7b --think=false "Hi, suggest 3 domain names for a coffee shop" Блок мышления полезен для сложных логических задач, но для простых задач на сервере он создает две проблемы:
- Лишний текст в API: Этот блок попадает в итоговый ответ Ollama, что ломает парсинг JSON в PHP-скрипте.
- Лишняя трата ресурсов CPU: Модель потратила 80% времени на генерацию внутреннего монолога (
Thinking...), а не на сам результат. На 1 vCPU это лишние 10–15 секунд ожидания.
Именно non-thinking режим нам нужен для реальных задач вроде классификации, перевода, извлечения данных, генерации короткого текста. Thinking имеет смысл оставлять для более сложной логики или кода.
А нужен ли Swap-файл для ИИ?
Swap не заменяет оперативную память и для нормальной работы локальной LLM не нужен, если модель помещается в оперативную память VPS. Более того, использование swap резко замедлит генерацию ответа, так как диск медленнее RAM.
В нашем тесте Qwen3 1.7B на VPS с 4 GB RAM работала полностью без swap. Swap нужен только как страховка от падения системы (OOM), а не как способ запускать тяжелые модели.
Безопасность Ollama. Как правильно настроить удаленный доступ к вашему ИИ?
Почему прямой доступ к Ollama опасен:
- Трафик идет в открытом виде (HTTP): Если Ollama слушает порт
11434«наружу», все промпты, названия проектов и ответы передаются через интернет без SSL-шифрования. - Слабая встроенная защита: В Ollama нет встроенного механизма авторизации (логинов/паролей). Если вы случайно сбросите UFW, ошибётесь в IP или добавите Docker (который часто обходит UFW через собственные правила iptables), ваш порт 11434 станет полностью открыт для всего интернета.
Если ваши сайты находятся на другом VPS, то обращаться к Ollama напрямую через порт 11434 «из внешнего мира» без защиты нельзя — у Ollama по умолчанию нет встроенной авторизации, и открытый порт превратит ваш VPS в публичный прокси для всех желающих.
Используйте Nginx для доступа к вашему ИИ серверу. Оверхед в 1 миллисекунду полностью незаметен на фоне 1.5 секунд работы самой нейросети, но при этом вы получаете полноценный HTTPS, авторизацию по API-ключу и стабильную обработку ошибок.
Nginx выполнит две задачи:
- Закроет Ollama авторизацией (по секретному API-ключу через заголовок
Bearerили Basic Auth). - Настроит HTTPS (SSL-сертификат), чтобы запросы между вашими VPS шли по шифрованному каналу.
Установка Nginx и утилит для паролей
Для создания этой инструкции я буду использовать домен ai.dieg.net, вы должны будите заменить на свой.
apt update && apt full-upgrade
apt install -y nginx apache2-utils certbot python3-certbot-nginx Создание API-ключа (Basic Auth)
Создаем файл с паролем. Замените МОЙ_СЕКРЕТНЫЙ_КЛЮЧ на ваш надежный API-пароль:
htpasswd -bc /etc/nginx/.ollama_pass api_user МОЙ_СЕКРЕТНЫЙ_КЛЮЧ Настройка Nginx под IPv4 + IPv6
Удаляем дефолтный конфиг Nginx и создаем новый:
rm -f /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/ai.dieg.net Вставьте следующий конфиг (он настроен на прослушивание IPv4 на порту 80 и IPv6 на [::]:80):
server {
listen 80;
listen [::]:80;
server_name ai.dieg.net;
client_max_body_size 2M;
location / {
auth_basic "Ollama Restricted API";
auth_basic_user_file /etc/nginx/.ollama_pass;
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
location ~ /\. {
deny all;
}
} Выпуск бесплатного SSL-сертификата (HTTPS)
Запускаем Certbot для автоматического получения сертификата Let’s Encrypt и настройки редиректа с HTTP на HTTPS:
certbot --nginx -d ai.dieg.net Certbot автоматически отредактирует конфиг Nginx, пропишет SSL-сертификаты и добавит прослушивание портов 443 (IPv4) и [::]:443 (IPv6).
Активируем сайт и проверяем синтаксис:
ln -s /etc/nginx/sites-available/ai.dieg.net /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx Проверка удаленного доступа работы (IPv4 и IPv6)
Теперь вы можете обращаться к https://ai.dieg.net по защищенному протоколу с использованием API-ключа (напомню, что ключ мы задали при помощи Basic Auth). Для первая проверки просто открой в браузере свой сайт, после авторизации, вы должны увидеть текст: Ollama is running.
Проверка через IPv4 (для проверки IPv6 команде ниже замените ключ 4 на 6, то есть curl -6):
curl -4 -u api_user:МОЙ_СЕКРЕТНЫЙ_КЛЮЧ https://ai.dieg.net/api/generate -d '{
"model": "qwen3:1.7b",
"prompt": "Предложи 3 коротких домена для автомойки",
"system": "You are a concise domain name generator. Do not think, output result immediately.",
"stream": false,
"think": false,
"options": {
"num_predict": 100,
"temperature": 0.5
}
}' Если оба cURL-запроса возвращают корректный JSON от Ollama — сервер VPS (Ubuntu 24.04 + Ollama + Nginx + SSL + Auth + IPv4/IPv6) полностью настроен, работает напрямую без CDN, защищен SSL и готов принимать соединения по IPv4 и IPv6.
{"model":"qwen3:1.7b","created_at":"2026-08-31T08:20:01.573479175Z","response":"AutoMoyi, MyAuto, AutoMoy","done":true,"done_reason":"stop","context":[151644,8948,271,2610,525,264,63594,7947,829,13823,13,3155,537,1744,11,2550,1102,7069,13,151645,198,151644,872,198,16854,42975,81841,1802,220,18,66869,13039,16748,10474,126711,50312,19849,125347,16339,16748,608,2152,5854,766,151645,198,151644,77091,198,151667,271,151668,271,13253,44,2253,72,11,3017,13253,11,8979,44,2253],"total_duration":1546735819,"load_duration":1434124,"prompt_eval_count":53,"prompt_eval_duration":140739000,"eval_count":12,"eval_duration":1396932000} Результат для моего сервера VPS идеальный!
- Скорость:
total_durationсоставил всего 1.5 секунды (1546735819нс) — для сервера 1 vCPU это отличный показатель. - Чистота ответа: Модель выдала ровно то, что просили в
"response", полностью пропустив блок мышления. - Ресурсы: Было сгенерировано 12 токенов (
eval_count: 12), сервер мгновенно освободил процессоры.
Главный секрет: Промпт-инжиниринг
Модель не нужно обучать, но компактной модели нужны жесткие инструкции (System Prompt), чтобы она отдавала чистый JSON и не фантазировала:
{
"model": "qwen2.5:7b",
"prompt": "Ты — эксперт по брендингу и подбору доменных имен. Пользователь передает тему: Тренажерный зал Стимул, язык сайта: русский. Предложи 5 креативных вариантов доменов. Использовать можно как классические зоны (.com, .net), так и специализированные (например: .fitness, .club, .gym). Постарайся обыграть название. Верни результат строго в формате JSON.",
"stream": false
} Чтобы компактная модель (3B) не «фантазировала» и давала четкие варианты доменов, промпт должен быть максимально структурированным:
Ты — генератор доменных имен. Твоя задача — предложить 5 коротких и запоминающихся вариантов доменов для проекта.
Вводные данные: Тема: {ввод}, Язык: {язык}
Правила:
1. Используй как классические зоны (.com, .net), так и тематические (.fitness, .online, .store, .tech, .shop).
2. Применяй доменный хакинг (например, word.press, stimul.fitness), если это уместно.
3. Не пиши вступительных фраз. Выводи только готовый список доменов с кратким пояснением идеологии названия. Автоматическая защита от падений
Главный риск при работе моделей на 4 ГБ RAM — аварийное завершение процесса штатным OOM-Killer’ом Linux при нехватке памяти. Для гарантии бесперебойной работы не нужны сторонние утилиты вроде Monit. Достаточно настроить нативный автоперезапуск средствами самого Systemd, который восстановит сервис за 3 секунды.
Для настройки автоперезапуска Ollama, откройте файл конфигурации службы:
sudo systemctl edit ollama Добавьте в блок [Service] инструкции перезапуска:
[Service]
Restart=always
RestartSec=3 Примените настройки:
systemctl daemon-reload
systemctl restart ollama
systemctl cat ollama # чтобы убедиться,что Systemd реально подхватил переопределение Теперь при любом сбое или падении процесса из-за дефицита оперативной памяти Systemd автоматически переподнимет Ollama без вашего участия.
Где искать «Узкое место»
При тестах своих промтов обратите внимание на 3 параметра:
| Метрика | Что означает узкое место | Как решить |
| RAM (Оперативная память) | Если модель не влезает в память, сервер начинает активно использовать Swap. Скорость падает до 0.1 токена/сек. | Взять модель легче. Переключиться с qwen2.5:3b на более легкую qwen2.5:1.5b. |
| CPU Time (Загрузка 100%) | Это нормально для вычислений без GPU. Главное — время отдачи (Time to First Token). | Уменьшить размер num_ctx (контекста) в запросе Ollama до 1024 или 2048 токенов. |
| OOM-Killer | Записи вида Out of memory: Kill process в dmesg. | Обязательно проверить наличие и активность Swap-файла (2 ГБ). |
FAQ и термины
Что такое токен? Токен равен 1 английскому слову?
Токен в ИИ — это не одно слово. Это утверждение — распространенное заблуждение.
Токен — это минимальный «кирпичик» текста (кусок данных), с которым работает нейросеть. Он далеко не всегда равен одному слову:
- Короткое английское слово (например, cat, home, run) действительно чаще всего считается как 1 токен.
- Длинные или сложные слова модель разбирает по частям: например, слово unbelievable разбивается на 3 токена (un-believ-able).
- Русские слова, а также знаки препинания, эмодзи и спецсимволы часто делятся на несколько токенов. Одно русское слово средней длины обычно «весит» от 2 до 4 токенов.
Простыми словами: 1 токен — это примерно 3–4 символа (буквы или пробела) для английского языка и 1–2 символа для русского.
Inference (инференс) в контексте нейросетей?
Inference (инференс) в контексте нейросетей — это процесс, когда уже обученная модель получает новые данные и выдает результат.
Что такое Квантизация (Quantization) ?
Квантизация (Quantization) в ИИ — это сжатие ИИ-модели, чтобы сделать нейросеть «легче», быстрее и дешевле в использовании за счёт небольшого снижения точности её вычислений. Пример: Модель сжимают в 2–4 раза, благодаря чему она бесплатно работает на обычном ноутбуке вместо дорогого сервера. Для простых задач вроде создания УТП или постов качество остаётся прежним, но для сложной логики и высшей математики такое сжатие не подходит — нейросеть начинает «тупить».
Можно ли запустить Ollama на VPS с 1 CPU и 4 GB RAM?
Да, но здесь важно разделять два вопроса:
- Запустить Ollama — легко.
- Запустить на нем подходящую модель с приемлемой скоростью — значительно сложнее.
Сам Ollama не является основной проблемой. Главный потребитель ресурсов — загруженная языковая модель, ее контекст и вычисления inference. Для VPS: 1 vCPU, 4 GB RAM, без GPU следует сразу забыть о больших моделях 7B, 14B, 30B и тем более 70B. Они предназначены для совершенно другого класса оборудования. Но современный рынок моделей уже не ограничивается такими размерами. Например, в Ollama доступны Qwen3 размером 0.6B и 1.7B, а Gemma 3 существует даже в вариантах 270M и 1B. И это существенно меняет ситуацию для маломощных серверов.
Сколько RAM реально нужно для запуска LLM?
Памяти нужно всегда больше размера модели: помимо ОС и Ollama, основную часть RAM забирает KV-кэш (сохранение контекста и истории) — чем длиннее контекст (32K/128K), тем больше гигабайт он требовательно забирает при инференсе, поэтому на 4 GB RAM контекст необходимо жестко зажимать (до 2K–4K). При правильно подобранном весе модели главным узким местом станет 1 vCPU, так как CPU не умеет параллелить вычисления как GPU, из-за чего сервер годится только как медленный фоновый AI-воркер с генерацией по несколько десятков секунд, но не для интерактивного чата.
- Механика KV-кэша: Во время генерации каждого нового токена модель сохраняет Key-Value тензоры предыдущих токенов в RAM, чтобы не пересчитывать весь контекст заново. Размер KV-кэша растет linearly от длины контекста и напрямую зависит от количества слоев и голов внимания (attention heads) модели.
- Безопасный лимит: Для VPS с 4 GB RAM и моделью ~2 GB целесообразно ставить параметр
num_ctxв Ollama не выше 2048–4096, иначе первый же длинный промпт приведет к срабатыванию OOM Killer и падению процесса. - Вычислительный затор: 1 vCPU упирается в пропускную способность выполнения операций с плавающей точкой (FLOPS), превращая генерацию в асинхронную очередь задач вместо «живого» диалога.
Сколько текста на самом деле помещается в контекст 32K (32 000 токенов) для английского, португальского, русского и украинского языков?
Размер контекста измеряется в токенах, а не в словах или буквах. Из-за особенностей токенизаторов и разницы в алфавитах реальный объем текста существенно отличается в зависимости от языка:
- Английский язык: ~24 000 слов (около 50 страниц А4). Одно слово обычно равен 1 токену. Это базовый язык для большинства LLM, поэтому его слова зафиксированы в словарях токенизаторов практически целиком.
- Португальский язык: ~20 000–22 000 слов (около 40–45 страниц А4). Одно слово забирает в среднем 1.4–1.6 токена. Латиница дает португальскому серьезное преимущество перед кириллицей, но спецсимволы (
ã,ç,é), диакритика и длинные флексии заставляют токенизатор резать слова чуть сильнее, чем в английском. - Русский язык: ~12 000–16 000 слов (около 25–30 страниц А4). Кириллица кодируется в UTF-8 несколькими байтами, а слова разбиваются на суффиксы и окончания (происходит деление на слова на подслова (subwords)), поэтому 1 слово забирает в среднем 2.0–2.5 токена.
- Украинский язык: ~12 000–15 000 слов (около 25–30 страниц А4). Одно слово забирает в среднем 2.0–2.6 токена. По эффективности токенизации украинский практически идентичен русскому, так как использует кириллицу. В свежих моделях с большим словарем (Llama 3, Qwen 2.5) уникальные буквы (
є,ї,і,ґ) обработаны штатно, поэтому перерасход токенов по сравнению с русским минимален (3–5%) и вызван лишь меньшей долей украинского текста в исходных обучающих датасетах.
Почему нельзя использовать полный контекст 32K на VPS с 4 GB RAM? Загрузка 25–50 страниц текста в диалог требует колоссального объема оперативной памяти под KV-кэш:
- Дефицит RAM: KV-кэш для 32K контекста забирает от 2 до 4 GB RAM сверх веса самой модели, что гарантированно вызывает Out-Of-Memory (падение Ollama).
- Удар по CPU: На 1 vCPU обработка (prefill) такого огромного промпта займет десятки минут, сделав работу сервера невозможной.
Какой контекст безопасно ставить на слабом сервере? Оптимальный лимит для VPS с 4 GB RAM — 2048–4096 токенов (num_ctx). Это вмещает 3–6 страниц текста, чего полностью достаточно для большинства фоновых задач AI-воркера, но защищает систему от падения.
Ollama — это Docker для AI-моделей?
Такое сравнение иногда встречается, и оно помогает понять общую идею, хотя технически оно неточно. Docker стандартизирует запуск приложений. Ollama пытается сделать похожую вещь для ИИ моделей:
ollama pull ...
ollama run ...
ollama list
ollama rm ... Пользователю не приходится каждый раз разбираться, где взять веса, каким движком их запускать и какие параметры передавать.
Поэтому более точное определение звучит примерно так:
Ollama — менеджер моделей, inference runtime и API-сервер для локального запуска AI.
LocalAI альтернатива Ollama?
LocalAI позиционируется как локальная AI-инфраструктура с API, совместимыми в том числе с OpenAI и Anthropic. Проект поддерживает различные backend’ы и предназначен не только для LLM, но и для других AI-задач. К 2026 году LocalAI превратился в достаточно большую платформу: разработчики сообщают о десятках поддерживаемых backend’ов и большой библиотеке моделей.
Это одновременно преимущество и недостаток.
Если задача:
«Мне нужен простой локальный LLM API»,
Ollama обычно проще.
Если задача:
«Я строю универсальный self-hosted AI backend с различными типами моделей и совместимыми API»,
LocalAI становится значительно интереснее.
А можно вообще не использовать Ollama?
Да, Ollama не обязательна. Вы можете напрямую использовать llama.cpp (native C++ движок) или готовые специализированные инференс-серверы: vLLM, TGI (Text Generation Inference) и LocalAI. Для максимальной производительности и низких задержек: Direct llama.cpp, vLLM или TGI работают быстрее и эффективнее расходуют VRAM. Ollama — это лишь удобная обёртка для быстрого запуска моделей на компьютере.
Что делает Ollama Cloud? В каких случаях использовать? Сколько стоит?
Обычно для работы Ollama нужен мощный ПК или сервер. Если попытаться запустить огромную AI-модель (например, на 70B+ параметров) на обычном ноутбуке, она просто не поместится в память и не запустится.
Ollama Cloud стирает эту грань. Ваше приложение отправляет запрос в локальную программу Ollama на компьютере. А Ollama сама решает:
- Если модель маленькая — запускает её бесплатно на вашем ПК.
- Если модель огромная — перенаправляет запрос в своё облако, где работают мощные серверы. Для автоматизации переключения нужно использовать сторонние продукты, например LiteLLM, потому что функционала, при котором Ollama сама «на лету» оценивала бы вес модели, проверяла объём вашей VRAM и автоматически решала отправлять запрос локально или в облако, в Ollama из коробки нет.
Сколько стоит Ollama Cloud?
- Local (на своём ПК): 100% бесплатно.
- Cloud Free: БЕСПЛАТНО, но с ограничениями по лимитам и скорости (для базовых тестов).
- Cloud Pro / Max: ПЛАТНО (от $20/мес), если вам нужны постоянные мощные облачные вычисления и снятие лимитов
Как разрешить Ollama принимать внешние хосты (CORS)
По умолчанию Ollama принимает запросы только от localhost. Чтобы разрешить проксирование с любых доменов через Nginx, необходимо добавить переменную окружения OLLAMA_ORIGINS=»*». Откройте редактор конфигурации службы Ollama:
sudo systemctl edit ollama Вставьте в открывшийся файл следующие строки:
[Service]
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_HOST=127.0.0.1:11434" Перезапустите сервис:
systemctl daemon-reload
systemctl restart ollama - Ollama VPS. Можно ли запустить ИИ на слабом VPS без GPU и нужно ли и под какие задачи? - 16.09.2026
- Хостинг WordPress и Woocommerce - 29.08.2026
- 4 лучших антидетект браузера для работы - 19.08.2026



