Модуль 9. AI-стек Yandex Cloud: карта сервисов и деньги
Цель модуля: получить карту AI-стека Yandex Cloud и не потеряться в ней: какой сервис за что отвечает в задаче дообучения, как устроены доступы (folder_id, сервисный аккаунт, API-ключ, роли), где живут квоты GPU-конфигураций и как не сжечь грант забытым ноутбуком. После модуля у вас есть рабочий каталог, сервисный аккаунт с ключом и проверенный curl-ом вызов базовой модели.
Перед началом: модули 4–8 — вы знаете, что тюните, на каких данных и как будете это оценивать. Инструменты: консоль Yandex Cloud, curl, python3 (для практики модулей 10–11). Нужен аккаунт Yandex Cloud со стартовым грантом. Трудоёмкость: ~2 ч (разбор 50 мин · практика 70 мин).
🔥 «Дообучим в облаке» — в каком сервисе?
План тюнинга готов, грант получен. Разработчик открывает консоль Yandex Cloud и видит каталог из сотни сервисов. Действует по привычке бэкендера: поднимает виртуальную машину с GPU, ставит на неё Jupyter, неделю колдует с драйверами — и тратит половину гранта ещё до первого обучения. А нужна была ему была связка из двух вызовов SDK в AI Studio.
Вторая классика — обратная: команду предупредили «GPU дорого», она об этом
помнит ровно до первого trainer.train(). Ноутбук с A100 остался работать
на выходные; в понедельник грант закончился. Обучение шло 40 минут.
Обе истории — про отсутствие карты. Этот модуль даёт её: какие сервисы участвуют, кто за что отвечает, где деньги утекают. Карта — не энциклопедия, а способ за минуту ответить «куда идти с этой задачей».
📖 9.1. Карта: кто чем занимается в задаче дообучения
На схеме — три контура. Прочитайте её как маршрут вашего запроса: вы (скрипт или ноутбук) идёте либо в AI Studio через SDK, либо в DataSphere-ноутбук; результат — либо URI дообучённой модели, либо свои чекпойнты; дальше — ваш сервис с fallback и логами (модуль 12).
AI Studio (Foundation Models) — управляемые модели Яндекса: генерация YandexGPT и YandexGPT Pro через REST API (есть OpenAI-совместимый режим), эмбеддинги для поиска (модуль 1), ассистенты. Для этого курса главное: LoRA-дообучение YandexGPT Lite и классификаторов на его базе — без единой строки про GPU (модуль 10). Веса чужих моделей туда не загрузить.
DataSphere — Jupyter-ноутбуки с GPU-конфигурациями: любые open-weights модели с HuggingFace, свой код, transformers + PEFT (модуль 11). Платите за время работы конфигурации — отсюда правило «ноутбук с GPU выключай».
Object Storage — S3-совместимое хранилище: датасеты до тюнинга, чекпойнты и адаптеры после. Между проектами DataSphere и на случай «перенести куда угодно».
Обвязка: Serverless Containers и API Gateway, если нужен свой прокси над моделями; ВМ с GPU (vLLM/Ollama) — если в проде нужны собственные веса (модуль 11).
| Задача | Куда идти | Модуль |
|---|---|---|
| Вызов YandexGPT из кода | AI Studio, REST API | 10, 12 |
| Дообучение YandexGPT Lite (стиль, формат) | AI Studio, тюнинг через SDK | 10 |
| Классификатор на базе YandexGPT Lite | AI Studio | 10 |
| QLoRA на Qwen/Llama, свои веса | DataSphere + Object Storage | 11 |
| Поиск по базе знаний (эмбеддинги) | AI Studio, эмбеддинги | — (курс по RAG) |
Актуальные состав и возможности сервисов сверяйте с документацией: https://aistudio.yandex.ru и https://yandex.cloud/ru/docs/datasphere/.
📖 9.2. Доступы: folder_id, сервисный аккаунт, API-ключ, роль
У каждого вызова в YC есть три вопроса: «в каком каталоге?», «кто спрашивает?», «что ему можно?». Ответы — folder_id, сервисный аккаунт (SA) и роль.
- folder_id — идентификатор каталога, «пространство имён» для ресурсов. Любой SDK-клиент создаётся с ним; без folder_id облако не знает, куда положить ваш датасет и откуда списать юниты.
- Сервисный аккаунт — «робот» для программных вызовов, а не для людей. Заводите отдельного SA под задачу тюнинга — его можно отозвать, не трогая людей.
- API-ключ vs IAM-токен. API-ключ — постоянный секрет для сервисных
сценариев (SDK AI Studio принимает его в параметре
auth); IAM-токен — временный, для человеко-ориентированных вызовов. Для скриптов тюнинга практичнее API-ключ. - Роль
ai.languageModels.user— минимальная роль для работы с моделями AI Studio, ровно её выдаёт туториал дообучения сервисному аккаунту. Принцип наименьших привилегий работает и здесь: не выдавайте SA роль администратора каталога «на всякий случай».
Главное правило: ключи — в секретах, не в коде и не в репозитории. Утёкший
в git API-ключ — это чужие траты вашего гранта до лимита каталога. Для практики:
переменные окружения локально, секреты проекта в DataSphere (переменные
API_KEY и FOLDER_ID — их будет читать ноутбук модулей 10–11). Коммит ключа
даже «на минуту» — уже утечка: история git бессмертна.
bash# Загрузка секретов из окружения — единый паттерн для модулей 10 и 11 export FOLDER_ID="b1g..." # идентификатор каталога export API_KEY="AQVN..." # API-ключ сервисного аккаунта # ничего из этого не должно попасть в git: проверьте .gitignore
📖 9.3. DataSphere: конфигурации GPU и квоты
DataSphere-проект — это ноутбуки и ресурсы; каждой ячейке назначается конфигурация вычислений. Для QLoRA важны GPU-конфигурации (детали — модуль 11):
| Конфигурация | GPU | VRAM | Для чего в этом курсе |
|---|---|---|---|
| gt4.1 | NVIDIA T4 | 16 ГБ | QLoRA моделей 3–4B; самый дешёвый вход |
| g1.1 | NVIDIA V100 | 32 ГБ | QLoRA 7–8B с запасом по памяти |
| g2.1 | NVIDIA A100 | 80 ГБ | большие модели/контексты; дороже всех |
Существуют и другие (g1.2/g1.4, g2.2/g2.4, gt4i.1 на T4i 24 ГБ; часть — только для юрлиц) — полный список и характеристики смотрите в документации: https://yandex.cloud/ru/docs/datasphere/concepts/configurations.
Квоты — то, о чём думают до старта, а не во время него. По умолчанию квоты на GPU-конфигурации часто равны 0–1 инстансу — запрос на GPU может просто отклониться. Проверьте квоты своего каталога заранее и поднимите нужные через запрос в техподдержку (это может занять время — ещё аргумент делать это до того, как сядете учить модель). Хранилище проекта DataSphere — до 4096 ГБ, для датасетов и чекпойнтов курса этого достаточно с запасом.
📖 9.4. Деньги: грант, юниты и выключенный ноутбук
Стартовый грант YC покрывает эксперименты курса, но только при двух привычках: считать до, выключать после.
Юниты DataSphere. Тарификация — за время работы вычислительной конфигурации; у каждой конфигурации своя ставка в юнитах за час (актуальные тарифы смотрите в документации DataSphere). Следствие: цена зависит от того, как долго живёт конфигурация, а не только от того, идёт ли обучение. Ноутбук с A100, забытый на выходные, стоит как десяток полноценных прогонов обучения.
Правила, которые сохраняют грант:
- Ноутбук с GPU выключай. Закончили ячейку с обучением или ушли на обед — остановите интерпретатор/конфигурацию. Проверяйте индикатор активной конфигурации перед тем, как закрыть вкладку: закрытая вкладка ≠ остановленный GPU.
- Начинайте с дешёвой конфигурации. Отладка кода — на CPU или gt4.1; переходите на g1.1/g2.1, только когда код уже работает.
- Тюнинг YandexGPT Lite (модуль 10) — это тоже юниты за GPU-время обучения, но без ваших забот о конфигурации: облако считает само.
- Оценка до запуска. Прикидка из трёх чисел: ставка конфигурации в юнитах × ожидаемые часы × запас ×2 на повторы и отладку. Сравните с остатком гранта — до, а не после.
Панель биллинга в консоли — ваш дашборд на весь курс; заглядывайте туда после каждой практики модулей 9–11.
📖 9.5. Компромиссы
- AI Studio тюнинг vs DataSphere QLoRA. AI Studio — быстро, без GPU-опыта, но только YandexGPT Lite и без весов на руках; DataSphere — любые модели и полная свобода ценой вашей возни с конфигурацией, квотами и юнитами.
- API-ключ vs IAM-токен. Ключ удобен для скриптов и ноутбуков, но живёт вечно — утечка дороже; IAM-токен истекает сам, но его надо обновлять.
- Дешёвая конфигурация vs скорость. gt4.1 экономит грант, но обучение дольше; g2.1 быстрее, но ставка в юнитах выше. Для первых прогонов время дешевле денег — наоборот только в проде.
- Минимальная роль vs «чтобы точно работало».
ai.languageModels.userзакрывает задачи курса; широкие роли упрощают старт и расширяют радиус аварии при утече ключа. - Секреты в DataSphere vs переменные окружения. Секреты проекта удобны команде и не утекают в ноутбуки; env-переменные проще для локальных скриптов и требуют дисциплины с .gitignore.
💻 Практика
Нужен аккаунт Yandex Cloud со стартовым грантом. Всё делается в консоли и терминале; стоимость практики — копейки на генерации base-модели.
- Каталог (10 мин). В консоли создайте отдельный каталог для курса
(например,
llm-course). Скопируйте его folder_id — он понадобится в каждом скрипте модулей 10–11. - Сервисный аккаунт и роль (10 мин). В разделе каталога создайте SA
(например,
gpt-user) и назначьте ему рольai.languageModels.user. Больше ролей не нужно. - API-ключ (10 мин). Для SA выпустите API-ключ. Экспортируйте в окружение:
export FOLDER_ID=...иexport API_KEY=...(паттерн из 9.2). Проверьте, что файл с ключами не попадает в git. - Проверка curl-ом (20 мин). Убедитесь, что ключ и роль работают — вызовите генерацию базовой модели. Формат запроса меняется между версиями API, поэтому точные URL и заголовки сверьте с актуальной документацией AI Studio (https://aistudio.yandex.ru/docs/ru/); по смыслу запрос таков:
bash# Схема запроса: точный URL/заголовки сверьте с документацией AI Studio curl -s "https://llm.api.cloud.yandex.net/foundationModels/v1/completion" \ -H "Authorization: Api-Key ${API_KEY}" \ -H "Content-Type: application/json" \ -d '{ "modelUri": "gpt://'${FOLDER_ID}'/yandexgpt-lite", "completionOptions": {"temperature": 0.6, "maxTokens": 100}, "messages": [{"role": "user", "text": "Привет! Кто ты?"}] }'
В ответе — JSON с текстом. Если 40x — читайте тело ошибки: обычно это
(folder_id не тот, у SA нет роли, ключ скопирован с пробелом).
5. Разбор ответа (10 мин). Поймите структуру ответа: где текст, где токены,
что такое modelVersion. Это ваш первый «вызов модели из кода» — в модуле 10
его делает SDK, а в модуле 12 — бэкенд.
6. Гигиена (10 мин). Убедитесь, что папка с ключами в .gitignore
(git status чист). Ключ из практики можно удалить и выпустить новый
к модулю 10 — пара минут.
🧩 Quiz "Проверь себя"
✅ Итоги модуля
- Нарисовать по памяти контуры карты: AI Studio, DataSphere, Object Storage, обвязка — и кто из них отвечает за вашу задачу.
- Создать каталог курса, сервисный аккаунт с ролью
ai.languageModels.userи API-ключ. - Проверить вызов базовой модели curl-ом и разобрать структуру ответа.
- Назвать GPU-конфигурации gt4.1/g1.1/g2.1 и их VRAM.
- Проверить квоты каталога до запуска любого обучения.
- Сформулировать три правила сохранения гранта из 9.4.
🔗 Мостик к Модулю 10
Карта получена, доступы работают, curl вернул первый ответ. Начинаем с самого дешёвого и короткого пути на карте: LoRA-тюнинг YandexGPT Lite прямо через AI Studio SDK — от pip install до собственного URI дообучённой модели. Датасет у вас уже лежит с модуля 5, golden set — с модуля 8; в модуле 10 они встретятся.