Попался мне на просторах интеренета любопытный фреймворк superduperdb. По сути это не большой и амбициозный проект для тренировки, разработки и использования нейросетей. Сама идея не новая. Но именно этот мне стало любопытно поковырять.
Его преимущества - он небольшой, устанавливается пакетом, умеет в Dask. Интегрируется с основными фреймворками для нейросетей и машинлёрнинга. Фреймворк берет на себя задачу (инкапсулирует) работу с данными - сохранение и загрузка датасетов и моделей (О.о! ), выполнение обучения, в том числе распределённого.
При разработке решения с помощью нейроннойсети с нуля очень много задач связанных с получением данных, очисткой данных, приведение к определённому виду, кодирование фич и прочее, а также разработка самой структуры нейронной сети. Мне было любопытно изучить этот процесс с нуля и я пробовал с нуля натренировать нейронку на задачу прогнозирования. Ещё на Keras. и вот у меня были огроменные портянки кода с получением данных из бд, формирование фич, очистки смены формата данных и прочее. Процентов 30% кода занимало чтение \ сохранение данных и промежуточных результатов. Вот такой фреймворк был бы очень полезен.
Обзор
Фреймворк умеет в разные базы ( я использовал рекомендуемую Mongodb ). Там есть абстракция Collection для работы с данными и интерфейс типа crud + like поиск. Автоматичекое разбиение на тест-трейн-валид подмножества.
Следующая абстракция - модель. Может быть как торч модель надстройка над торчём, так и skit-learn. Полный набот интеграций: PyTorch, HuggingFace, transformers, Scikit-Learn, Sentence-Transformers, OpenAI, Cohere, Anthropic. Полный фарш того что сейчас на гребне волны. Интерфейс знакомый с SKlearn fit - predict.
Ну и то что порадовало так это наблюдатель за бд. а точнее за новыми данными, то есть при вставке в коллекцию нового элемента можно свободно запустить прогноз. Фреймворк вытаскивает из базы модель инициализирует и запускает прогноз.
Ну и вишенка на торте - Dask distributed! Это подключение фрейморка dask для выполнения обучения прогноза распределённо при необходимости.
Я планирую эту штукенцию использовать для тренировке нейронки дома на 2х копах на гпу, у меня по 4gb. Для полноценной работы с изображениями маловато но для какой-никакой прогнозной модельки рынка акций думаю пойдёт.
В другой статье расскажу по опыту запуска этой штуки с кодом и примерами.
В завершении поделюсь впечатлением.
В целом позитивное, сам проект кажется только на старте, основной функционал - работает, но не хватает документации. Есть рабочие актуальные примеры они помогают. Когда я затаскивал все в связке пришлось шариться по репозиторию, код открытый на гите. Пока сыроват код, но это нормально для старта. Запустить тренеровку мне удалось на одно машине, а вот распределённо пока нет, обходной путь нашёл но пока не завелось. Об этом подробнее позже напишу отдельно.
Дальше
Планирую опубликовать мой минимальный рабочий пример для регрессии, докер файлы + немного кода, там торч модель тренирока и тест.
Ссылки