Код для обучения моделей с использованием подхода metric learning
.
В основе проекта лежит библиотека open-metric-learning.
python
(протестировано для версии Python>=3.10, <3.11
).
Создать виртуальное окружение, например, с помощь conda
. Затем установить зависимости:
pip install -r requirements.txt
Дополнительные зависимости (логирование, парсинг фида, удаление дубликатов, экспорт в onnx
) находятся в файле requirements_optional.txt
.
Если нужна какая-либо из вышеуказанных возможностей (смотри examples
) нужно выполнить:
pip install -r requirements_optional.txt
Перед использованием следует ознакомиться с библиотекой open-metric-learning.
Особое внимание нужно уделить конфигурационному файлу.
Датасет должен иметь особый формат.
При обучении текстовой модели, колонка path
должна быть заменена на text
и содержать текстовое описание объекта.
Также можно использовать примеры подготовки данных в каталоге examples
:
- Для текстовых моделей -
examples/bert_converter.py
. - Для визуальных моделей -
examples/vit_converter.py
.
Внеся соответствующие изменения в конфигурационные файлы в директории config
, выполнить:
python train_bert.py
# OR
python train_vit.py
Для деплоя моделей может потребоваться их оптимизация.
Для этого можно использовать следующие примеры:
- Конвертация в
onnx
формат -examples/vit_to_onnx.py
илиexamples/bert_to_onnx.py
. - Квантизация -
examples/quantize.py
.
Для регистрации модели в mlflow
можно использовать следующий пример:
import mlflow
import onnx
mlflow.set_tracking_uri("http://localhost:8000")
model_path = "./ViTExtractor.onnx"
artifact_path = "./artifacts"
onnx_model = onnx.load(model_path)
with mlflow.start_run(experiment_id="1") as run:
mlflow.onnx.log_model(onnx_model, "model", save_as_external_data=False)
mlflow.log_artifact(artifact_path)
В данном примере регистрируется модель формата onnx
.