Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex AI Studio
  • Начало работы с Model Gallery
    • О сервисе Yandex AI Studio
    • Yandex Workflows
    • Квоты и лимиты
    • Термины и определения
    • Все инструкции
    • Отключить логирование запросов
    • Получить API-ключ
      • Генерация изображений
      • Пакетная обработка данных
        • Дообучить модель генерации текста
        • Дообучить модель классификации текста
        • Дообучить модель эмбеддингов
  • Переход с AI Assistant API на Responses API
  • Совместимость с OpenAI
  • Управление доступом
  • Правила тарификации
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений

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

  • Перед началом работы
  • Загрузите датасет
  • Запустите дообучение
  • Обращение к дообученной модели
  1. Пошаговые инструкции
  2. Model Gallery
  3. Дообучение моделей
  4. Дообучить модель генерации текста

Дообучить модель генерации текста

Статья создана
Yandex Cloud
Улучшена
Danila N.
Обновлена 28 октября 2025 г.
  • Перед началом работы
  • Загрузите датасет
  • Запустите дообучение
    • Обращение к дообученной модели

Дообучение моделей по методу LoRA находится на стадии Preview.

Этот пример показывает, как дообучить модель YandexGPT Lite по методу LoRA в AI Studio. Ссылки на другие примеры доступны в разделе См. также.

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

Чтобы воспользоваться примерами:

Консоль управления
SDK
cURL

Для работы из консоли управления подготовительные действия не требуются.

  1. Создайте сервисный аккаунт и назначьте ему роль ai.editor.

  2. Получите и сохраните API-ключ сервисного аккаунта.

    В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

  3. С помощью менеджера пакетов pip установите библиотеку ML SDK:

    pip install yandex-cloud-ml-sdk
    
  1. Получите данные для аутентификации в API, как описано в разделе Аутентификация в API Yandex AI Studio.

  2. Чтобы воспользоваться примерами, установите cURL.

  3. Установите gRPCurl.

  4. (Опционально) Установите утилиту jq для потоковой обработки JSON-файлов.

  5. Получите IAM-токен для аутентификации в API.

    Примечание

    У IAM-токена короткое время жизни — не более 12 часов.

Загрузите датасетЗагрузите датасет

Подготовьте данные для дообучения модели в формате JSON Lines в кодировке UTF-8. Если вы хотите разбить данные на два датасета для обучения и валидации, повторите следующие шаги для каждого датасета. Используйте полученные в результате загрузки идентификаторы при запуске дообучения.

В этом примере дообучение запускается с использованием только обучающего датасета.

Создайте датасет для дообучения:

