Meta Learning и Transfer Learning
Meta Learning и Transfer Learning
Обзор
Проект реализует продвинутые техники обучения для улучшения производительности A/B тестов и оптимизации параметров:
- Meta Learning — накопление знаний из завершенных A/B тестов
- Transfer Learning — перенос знаний между похожими задачами
- State Persistence — сохранение состояния для восстановления после перезапусков
Meta Learning
Концепция
Meta Learning (обучение обучению) накапливает знания о том, как эффективно оптимизировать параметры на основе опыта предыдущих A/B тестов.
Как это работает
graph LR
A[AB Test 1] -->|Результаты| ML[Meta Learning Manager]
B[AB Test 2] -->|Результаты| ML
C[AB Test 3] -->|Результаты| ML
ML -->|Извлечение знаний| KB[(Knowledge Base)]
KB -->|Применение| D[AB Test 4]
D -->|Улучшенная инициализация| GA[Genetic Algorithm]Извлекаемые знания
- Паттерны оптимизации — какие параметры работают лучше в определенных условиях
- Лучшие стратегии — успешные комбинации параметров
- Параметры стратегий — оптимальные значения для разных контекстов
- История успехов — результаты предыдущих тестов
- Архитектуры сетей — успешные конфигурации нейронных сетей
- Стратегии наград — эффективные функции награды
- Динамические параметры — адаптивные значения параметров
Конфигурация
ab_tests:
meta_learning:
enabled: true # Включить Meta Learning
knowledge_retention_days: 30 # Дни хранения знаний
min_tasks_for_learning: 5 # Минимальное количество задач для обучения
similarity_threshold: 0.7 # Порог схожести задач
Использование
Meta Learning автоматически активируется после завершения A/B теста:
// После завершения A/B теста
metaLearningManager.LearnFromABTest(
ctx,
testID,
exchange,
pair,
modelType,
results,
quotes,
)
Знания сохраняются глобально и доступны всем воркерам через knowledge_key = {exchange}_{pair}_{model_type}.
Transfer Learning
Концепция
Transfer Learning переносит знания из похожих задач (source tasks) в новую задачу (target task) для ускорения оптимизации.
Как это работает
graph TB
ST1[Source Task 1<br/>BTCUSDT DQN] -->|Знания| TM[Transfer Model]
ST2[Source Task 2<br/>ETHUSDT DQN] -->|Знания| TM
ST3[Source Task 3<br/>TONUSDT DQN] -->|Знания| TM
TM -->|Инициализация| TT[Target Task<br/>BNBUSDT DQN]
TT -->|Начальная популяция| GA[Genetic Algorithm]
GA -->|Ускоренная сходимость| RES[Результаты]Процесс переноса
- Поиск похожих задач — по бирже, паре и типу модели
- Извлечение знаний — лучшие параметры из source tasks
- Создание Transfer Model — матрица переноса и веса признаков
- Инициализация популяции — создание начальной популяции GA на основе знаний
- Адаптация — адаптация параметров к target task
Конфигурация
ab_tests:
transfer_learning:
enabled: true # Включить Transfer Learning
use_similar_exchanges: true # Использовать похожие биржи
use_similar_pairs: true # Использовать похожие пары
max_source_tasks: 10 # Максимальное количество source tasks
Использование
Transfer Learning активируется при генерации начальной популяции GA:
// При генерации агентов
similarTasks, err := transferLearningManager.LoadSimilarTasks(
ctx,
exchange,
pair,
modelType,
useSimilarExchanges,
useSimilarPairs,
maxSourceTasks,
)
if len(similarTasks) > 0 {
// Создать начальную популяцию на основе знаний
initialPopulation := transferLearningManager.CreateInitialPopulation(
similarTasks,
populationSize,
)
}
State Persistence
Концепция
State Persistence сохраняет состояние Genetic Algorithm для восстановления после перезапусков подов.
Типы checkpoint’ов
- Full — полное состояние популяции (каждые N поколений)
- Incremental — инкрементальные изменения
- Final — финальное состояние после завершения
Конфигурация
ab_tests:
state_management:
enabled: true # Включить управление состоянием
checkpoint_interval: 5 # Интервал сохранения (каждые N поколений)
retention_days: 7 # Дни хранения checkpoint'ов
Использование
// Сохранение checkpoint
err := stateManager.SaveGACheckpoint(
ctx,
testID,
messageID,
generation,
population,
checkpointType,
exchange,
pair,
modelType,
)
// Восстановление checkpoint
checkpoint, err := stateManager.RestoreGACheckpoint(ctx, testID)
if checkpoint != nil {
// Восстановить популяцию и продолжить
population = checkpoint.StateData.GAPopulation
currentGeneration = *checkpoint.Generation
}
Интеграция в A/B тесты
Полный цикл
sequenceDiagram
participant AB as AB Test
participant TL as Transfer Learning
participant GA as Genetic Algorithm
participant SM as State Manager
participant ML as Meta Learning
AB->>TL: Загрузка похожих задач
TL->>GA: Инициализация популяции
GA->>SM: Сохранение checkpoint
SM->>GA: Восстановление после перезапуска
GA->>AB: Результаты теста
AB->>ML: Извлечение знаний
ML->>TL: Обновление Transfer ModelПример использования
// 1. Загрузка Transfer Learning знаний
similarTasks, _ := transferLearningManager.LoadSimilarTasks(...)
if len(similarTasks) > 0 {
// Инициализировать популяцию на основе знаний
initialPopulation = createPopulationFromKnowledge(similarTasks)
}
// 2. Восстановление checkpoint (если есть)
checkpoint, _ := stateManager.RestoreGACheckpoint(ctx, testID)
if checkpoint != nil {
// Продолжить с восстановленного состояния
population = checkpoint.StateData.GAPopulation
generation = *checkpoint.Generation
}
// 3. Запуск GA с checkpoint'ами
for generation < maxGenerations {
// ... эволюция популяции ...
// Сохранение checkpoint каждые N поколений
if generation % checkpointInterval == 0 {
stateManager.SaveGACheckpoint(...)
}
}
// 4. Сохранение Meta Learning знаний после завершения
metaLearningManager.LearnFromABTest(ctx, testID, ...)
Преимущества
Meta Learning
- ✅ Накопление опыта — система учится на каждом тесте
- ✅ Улучшение инициализации — лучшие стартовые параметры
- ✅ Глобальные знания — доступны всем воркерам
- ✅ Адаптация — система адаптируется к изменениям рынка
Transfer Learning
- ✅ Ускорение сходимости — быстрее находим оптимальные параметры
- ✅ Использование опыта — перенос знаний между похожими задачами
- ✅ Меньше вычислений — меньше поколений GA для достижения результата
- ✅ Масштабируемость — знания накапливаются со временем
State Persistence
- ✅ Защита от потерь — данные сохраняются при перезапусках
- ✅ Продолжение работы — можно продолжить с последнего checkpoint
- ✅ Отказоустойчивость — система восстанавливается после сбоев
- ✅ Мониторинг прогресса — можно отслеживать прогресс в реальном времени
Рекомендации
Meta Learning
- Включайте после накопления достаточного количества тестов (минимум 5)
- Настройте
knowledge_retention_daysв зависимости от частоты изменений рынка - Используйте
similarity_thresholdдля фильтрации релевантных знаний
Transfer Learning
- Включайте для похожих задач (одинаковый тип модели)
- Используйте
use_similar_exchangesиuse_similar_pairsдля точности - Ограничьте
max_source_tasksдля производительности
State Persistence
- Настройте
checkpoint_intervalв зависимости от длительности тестов - Используйте
retention_daysдля управления размером БД - Включите автоматическую очистку истекших checkpoint’ов
Мониторинг
Метрики Meta Learning
- Количество сохраненных знаний
- Количество применений знаний
- Улучшение результатов при использовании знаний
Метрики Transfer Learning
- Количество найденных похожих задач
- Ускорение сходимости (сравнение с baseline)
- Качество переноса знаний
Метрики State Persistence
- Количество сохраненных checkpoint’ов
- Количество восстановлений
- Размер БД состояний
Troubleshooting
Meta Learning не сохраняет знания
Проверьте:
- Включен ли
meta_learning.enabled - Настроен ли StateStorage
- Есть ли доступ к БД состояний
Transfer Learning не находит похожие задачи
Проверьте:
- Есть ли завершенные тесты с тем же типом модели
- Настройки
use_similar_exchangesиuse_similar_pairs - Пороги схожести в конфигурации
Checkpoint’ы не восстанавливаются
Проверьте:
- Включен ли
state_management.enabled - Правильность
test_idпри восстановлении - Наличие checkpoint’ов в БД