jina-finetune

0
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
9 месяцев назад
8 месяцев назад
9 месяцев назад
8 месяцев назад
README.md

Обучение Jina Embeddings v3

🚀 Готовый к продакшену фреймворк для дообучения Jina Embeddings v3 с PyTorch Lightning

🎯 Быстрый старт

📚 Ключевые возможности

  • 🔥 LoRA дообучение: Эффективное обучение с Low-Rank Adaptation
  • 🎯 Triplet Loss: Продвинутый поиск hard negatives с CTR-фильтрацией
  • 🤖 Гибкость моделей: Поддержка различных embedding моделей
  • ⚡ Task-Aware: Умная обработка запросов и документов
  • 📊 Готовность к продакшену: Интеграция с PyTorch Lightning и мониторинг

🏗️ Архитектура

jina-embeddings-training/ ├── jina_training/ # 🧠 Основной пакет │ ├── model.py # JinaEmbeddingModel с поддержкой LoRA │ ├── dataset.py # TripletDataset с task-aware предобработкой │ ├── triplet_generator.py # Hard negative mining с адаптивными стратегиями │ ├── model_adapters.py # Адаптеры для различных embedding моделей │ ├── trainer.py # Оркестрация обучения │ ├── datamodule.py # Обработка данных для PyTorch Lightning │ └── types.py # Определения типов и протоколы ├── docs/ # 📚 Документация │ ├── architecture.md # Дизайн системы и компоненты │ ├── getting-started.md # Установка и первые шаги │ ├── triplet-generation.md # Стратегии поиска hard negatives │ ├── model-adapters.md # Поддержка множественных моделей │ ├── task-aware.md # Task-aware обучение │ ├── configuration.md # Параметры и настройка │ └── examples.md # Демо скрипты и туториалы ├── examples/ # 🎮 Готовые примеры │ ├── demo_triplet_generation.py # Основное демо генерации триплетов │ ├── demo_complete.py # Полный обзор системы │ ├── demo_lora_training.py # Обучение с LoRA │ └── demo_dimension_fix.py # Работа с размерностями ├── cache/ # 📦 Кэш эмбеддингов и данных ├── logs/ # 📊 Логи обучения и TensorBoard └── saved_models/ # 💾 Сохраненные модели

📖 Документация

РазделОписание
🏗️ АрхитектураДизайн системы и компоненты
🚀 Начало работыУстановка и первые шаги
🎯 Генерация триплетовСтратегии поиска hard negatives
🤖 Адаптеры моделейПоддержка множественных моделей
⚡ Task-Aware обучениеОбработка задач запросов/документов
🔧 КонфигурацияПараметры и настройка
📊 ПримерыДемо скрипты и туториалы

🎮 Примеры

Быстрый доступ к демо скриптам в папке

examples/
:

ДемоНазначениеКоманда
Генерация триплетовДемо всех методов генерации
uv run examples/demo_triplet_generation.py --all
Быстрое демоБыстрый тест с SentenceTransformers
uv run examples/demo_triplet_generation.py --fast
Jina модельДемо с Jina Embeddings v3
uv run examples/demo_triplet_generation.py --jina
Полный обзорОбзор всех возможностей
uv run examples/demo_complete.py --fast
LoRA обучениеЭффективное дообучение модели
uv run examples/demo_lora_training.py

💡 Подробнее о примерах: 📊 Руководство по примерам

🛠️ Базовое использование

🔄 Последние улучшения

  • Консолидация примеров: Объединены демо файлы для упрощения
  • Интеграция uv: Современный менеджер пакетов для Python
  • CLI аргументы: Автоматизированное тестирование без интерактивного ввода
  • Task-aware архитектура: Умная обработка запросов/документов
  • Адаптивный поиск кандидатов: Решена проблема "0 валидных кандидатов"
  • Гибкость моделей: Прямая передача модели вместо model_name
  • Поддержка множественных моделей: Адаптеры для SentenceTransformers + HuggingFace

📋 Требования

  • Python 3.13+
  • PyTorch 2.7+
  • Lightning 2.5+
  • LanceDB 0.24+
  • uv для управления пакетами (рекомендуется)

🤝 Участие в разработке

См. CONTRIBUTING.md для руководства по разработке.

📄 Лицензия

MIT License


🎯 Готов к продакшену для обучения эмбеддингов с интеллектуальной генерацией триплетов!