Консоль управления
SDK
cURL
  1. В консоли управления выберите каталог, на который у вашего аккаунта есть роли ai.playground.user и ai.datasets.editor или выше.

  2. В списке сервисов выберите AI Studio.

  3. На панели слева нажмите Датасеты.

  4. Нажмите Создать датасет.

  5. Введите имя и описания датасета. Требования к имени:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.
  6. В поле Тип выберите Генерация текста.

  7. Добавьте или удалите метки датасета. Они позволяют разделить и сгруппировать ресурсы на логические группы.

  8. Нажмите Выбрать файл или перетащите созданный ранее JSON-файл в зону загрузки.

  9. Нажмите Создать датасет.

  1. Создайте файл dataset-create.py и добавьте в него код:

    #!/usr/bin/env python3
    
    from __future__ import annotations
    
    import pathlib
    
    from yandex_cloud_ml_sdk import YCloudML
    from yandex_cloud_ml_sdk.exceptions import DatasetValidationError
    
    
    def main() -> None:
    
        sdk = YCloudML(
            folder_id="<идентификатор_каталога>",
            auth="<API-ключ>",
        )
    
        # Так можно посмотреть список всех ранее загруженных датасетов
        for dataset in sdk.datasets.list():
            print(f"List of existing datasets {dataset=}")
    
        # Так можно удалить все ранее загруженные датасеты
        for dataset in sdk.datasets.list():
            dataset.delete()
    
        # Создаем датасет для дообучения базовой модели YandexGPT Lite
        dataset_draft = sdk.datasets.draft_from_path(
            task_type="TextToTextGeneration",
            path="<путь_к_файлу>",
            upload_format="jsonlines",
            name="YandexGPT Lite tuning",
        )
    
        # Дождемся окончания загрузки данных и создания датасета
        operation = dataset_draft.upload_deferred()
        tuning_dataset = operation.wait()
        print(f"new {tuning_dataset=}")
    
    if __name__ == "__main__":
        main()
    

    Где:

    • <идентификатор_каталога> — идентификатор каталога, в котором создан сервисный аккаунт.

    • <API-ключ> — API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.

      В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

    • <путь_к_файлу> — путь к файлу, содержащему заранее подготовленные примеры для дообучения модели.

  2. Выполните созданный файл:

    python3 dataset-create.py
    

    Результат:

    new tuning_dataset=Dataset(id='fdsv21bmp09v********', folder_id='b1gt6g8ht345********', name=
    'YandexGPT Lite tuning', description=None, metadata=None, created_by='ajegtlf2q28a********', 
    created_at=datetime.datetime(2025, 3, 12, 19, 31, 44), updated_at=datetime.datetime(2025, 3, 
    12, 19, 32, 20), labels=None, allow_data_logging=False, status=<DatasetStatus.READY: 3>, 
    task_type='TextToTextGeneration', rows=3, size_bytes=3514, validation_errors=())
    

    Сохраните идентификатор созданного датасета (значение поля id) — он понадобится при дообучении модели.

  1. Создайте датасет:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d @ \
      llm.api.cloud.yandex.net:443 yandex.cloud.ai.dataset.v1.DatasetService/Create <<EOM
      {
        "folder_id": "<идентификатор_каталога>", 
        "name": "My awesome dataset", 
        "task_type": "TextToTextGeneration", 
        "upload_format": "jsonlines"
      }
    EOM
    

    Где:

    • <IAM-токен> — IAM-токен сервисного аккаунта, полученный перед началом работы.
    • <идентификатор_каталога> — идентификатор каталога, в котором создается датасет.

    Результат:

    {
      "datasetId": "fdso08c1u1cq********",
      "dataset": {
        "datasetId": "fdso08c1u1cq********",
        "folderId": "b1gt6g8ht345********",
        "name": "My awesome dataset",
        "status": "DRAFT",
        "taskType": "TextToTextGeneration",
        "createdAt": "2025-01-20T10:36:50Z",
        "updatedAt": "2025-01-20T10:36:50Z",
        "createdById": "ajeg2b2et02f********",
        "createdBy": "ajeg2b2et02f********"
      }
    }
    

    Сохраните идентификатор созданного датасета (значение поля datasetId) — он понадобится при загрузке данных в датасет.

  2. Получите ссылку, по которой вы сможете загрузить данные в датасет:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '{"dataset_id": "<идентификатор_датасета>", "size_bytes": <размер_датасета>}' \
      llm.api.cloud.yandex.net:443 yandex.cloud.ai.dataset.v1.DatasetService/GetUploadDraftUrl | jq
    

    Где:

    • <IAM-токен> — IAM-токен сервисного аккаунта, полученный перед началом работы.
    • <идентификатор_датасета> — идентификатор датасета, сохраненный на предыдущем шаге.
    • <размер_датасета> — размер в байтах файла с данными для дообучения. В терминале получить размер файла можно с помощью команды ls -l <путь_к_файлу>.

    Результат:

    {
      "datasetId": "fdso08c1u1cq********",
      "uploadUrl": "https://storage.yandexcloud.net/ai-fomo-drafts-prod/b1gt6g8ht345********/fdso08c1u1cq********?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20250120T105352Z&X-Amz-SignedHeaders=content-length%3Bhost&X-Amz-Expires=86400&X-Amz-Credential=YCAJE_WuJJ9D1r6huCoc8I3yO%2F20250120%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=611d7951994ae939acf4d32cc0c154c738d02adb2a04707a704f34ca********"
    }
    

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

    Совет

    Если вы не использовали утилиту jq, в полученной ссылке замените все последовательности символов \u0026 на &, чтобы использовать ее для загрузки датасета.

  3. Загрузите данные, указав полученную на предыдущем шаге ссылку и путь к файлу с данными для дообучения:

    curl \
      --request PUT \
      --upload-file <путь_к_файлу> \
      "<ссылка>"
    
  4. После окончания загрузки данных запустите валидацию датасета:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '{"dataset_id": "<идентификатор_датасета>"}' \
      llm.api.cloud.yandex.net:443 yandex.cloud.ai.dataset.v1.DatasetService/Validate
    

    Где:

    • <IAM-токен> — IAM-токен сервисного аккаунта, полученный перед началом работы.
    • <идентификатор_датасета> — идентификатор датасета, сохраненный ранее.

    Результат:

    {
      "id": "fdso01v2jdd4********",
      "createdAt": "2025-01-20T11:03:48Z",
      "modifiedAt": "2025-01-20T11:03:48Z"
    }
    

    Сохраните идентификатор операции валидации (поле id) — он понадобится на следующем шаге.

  5. Валидация датасета может занять некоторое время. Чтобы узнать статус операции и, при наличии, получить отчет о возникших ошибках, отправьте запрос:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '{"operation_id": "<идентификатор_операции_валидации>"}' \
      llm.api.cloud.yandex.net:443 yandex.cloud.operation.OperationService/Get
    

    Где:

    • <IAM-токен> — IAM-токен сервисного аккаунта, полученный перед началом работы.
    • <идентификатор_операции_валидации> — идентификатор операции валидации, сохраненный на предыдущем шаге.

    Результат:

    {
      "id": "fdso01v2jdd4********",
      "createdAt": "2025-01-20T11:03:48Z",
      "modifiedAt": "2025-01-20T11:04:46Z",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/yandex.cloud.ai.dataset.v1.ValidateDatasetResponse",
        "datasetId": "fdso08c1u1cq********",
        "isValid": true
      }
    }
    

    Значение поля isValid — true. Значит, валидация загруженного датасета прошла успешно.

