Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
      • Интеграция сервиса DataSphere с сервисом Yandex Data Processing
      • Классификация изображений на видеокадрах
      • Запуск вычислений по расписанию в DataSphere
      • Запуск вычислений в DataSphere с помощью API
      • Использование данных из Object Storage для обучения модели в DataSphere
      • Создание сервера MLFlow для логирования экспериментов и артефактов
      • Дообучение моделей в DataSphere

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Создайте каталог
  • Создайте сервисный аккаунт для проекта DataSphere
  • Добавьте сервисный аккаунт в проект
  • Создайте API-ключ для сервисного аккаунта
  • Создайте секреты
  • Дообучите модель
  • Как удалить созданные ресурсы
  1. Машинное обучение и искусственный интеллект
  2. Разработка с помощью DataSphere
  3. Дообучение моделей в DataSphere

Дообучение моделей в DataSphere

Статья создана
Yandex Cloud
Обновлена 26 марта 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
    • Создайте каталог
    • Создайте сервисный аккаунт для проекта DataSphere
    • Добавьте сервисный аккаунт в проект
  • Создайте API-ключ для сервисного аккаунта
  • Создайте секреты
  • Дообучите модель
  • Как удалить созданные ресурсы

Вы можете дообучать языковые модели Yandex Foundation Models, чтобы они лучше понимали специфику ваших задач, через API или ML SDK. Дообучение удобно запускать в ноутбуках Yandex DataSphere.

В этом руководстве вы дообучите модель в DataSphere с помощью SDK. Вы также можете склонировать репозиторий и запустить ноутбук локально, изменив параметры аутентификации.

Чтобы дообучить модель:

  1. Подготовьте инфраструктуру.
  2. Создайте API-ключ для сервисного аккаунта.
  3. Создайте секреты.
  4. Дообучите модель.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работы

Перед началом работы нужно зарегистрироваться в Yandex Cloud, настроить сообщество и привязать к нему платежный аккаунт:

  1. На главной странице DataSphere нажмите Попробовать бесплатно и выберите аккаунт для входа — Яндекс ID или рабочий аккаунт в федерации (SSO).
  2. Выберите организацию Yandex Cloud Organization, в которой вы будете работать в Yandex Cloud.
  3. Создайте сообщество.
  4. Привяжите платежный аккаунт к сообществу DataSphere, в котором вы будете работать. Убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его в интерфейсе DataSphere.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры для дообучения модели входит:

  • плата за использование вычислительных ресурсов DataSphere;
  • плата за генерацию текста моделью.

Подготовьте инфраструктуру

Войдите в консоль управления Yandex Cloud и выберите организацию, в которой вы работаете с DataSphere. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт.

Если у вас есть активный платежный аккаунт, на странице облака вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура.

Примечание

Если вы работаете с Yandex Cloud через федерацию удостоверений, вам может быть недоступна платежная информация. В этом случае обратитесь к администратору вашей организации в Yandex Cloud.

Создайте каталог

Консоль управления
  1. В консоли управления выберите облако и нажмите кнопку Создать каталог.
  2. Введите имя каталога, например data-folder.
  3. Нажмите кнопку Создать.

Создайте сервисный аккаунт для проекта DataSphere

Консоль управления
  1. Перейдите в каталог data-folder.
  2. В списке сервисов выберите Identity and Access Management.
  3. Нажмите кнопку Создать сервисный аккаунт.
  4. Введите имя сервисного аккаунта, например gpt-user.
  5. Нажмите Добавить роль и назначьте сервисному аккаунту роль ai.languageModels.user.
  6. Нажмите кнопку Создать.

Добавьте сервисный аккаунт в проект

Чтобы сервисный аккаунт мог обращаться к модели из ноутбука, добавьте его в список участников проекта.

Консоль управления
  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. На вкладке Участники нажмите Добавить участника.
  3. Выберите аккаунт gpt-user и нажмите Добавить.

Создайте API-ключ для сервисного аккаунта

Чтобы сервисный аккаунт мог получить доступ к модели, создайте API-ключ.

Консоль управления
  1. В консоли управления перейдите в каталог data-folder.
  2. В списке сервисов выберите Identity and Access Management.
  3. На панели слева выберите Сервисные аккаунты.
  4. В открывшемся списке выберите сервисный аккаунт gpt-user.
  5. На панели сверху нажмите кнопку Создать новый ключ и выберите пункт Создать API-ключ.
  6. Нажмите кнопку Создать.
  7. Сохраните идентификатор и секретный ключ.

