Ключевые моменты
- Локальный запуск требует достаточного объёма ОЗУ или VRAM для квантованного файла и контекстного кэша.
- Ollama — самый быстрый старт; llama.cpp даёт больше контроля над квантованием и флагами.
- Оба инструмента предоставляют сервер в стиле OpenAI, поэтому один и тот же клиентский код может указывать как на локальный, так и на размещённый сервер.
- Размещённый эндпоинт стоит $0,15 за 1 млн входных токенов и $0,50 за 1 млн выходных токенов, настройка занимает несколько минут.
Сначала решите: какое у вас оборудование?
Память решает всё. Языковая модель — это очень большой набор чисел, и весь этот набор должен находиться в быстрой памяти во время генерации. Квантование уменьшает эти числа. 4-битная квантованная модель занимает около половины байта на параметр, поэтому модель с 8 миллиардами параметров занимает около 5 ГБ, а с 70 миллиардами — около 40 ГБ. Считайте эти цифры примерными, так как точный размер зависит от формата квантования.
Помимо весов, вам нужно место для контекстного кэша. Оно растёт с длиной промпта, поэтому длинная история ролевой игры или большой документ требуют больше памяти, чем короткий вопрос. Рассчитуйте несколько дополнительных гигабайт при умеренном контексте, больше — если вы работаете с длинными промптами.
- Ноутбук с 8 ГБ без GPU: только небольшие модели, медленный вывод.
- Mac на Apple Silicon с 16–32 ГБ: модели среднего размера работают хорошо, так как CPU и GPU делят память.
- Одна потребительская видеокарта с 12–24 ГБ VRAM: модели среднего размера с хорошей скоростью.
- Больше: несколько GPU или арендованный сервер.
Способ 1: Ollama за несколько команд
Ollama — самый короткий путь. Он скачивает квантованную модель, запускает фоновый сервер и предоставляет промпт для чата. Установите его с официального сайта для вашей операционной системы, затем проверьте, какие теги Dolphin в настоящее время указаны в библиотеке моделей Ollama, так как названия и размеры меняются между релизами.
# replace <tag> with a Dolphin tag from the Ollama library
ollama pull <tag>
ollama run <tag>
Первая команда скачивает файл, что может занять время при медленном соединении. Вторая открывает интерактивный чат в терминале. Ollama также предоставляет HTTP API на вашем компьютере, включая маршрут в стиле OpenAI под /v1, чтобы другие программы могли его использовать.
Если генерация очень медленная, модель, вероятно, не поместилась в VRAM и часть её работает на CPU. Выберите меньший тег или квантование с меньшей разрядностью.
Способ 2: llama.cpp для большего контроля
llama.cpp — это движок на C++, на котором построено множество других инструментов. Вы скачиваете файл GGUF модели, затем запускаете её сервер. Это требует больше шагов, чем Ollama, но позволяет задать длину контекста, количество слоёв, размещаемых на GPU, и желаемое квантование.
# after building llama.cpp and downloading a GGUF file
llama-server -m ./model.gguf -c 8192 -ngl 99 --port 8080
Здесь -c задаёт длину контекста, -ngl задаёт, сколько слоёв идёт на GPU, а --port выбирает порт. Проверьте README проекта для флагов в вашей версии, так как они меняются. Больший -c использует больше памяти, поэтому увеличивайте его только при необходимости.
Для графического интерфейса фронтенды, такие как Open WebUI, могут обращаться к обоим серверам. В нашей заметке о эндпоинтах API Open WebUI показано, как добавить пользовательский эндпоинт.
Обращение к локальному серверу из кода
Оба инструмента поддерживают формат чата OpenAI, поэтому вы пишете клиент один раз и переключаете целевой сервер с помощью двух настроек. Этот скрипт держит оба целевых сервера рядом. Локальный использует порт, который Ollama использует по умолчанию; измените его, если вы запустили llama.cpp на 8080.
from openai import OpenAI
TARGETS = {
"local": {"base_url": "http://localhost:11434/v1", "key": "not-needed", "model": "your-local-tag"},
"hosted": {"base_url": "https://api.dolphinllm.com/v1", "key": "YOUR_KEY", "model": "uncensored"},
}
t = TARGETS["hosted"]
client = OpenAI(base_url=t["base_url"], api_key=t["key"])
resp = client.chat.completions.create(
model=t["model"],
messages=[{"role": "user", "content": "Summarize what a GGUF file is."}],
)
print(resp.choices[0].message.content)
Локальные серверы обычно игнорируют ключ, но SDK требует непустую строку. Имя модели для локального сервера — это любой тег или псевдоним, который вы загрузили, тогда как идентификатор хостинговой модели всегда uncensored.
Способ 3: пропустите настройку и используйте размещённый эндпоинт
Если расчёты по железу не радуют, или вам нужно одинаковое поведение на каждом компьютере, размещённый эндпоинт проще. Этот сервис предоставляет одну модель с открытыми весами, запущенную независимым провайдером и настроенную на ответы без отказов по контенту для законного использования взрослыми. Это не официальный API какого-либо вендора моделей, и он не позволяет выбирать другие модели. Вы получаете стабильный URL, ключ и оплату за токены.
Шаги короткие. Зарегистрируйтесь через Google или по email и паролю, откройте страницу API-ключа и получите $0,50 пробного баланса в один клик. Карта не нужна, срок действия — 7 дней, лимит — один на человека. Затем запустите приведённый выше скрипт Python с размещённым эндпоинтом в качестве цели. Если предпочитаете curl:
curl https://api.dolphinllm.com/v1/chat/completions -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":false}'
Контекстное окно составляет 100 000 токенов, что больше, чем большинство ноутбуков могут удобно удержать в кэше. Промпты не используются для обучения.
Сравнение стоимости и усилий
Локально кажется бесплатным, но это не так. Вы платите за оборудование, электричество и своё время. Хостинг стоит денег за запрос, но суммы небольшие. При $0,15 за 1 млн входных токенов и $0,50 за 1 млн выходных токенов один ход чата с 3000 входными и 700 выходными токенами стоит:
- Вход: 3 000 x $0,15 / 1 000 000 = $0,00045
- Вывод: 700 x $0,50 / 1 000 000 = $0,00035
- Итого: $0,0008 за ход, то есть $0,80 за 1000 ходов
Даже активный пользователь, отправляющий 5000 таких ходов в месяц, потратит около $4. Видеокарта, стоящая сотни долларов, потребует лет использования, чтобы окупиться при таком объёме. Сравнение меняется, когда у вас постоянный высокий объём, нужна конкретная дообученная модель или нельзя отправлять данные за пределы машины.
Полные детали цен, включая бонусы за пополнение +5%, +10% и +15%, находятся на странице цен, а документация охватывает ограничения и параметры.
Простое правило выбора
Запускайте локально, если хотите экспериментировать с множеством дообученных моделей, работать офлайн или хранить каждый промпт на своём диске. Используйте размещённый эндпоинт, если вы создаёте что-то, чем будут пользоваться другие, если ваше оборудование скромное или если вам нужен длинный контекст на 100 000 токенов без управления памятью. Многие разработчики делают и то, и другое: локальную модель для частных экспериментов и размещённый эндпоинт для всего, что должно работать постоянно. Поскольку код клиента одинаковый, переключение занимает одну строку.

