jina-finetune
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/
| Демо | Назначение | Команда |
|---|---|---|
| Генерация триплетов | Демо всех методов генерации | |
| Быстрое демо | Быстрый тест с SentenceTransformers | |
| Jina модель | Демо с Jina Embeddings v3 | |
| Полный обзор | Обзор всех возможностей | |
| LoRA обучение | Эффективное дообучение модели | |
💡 Подробнее о примерах: 📊 Руководство по примерам
🛠️ Базовое использование
🔄 Последние улучшения
- ✅ Консолидация примеров: Объединены демо файлы для упрощения
- ✅ Интеграция 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 для руководства по разработке.
📄 Лицензия
🎯 Готов к продакшену для обучения эмбеддингов с интеллектуальной генерацией триплетов!