Создайте секреты

Чтобы получить API-ключ и идентификатор каталога из ноутбука, создайте секреты с идентификаторами ключа и каталога.

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. В блоке Ресурсы проекта нажмите Секрет.
  3. Нажмите Создать.
  4. В поле Имя задайте имя секрета — API_KEY.
  5. В поле Значение вставьте идентификатор ключа.
  6. Нажмите Создать.
  7. Создайте еще один секрет FOLDER_ID с идентификатором каталога.

Дообучите модель

Код для обучения запускается из ноутбука DataSphere. Данные для обучения хранятся в формате JSON Lines.

  1. Откройте ноутбук с кодом по ссылке ниже:

    Открыть в DataSphere

  2. Скачайте файл generations.jsonlines из репозитория на GitHub и поместите его рядом с ноутбуком.

  3. Установите DataSphere SDK, запустив код в ячейке ноутбука:

    %pip install yandex-cloud-ml-sdk --upgrade
    
  4. Импортируйте необходимые библиотеки:

    import pathlib
    import uuid
    import os
    from __future__ import annotations
    
    from yandex_cloud_ml_sdk import YCloudML
    import urllib.request
    import zipfile   
    
  5. Загрузите TensorBoard. Он понадобится, чтобы посмотреть метрики обучения:

    def download_tensorboard(url):
        urllib.request.urlretrieve(url, "tensorboard.zip")
        with zipfile.ZipFile('tensorboard.zip', 'r') as zip_ref:
            zip_ref.extractall("tensorboard")
    
  6. Загрузите данные для обучения:

    def local_path(path: str) -> pathlib.Path:
        return pathlib.Path(path)
    
    dataset_path = local_path("generations.jsonlines")
    print(dataset_path)
    
    print("Данные датасета для дообучения")
    print(dataset_path.read_text())
    
  7. Создайте объект SDK, содержащий параметры для авторизации:

    sdk = YCloudML(
        folder_id=os.environ['FOLDER_ID'], # Идентификатор каталога, сохраненный в секрете DataSphere
        auth=os.environ['API_KEY'] # API-ключ сервисного аккаунта, сохраненный в секрете DataSphere
    )
    
  8. Создайте датасет для обучения и запустите его загрузку и валидацию:

    dataset_draft = sdk.datasets.draft_from_path(
        task_type='TextToTextGeneration',
        path=dataset_path,
        upload_format='jsonlines',
        name='test-generations'
    )
    
    dataset = dataset_draft.upload()
    print('Датасет загружается и валидируется')
    print(f'Новый датасет {dataset=} \n')
    
  9. Выберите базовую модель, которую хотите дообучить, и запустите дообучение. В примере — YandexGPT Lite:

    base_model = sdk.models.completions('yandexgpt-lite')
    
    tuning_task = base_model.tune_deferred(
        dataset,
        name=str(uuid.uuid4()),
        n_samples=10000 
    )
    
    print(f'Обучение началось {tuning_task} \n')
    
    # Дообучение может длиться до нескольких часов
    # Дожидаемся завершения операции обучения и получаем новую модель
    new_model = tuning_task.wait()
    print(f'Обучение закончилось, новая модель = {new_model} \n')
    
  10. Получите дообученную модель:

    # Если вы закрыли ноутбук, по task_id можно проверить статус операции
    tuning_task = sdk.tuning.get(task_id)
    print(tuning_task.get_task_info())
    
    new_model = tuning_task.get_result()
    print({new_model})
    
  11. Протестируйте новую модель:

    print('Посылаем запросы в новую модель\n')
    # Примеры запросов в модель
    completion_result = new_model.run("Как тебя зовут?")
    print(f'{completion_result=} \n')
    
    # Дообученную модель можно использовать, указав ее URI
    tuned_uri = new_model.uri 
    model = sdk.models.completions(tuned_uri)
    
    completion_result = model.run("Откуда ты?")
    print(f'{completion_result=} \n')
    

    Модель сгенерирует и вернет ответы с учетом дообучения.

  12. Загрузите метрики дообучения:

    # Получаем ссылку с данными для TensorBoard и скачиваем файлы
    metrics_url = new_model.get_metrics_url()
    download_tensorboard(metrics_url)
    

Как удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы, удалите проект.

Была ли статья полезна?

Предыдущая
Создание сервера MLFlow для логирования экспериментов и артефактов
Следующая
Развертывание сервиса в DataSphere из модели ONNX
Проект Яндекса
© 2025 ООО «Яндекс.Облако»