Пошаговое руководство: выбор железа, квантование AWQ/GGUF, vLLM-сервер, нагрузочное тестирование, мониторинг и сравнение стоимости self-hosted vs API.
Qwen 3.8 Max — крупнейшая open-source модель с лицензией Apache 2.0. Это значит: деплой на своём железе, файнтюнинг на своих данных, коммерческое использование без отчислений. Ни одна проприетарная модель такой свободы не даёт.
💰 Быстрый расчёт окупаемости:
API Alibaba Cloud: $1.50/1M output токенов. При 10M токенов/день = $450/мес. Аренда 4×H100 на Vast.ai: ~$2,400/мес (обслуживает 50M+ токенов/день). Порог окупаемости self-hosted: >15M токенов/день.
| Конфигурация | VRAM | Токенов/сек | Качество | $/мес* |
|---|---|---|---|---|
| BF16 (8×H100) | 640 GB | 45-55 | 100% | $4,800 |
| AWQ 4-bit (4×H100) | 320 GB | 25-35 | 91% | $2,400 |
| GGUF Q4_K_M (4×A100) | 320 GB | 20-30 | 90% | $2,200 |
| GGUF IQ3_M (3×H100) | 240 GB | 18-25 | 87% | $1,800 |
* Аренда на Vast.ai / RunPod, цены на июль 2026.
Шаг 1: Скачиваем модель
pip install huggingface_hub # AWQ 4-bit (рекомендуемая для 4×H100) huggingface-cli download Qwen/Qwen3.8-Max-AWQ \ --local-dir /models/qwen-3.8-max-awq # GGUF (для llama.cpp / Ollama): huggingface-cli download Qwen/Qwen3.8-Max-GGUF \ --include "qwen3.8-max-Q4_K_M.gguf" \ --local-dir /models/qwen-3.8-max-gguf
Шаг 2: Запускаем vLLM
python -m vllm.entrypoints.openai.api_server \ --model /models/qwen-3.8-max-awq \ --quantization awq \ --tensor-parallel-size 4 \ --max-model-len 262144 \ --gpu-memory-utilization 0.92 \ --enable-prefix-caching \ --max-num-seqs 64 \ --enable-metrics \ --port 8000
Шаг 3: Проверка
curl http://localhost:8000/v1/models
# → {"data": [{"id": "qwen-3.8-max-awq", ...}]}
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen-3.8-max-awq","messages":[{"role":"user","content":"Привет!"}],"max_tokens":100}'
| Схема | VRAM (4×H100) | Perplexity ↑ | Движок |
|---|---|---|---|
| AWQ 4-bit | 290 GB | +0.8% | vLLM, TGI |
| GPTQ 4-bit | 295 GB | +1.0% | vLLM, TGI |
| GGUF Q4_K_M | 300 GB | +1.1% | llama.cpp |
Рекомендация для production: AWQ 4-bit. Лучшее соотношение качество/VRAM, поддержка continuous batching в vLLM, стабильная latency под нагрузкой. GGUF — для локального использования (Ollama).
pip install locust
# locustfile.py
from locust import HttpUser, task, between
class QwenUser(HttpUser):
wait_time = between(0.5, 2.0)
@task
def chat(self):
self.client.post("/v1/chat/completions", json={
"model": "qwen-3.8-max-awq",
"messages": [{"role":"user","content":"Напиши quicksort на Python"}],
"max_tokens": 256
})
# Запуск: locust -f locustfile.py --host http://localhost:8000
# → http://localhost:8089 → 50 users, ramp-up 10/sec
# Ожидаемые результаты (AWQ 4-bit, 4×H100):
# - P50 latency: 800ms
# - P95 latency: 1800ms
# - Throughput: 45 tok/s per user
# - TTFT: 120ms
# Prometheus-метрики vLLM (--enable-metrics)
# docker-compose.yml
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
ports: ["3000:3000"]
# Ключевые алерты:
# - vllm:gpu_cache_usage_perc > 0.95 → GPU memory pressure
# - vllm:request_latency_p95 > 5000ms → degradation
# - vllm:num_requests_waiting > 100 → queue overflow risk
| Критерий | Self-hosted | API (Alibaba) |
|---|---|---|
| Контроль данных | Полный | Данные в облаке |
| Файнтюнинг | Да, на своих данных | Ограничен |
| Масштабирование | Ручное (GPU) | Авто |
| Цена < 10M tok/день | $2,400+/мес | $150/мес |
| Цена > 50M tok/день | Дешевле | $750+/мес × N |
| DevOps нагрузка | Высокая | Нулевая |