Запустите дообучениеЗапустите дообучение

Консоль управления
SDK
cURL
  1. В консоли управления выберите каталог, на который у вашего аккаунта есть роли ai.playground.user, ai.datasets.user и ai.models.editor или выше.

  2. В списке сервисов выберите AI Studio.

  3. На панели слева нажмите Дообучение моделей.

  4. Нажмите Дообучить модель.

  5. Введите имя и описания датасета. Требования к имени:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.
  6. В поле Задача выберите Генерация.

  7. (Опционально) Добавьте или удалите метки дообучения. Они позволяют разделить и сгруппировать ресурсы на логические группы.

  8. В поле Модель выберите нужную модель.

  9. В поле Датасет нажмите Добавить.

  10. В открывшемся окне перейдите на вкладку Выбрать из существующих и выберите созданный ранее датасет.

  11. Нажмите Дополнительные параметры, чтобы провести тонкую настройку дообучения.

  12. Нажмите Начать дообучение.

  1. Создайте файл start-tuning.py и добавьте в него код:

    #!/usr/bin/env python3
    
    from __future__ import annotations
    import pathlib
    import uuid
    from yandex_cloud_ml_sdk import YCloudML
    
    
    def main():
        sdk = YCloudML(
            folder_id="<идентификатор_каталога>",
            auth="<API-ключ>",
        )
    
        # Посмотрим список датасетов, прошедших валидацию
        for dataset in sdk.datasets.list(status="READY", name_pattern="completions"):
            print(f"List of existing datasets {dataset=}")
    
        # Зададим датасет для обучения и базовую модель
        train_dataset = sdk.datasets.get("<идентификатор_датасета>")
        base_model = sdk.models.completions("yandexgpt-lite")
    
        # Запускаем дообучение
        # Дообучение может длиться до нескольких часов
        tuned_model = base_model.tune(
            train_dataset, name=str(uuid.uuid4()), n_samples=10000
        )
        print(f"Resulting {tuned_model}")
    
        # Можно обратиться к дообученной модели с помощью метода run()
        completion_result = tuned_model.run("Привет!")
        print(f"{completion_result=}")
    
        # А можно сохранить URI дообученной модели
        # И вызывать дообученную модель по URI
        tuned_uri = tuned_model.uri
        model = sdk.models.completions(tuned_uri)
        completion_result = model.run("Как дела?")
        print(f"{completion_result=}")
    
    
    if __name__ == "__main__":
        main()
    

    Где:

    • <идентификатор_каталога> — идентификатор каталога, в котором создан сервисный аккаунт.

    • <API-ключ> — API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.

      В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

    • <идентификатор_датасета> — сохраненный на предыдущем шаге идентификатор созданного датасета.

  2. Выполните созданный файл:

    python3 start-tuning.py
    

    Результат:

    Resulting GPTModel(uri=gpt://b1gt6g8ht345********/yandexgpt-lite/latest@tamrmgia22979********, 
    config=GPTModelConfig(temperature=None, max_tokens=None, reasoning_mode=None, response_format=None))
    completion_result=GPTModelResult(alternatives=(Alternative(role='assistant', text='Привет! Как дела?', 
    status=<AlternativeStatus.FINAL: 3>),), usage=Usage(input_text_tokens=12, completion_tokens=5, 
    total_tokens=17), model_version='23.10.2024')
    completion_result=GPTModelResult(alternatives=(Alternative(role='assistant', text='Здравствуйте! У меня 
    всё хорошо, спасибо. Как ваши дела?', status=<AlternativeStatus.FINAL: 3>),), usage=Usage
    (input_text_tokens=13, completion_tokens=13, total_tokens=26), model_version='23.10.2024')
    

    Дообучение модели может занять до 1 суток в зависимости от объема датасета и загрузки системы.

    Используйте полученный URI дообученной модели (значение поля uri) при обращении к ней.

  3. Метрики дообучения доступны в формате TensorBoard. Загруженный файл можно открыть, например, в проекте Yandex DataSphere:

    metrics_url = new_model.get_metrics_url()
    download_tensorboard(metrics_url)
    
  1. Запустите дообучение:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d @ \
      llm.api.cloud.yandex.net:443 yandex.cloud.ai.tuning.v1.TuningService/Tune <<EOM
      {
        "base_model_uri": "gpt://<идентификатор_каталога>/yandexgpt-lite/latest",
        "train_datasets": [{"dataset_id": "<идентификатор_датасета>", "weight": 1.0}],
        "name": "my first model",
        "text_to_text_completion": {}
      } 
    EOM
    

    Где:

    • <IAM-токен> — IAM-токен сервисного аккаунта, полученный перед началом работы.
    • <идентификатор_каталога> — идентификатор каталога, в котором дообучается модель.
    • <идентификатор_датасета> — идентификатор датасета, сохраненный ранее.

    Результат:

    {
      "id": "ftnlljf53kil********",
      "createdAt": "2025-01-20T11:17:33Z",
      "modifiedAt": "2025-01-20T11:17:33Z",
      "metadata": {
        "@type": "type.googleapis.com/yandex.cloud.ai.tuning.v1.TuningMetadata"
      }
    }
    

    В ответе сервис вернет объект Operation. Сохраните идентификатор (id) операции, полученный в ответе.

  2. Дообучение модели может занять до 1 суток в зависимости от объема датасета и степени загрузки системы. Чтобы проверить готовность дообучения, запросите статус операции:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '{"operation_id": "<идентификатор_операции>"}' \
      llm.api.cloud.yandex.net:443 yandex.cloud.operation.OperationService/Get
    

    Где:

    • <IAM-токен> — IAM-токен сервисного аккаунта, полученный перед началом работы.
    • <идентификатор_операции> — идентификатор операции дообучения модели, полученный на предыдущем шаге.

    Если дообучение завершилось, объект Operation будет содержать URI дообученной модели в поле targetModelUri:

    {
      "id": "ftnlljf53kil********",
      "createdAt": "2025-01-20T11:17:33Z",
      "modifiedAt": "2025-01-20T11:25:40Z",
      "done": true,
      "metadata": {
        "@type": "type.googleapis.com/yandex.cloud.ai.tuning.v1.TuningMetadata",
        "status": "COMPLETED",
        "tuningTaskId": "ftnlljf53kil********"
      },
      "response": {
        "@type": "type.googleapis.com/yandex.cloud.ai.tuning.v1.TuningResponse",
        "status": "COMPLETED",
        "targetModelUri": "gpt://b1gt6g8ht345********/yandexgpt-lite/latest@tamr2nc6pev5e********",
        "tuningTaskId": "ftnlljf53kil********"
      }
    }
    

    Используйте полученный URI дообученной модели (значение поля targetModelUri) при обращении к ней.

  3. Метрики дообучения доступны в формате TensorBoard. Получите ссылку, чтобы загрузить файл:

    grpcurl \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '{"task_id": "<идентификатор_задания>"}' \
      llm.api.cloud.yandex.net:443 yandex.cloud.ai.tuning.v1.TuningService/GetMetricsUrl
    

    Загруженный файл можно открыть, например, в проекте Yandex DataSphere.

Обращение к дообученной моделиОбращение к дообученной модели

После завершения операции дообучения сохраните URI дообученной модели вида gpt://<URI_базовой_модели>/<версия>@<суффикс_дообучения>. Используйте его, чтобы отправлять синхронные и асинхронные запросы или создать AI-ассистента на основе дообученной модели.

См. такжеСм. также

  • Дообучение моделей
  • Дообучить модель классификации текста
  • Дообучение моделей в DataSphere Notebooks
  • Больше примеров SDK доступно в репозитории на GitHub.

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

Предыдущая
Создать датасет для дообучения классификации текста
Следующая
Дообучить модель классификации текста
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»