Дообучить модель эмбеддингов
Дообучение моделей по методу LoRA находится на стадии Preview.
Этот пример показывает, как дообучить модель эмбеддингов по методу LoRA в AI Studio. Ссылки на другие примеры доступны в разделе См. также.
Перед началом работы
Чтобы воспользоваться примерами:
Для работы из консоли управления подготовительные действия не требуются.
-
Получите и сохраните API-ключ сервисного аккаунта.
В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.
-
С помощью менеджера пакетов pip
установите библиотеку ML SDK:pip install yandex-cloud-ml-sdk
-
Получите данные для аутентификации в API, как описано в разделе Аутентификация в API Yandex AI Studio.
-
Чтобы воспользоваться примерами, установите cURL
. -
Установите gRPCurl
. -
(Опционально) Установите утилиту jq
для потоковой обработки JSON-файлов. -
Получите IAM-токен для аутентификации в API.
Примечание
У IAM-токена короткое время жизни — не более 12 часов.
Подготовьте данные
- Подготовьте данные в необходимом формате. Для дообучения модели эмбеддингов используйте датасеты пар
TextEmbeddingPairParamsили триплетовTextEmbeddingTripletParams. - Создайте датасет любым удобным способом. В консоли управления вы также сможете создать датасет позднее на этапе создания дообучения.
Запустите дообучение
-
В консоли управления
выберите каталог, на который у вашего аккаунта есть ролиai.playground.user,ai.datasets.userиai.models.editorили выше. -
В списке сервисов выберите AI Studio.
-
На панели слева нажмите
Дообучение моделей. -
Нажмите Дообучить модель.
-
Введите имя и описание дообученной модели. Требования к имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Добавьте или удалите метки дообучения. Они позволяют разделить и сгруппировать ресурсы на логические группы.
-
В поле Задача выберите
Эмбеддинг. -
Выберите Тип эмбеддингов, соответствующий подготовленному датасету.
-
В поле Модель выберите нужную модель.
-
В поле Датасет нажмите
Добавить. -
В открывшемся окне перейдите на вкладку Выбрать из существующих и выберите созданный ранее датасет.
-
Нажмите Дополнительные параметры, чтобы провести тонкую настройку дообучения.
-
Нажмите Начать дообучение.
-
Создайте файл
start-tuning.pyи добавьте в него код:#!/usr/bin/env python3 from __future__ import annotations import uuid from yandex_cloud_ml_sdk import YCloudML # Конфигурация folder = "<идентификатор_каталога>" token = "<API-ключ>" type = "<тип_датасета>" dataset_id = "<идентификатор_датасета>" def main(): sdk = YCloudML( folder_id=folder, auth=token, ) # Зададим датасет для обучения и базовую модель train_dataset = sdk.datasets.get(dataset_id) base_model = sdk.models.text_embeddings("text-embeddings") # Запускаем дообучение # Дообучение может длиться до нескольких часов tuning_task = base_model.tune_deferred( train_dataset, name=str(uuid.uuid4()), embeddings_tune_type=type ) tuned_model = tuning_task.wait() print(f"Resulting {tuned_model}") if __name__ == "__main__": main()Где:
-
<идентификатор_каталога>— идентификатор каталога, в котором создан сервисный аккаунт. -
<API-ключ>— API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.
-
<тип_датасета>— тип созданного ранее датасета. Возможные значения:pair(пара) иtriplet(триплет). -
<идентификатор_датасета>— идентификатор созданного ранее датасета для обучения.
-
-
Выполните созданный файл:
python3 start-tuning.pyДообучение модели может занять до 1 суток в зависимости от объема датасета и загрузки системы.
Используйте полученный URI дообученной модели (значение поля
uri) при обращении к ней. -
Метрики дообучения доступны в формате TensorBoard. Загруженный файл можно открыть, например, в проекте Yandex DataSphere
:metrics_url = new_model.get_metrics_url() download_tensorboard(metrics_url)
-
Запустите дообучение.
-
С датасетом пар:
grpcurl \ -H "Authorization: Bearer <IAM-токен>" \ -d @ \ llm.api.cloud.yandex.net:443 yandex.cloud.ai.tuning.v1.TuningService/Tune <<EOM { "base_model_uri": "emb://<идентификатор_каталога>/text-embeddings/latest", "train_datasets": [{"dataset_id": "<идентификатор_датасета>", "weight": 1.0}], "name": "train-embeddings", "text_embedding_pair_params": {} } EOM -
С датасетом триплетов:
grpcurl \ -H "Authorization: Bearer <IAM-токен>" \ -d @ \ llm.api.cloud.yandex.net:443 yandex.cloud.ai.tuning.v1.TuningService/Tune <<EOM { "base_model_uri": "emb://<идентификатор_каталога>/text-embeddings/latest", "train_datasets": [{"dataset_id": "<идентификатор_датасета>", "weight": 1.0}], "name": "train-embeddings", "text_embedding_triplet_params": {} } EOM
Где:
<IAM-токен>— IAM-токен сервисного аккаунта, полученный перед началом работы.<идентификатор_каталога>— идентификатор каталога, в котором дообучается модель.<идентификатор_датасета>— идентификатор датасета, сохраненный ранее.
Результат:
{ "id": "ftna7bps63gh********", "createdAt": "2025-07-16T10:44:57Z", "modifiedAt": "2025-07-16T10:44:57Z", "metadata": { "@type": "type.googleapis.com/yandex.cloud.ai.tuning.v1.TuningMetadata", "status": "CREATED", "tuningTaskId": "ftna7bps63gh********" } }В ответе сервис вернет объект Operation. Сохраните идентификатор (
id) операции, полученный в ответе. -
-
Дообучение модели может занять до 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": "ftna7bps63gh********", "createdAt": "2025-07-16T10:44:57Z", "modifiedAt": "2025-07-16T10:48:07Z", "done": true, "metadata": { "@type": "type.googleapis.com/yandex.cloud.ai.tuning.v1.TuningMetadata", "status": "COMPLETED", "tuningTaskId": "ftna7bps63gh********" }, "response": { "@type": "type.googleapis.com/yandex.cloud.ai.tuning.v1.TuningResponse", "status": "COMPLETED", "targetModelUri": "emb://b1gt6g8ht345********/text-embeddings/latest@tamr0j6m2crpi********", "tuningTaskId": "ftna7bps63gh********" } }Используйте полученный URI дообученной модели (значение поля
targetModelUri) при обращении к ней. -
Метрики дообучения доступны в формате 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 дообученной модели вида emb://<идентификатор_каталога>/text-embeddings/latest@<суффикс_дообучения>. Используйте его в качестве пользовательской модели эмбеддингов, если это необходимо. Например, можно указать model_uri при построении поискового индекса.