|
| 1 | +# Деплой Trinity на Fly.io |
| 2 | + |
| 3 | +## φ² + 1/φ² = 3 = TRINITY |
| 4 | + |
| 5 | +Инструкция по деплою Trinity LLM inference на Fly.io с максимальными ресурсами (16 CPU cores). |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Предварительные требования |
| 10 | + |
| 11 | +1. Аккаунт на [Fly.io](https://fly.io) |
| 12 | +2. Установленный `flyctl` CLI |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## Шаг 1: Установка flyctl |
| 17 | + |
| 18 | +```bash |
| 19 | +# Linux/macOS |
| 20 | +curl -L https://fly.io/install.sh | sh |
| 21 | + |
| 22 | +# Добавить в PATH |
| 23 | +export FLYCTL_INSTALL="$HOME/.fly" |
| 24 | +export PATH="$FLYCTL_INSTALL/bin:$PATH" |
| 25 | + |
| 26 | +# Проверить установку |
| 27 | +flyctl version |
| 28 | +``` |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## Шаг 2: Авторизация |
| 33 | + |
| 34 | +```bash |
| 35 | +flyctl auth login |
| 36 | +``` |
| 37 | + |
| 38 | +Откроется браузер для входа в аккаунт Fly.io. |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +## Шаг 3: Клонирование репозитория |
| 43 | + |
| 44 | +```bash |
| 45 | +git clone https://github.com/gHashTag/trinity.git |
| 46 | +cd trinity |
| 47 | +``` |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## Шаг 4: Создание приложения |
| 52 | + |
| 53 | +```bash |
| 54 | +flyctl apps create trinity-inference |
| 55 | +``` |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## Шаг 5: Выбор размера машины |
| 60 | + |
| 61 | +Доступные размеры в `fly.toml`: |
| 62 | + |
| 63 | +| Size | CPU | RAM | Цена/час | |
| 64 | +|------|-----|-----|----------| |
| 65 | +| shared-cpu-1x | 1 shared | 256MB-2GB | ~$0.0035 | |
| 66 | +| shared-cpu-2x | 2 shared | 512MB-4GB | ~$0.007 | |
| 67 | +| shared-cpu-4x | 4 shared | 1GB-8GB | ~$0.014 | |
| 68 | +| shared-cpu-8x | 8 shared | 2GB-16GB | ~$0.028 | |
| 69 | +| performance-1x | 1 dedicated | 2GB-8GB | ~$0.057 | |
| 70 | +| performance-2x | 2 dedicated | 4GB-16GB | ~$0.114 | |
| 71 | +| performance-4x | 4 dedicated | 8GB-32GB | ~$0.228 | |
| 72 | +| performance-8x | 8 dedicated | 16GB-64GB | ~$0.456 | |
| 73 | +| **performance-16x** | **16 dedicated** | **32GB-128GB** | ~$0.912 | |
| 74 | + |
| 75 | +Текущая конфигурация в `fly.toml`: |
| 76 | + |
| 77 | +```toml |
| 78 | +[[vm]] |
| 79 | + size = "performance-16x" |
| 80 | + memory = "32gb" |
| 81 | + cpus = 16 |
| 82 | +``` |
| 83 | + |
| 84 | +Для изменения размера отредактируйте `fly.toml`. |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## Шаг 6: Деплой |
| 89 | + |
| 90 | +```bash |
| 91 | +flyctl deploy |
| 92 | +``` |
| 93 | + |
| 94 | +Это: |
| 95 | +1. Соберёт Docker образ |
| 96 | +2. Загрузит на Fly.io |
| 97 | +3. Запустит машину с 16 CPU cores |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +## Шаг 7: Проверка статуса |
| 102 | + |
| 103 | +```bash |
| 104 | +# Статус приложения |
| 105 | +flyctl status |
| 106 | + |
| 107 | +# Логи |
| 108 | +flyctl logs |
| 109 | + |
| 110 | +# SSH в машину |
| 111 | +flyctl ssh console |
| 112 | +``` |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +## Шаг 8: Запуск benchmark |
| 117 | + |
| 118 | +После деплоя, подключитесь к машине и запустите: |
| 119 | + |
| 120 | +```bash |
| 121 | +flyctl ssh console |
| 122 | + |
| 123 | +# Внутри машины |
| 124 | +cd /app |
| 125 | +./tri_inference /app/models/smollm2-360m.tri |
| 126 | +``` |
| 127 | + |
| 128 | +--- |
| 129 | + |
| 130 | +## Ожидаемая производительность |
| 131 | + |
| 132 | +| Машина | Cores | Скорость | Speedup | |
| 133 | +|--------|-------|----------|---------| |
| 134 | +| Gitpod (текущая) | 2 | ~8 tok/s | 1x | |
| 135 | +| performance-4x | 4 | ~15 tok/s | 2x | |
| 136 | +| performance-8x | 8 | ~28 tok/s | 3.5x | |
| 137 | +| **performance-16x** | **16** | **~50 tok/s** | **6x** | |
| 138 | + |
| 139 | +--- |
| 140 | + |
| 141 | +## Остановка машины (экономия денег) |
| 142 | + |
| 143 | +```bash |
| 144 | +# Остановить машину |
| 145 | +flyctl machine stop |
| 146 | + |
| 147 | +# Удалить приложение |
| 148 | +flyctl apps destroy trinity-inference |
| 149 | +``` |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## Альтернативный запуск (одноразовая машина) |
| 154 | + |
| 155 | +Для быстрого теста без постоянного деплоя: |
| 156 | + |
| 157 | +```bash |
| 158 | +flyctl machine run \ |
| 159 | + --app trinity-inference \ |
| 160 | + --vm-size performance-16x \ |
| 161 | + --vm-memory 32768 \ |
| 162 | + --entrypoint "/app/tri_inference /app/models/smollm2-360m.tri" \ |
| 163 | + registry.fly.io/trinity-inference:latest |
| 164 | +``` |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +## Troubleshooting |
| 169 | + |
| 170 | +### Ошибка "No access token" |
| 171 | +```bash |
| 172 | +flyctl auth login |
| 173 | +``` |
| 174 | + |
| 175 | +### Ошибка "App not found" |
| 176 | +```bash |
| 177 | +flyctl apps create trinity-inference |
| 178 | +``` |
| 179 | + |
| 180 | +### Ошибка "Out of memory" |
| 181 | +Уменьшите размер модели или увеличьте RAM в `fly.toml`. |
| 182 | + |
| 183 | +### Медленная сборка |
| 184 | +Используйте remote builder: |
| 185 | +```bash |
| 186 | +flyctl deploy --remote-only |
| 187 | +``` |
| 188 | + |
| 189 | +--- |
| 190 | + |
| 191 | +## Файлы конфигурации |
| 192 | + |
| 193 | +- `fly.toml` - конфигурация Fly.io |
| 194 | +- `Dockerfile.flyio` - Docker образ для деплоя |
| 195 | +- `benchmark_flyio.sh` - скрипт оценки производительности |
| 196 | + |
| 197 | +--- |
| 198 | + |
| 199 | +**KOSCHEI IS IMMORTAL | GOLDEN CHAIN IS CLOSED | φ² + 1/φ² = 3** |
0 commit comments