Новый год — это идеальное время для перезагрузки и новых начинаний. Это уникальная возможность не только подвести итоги прошедшего года, но и заложить фундамент для будущих достижений. Если вы давно мечтали о собственном проекте в области машинного обучения, сейчас самое подходящее время, чтобы воплотить эту идею в жизнь.
Я и сам когда‑то запустил свой собственный pet‑проект, который очень помог в моей карьере. Подробнее об этом я написал в своём telegram‑канале.
Сегодня я хочу поделиться с вами списком своих текущих идей, которые вдохновят вас на создание чего‑то крутого и полезного. Я убежден, что реализация хотя бы одного из этих проектов прокачает ваше резюме и поможет в получении желанной должности или повышению в 2025 году. Не откладывайте на потом. Выберите идею, которая вас вдохновляет, и начинайте действовать.
дисклеймер: представленные здесь проекты являются плодом моего творческого воображения и основаны на личном опыте. Я постарался описать процесс реализации каждой идеи, однако хочу отметить, что предложенные мной решения не всегда могут быть оптимальными.
Специальная новогодняя подборка
если начать сейчас, то к концу года можно успеть
1. Where is Дед Мороз - поиск Деда Мороза на картинке
Дед Мороз потерялся? Не волнуйся, этот проект — настоящий «компас Деда Мороза», который вычислит его местоположение даже в самом заснеженном лесу. А еще, представь, можно искать и других персонажей, котиков, единорогов... да что угодно. Фантазия — наш единственный предел.
Проект по обнаружению Деда Мороза на изображениях можно реализовать с использованием архитектуры YOLO, потому что она имеет высокую точность, скорость и простоту использования. Для достижения наилучших результатов потребуется собрать и разметить собственный датасет изображений, содержащих Деда Мороза в различных ракурсах, позах, освещении и одежде. Датасет будет включать в себя как изображения с Дедом Морозом в полный рост, так и в деталях (например, лицо, руки, мешок с подарками). Нужно использовать инструменты аннотирования изображений, например LabelImg. Каждого Деда Мороза на изображении нужно будет выделить прямоугольной областью, а также указать его класс.
После завершения обучения модель нужно протестировать на тестовой выборке, чтобы оценить её производительность. Для обеспечения высокой точности обнаружения модель YOLO можно дообучить с использованием техники transfer learning. Это позволит использовать знания, полученные моделью при обучении на оригинальных наборах данных, и адаптировать их к специфике задачи обнаружения Деда Мороза. Получившаяся модель может быть интегрирована в различные приложения, такие как мобильные приложения для поиска Деда Мороза на фотографиях, системы видеонаблюдения для автоматического обнаружения Деда Мороза на видеопотоке или веб‑сервисы для анализа изображений.
Полезные ссылки
2. Оценка объема коробки с подарком по фотографии
Представь: ты получил огромную коробку с подарком. А внутри... кто знает что? Может, роскошный торт, а может, всего лишь пара носков. Этот проект поможет разгадать тайну объема подарка по фотографии. Узнай, стоит ли ждать чего‑то грандиозного или скромно приготовиться к приятному сюрпризу.
Сперва нужно научиться определять глубину изображения, для этого нужно применить сверточную нейронную сеть (CNN), предварительно обученную на большой выборке пар «изображение‑карта глубин», для получения карты глубин входного изображения. В качестве архитектуры CNN можно рассмотреть ResNet, UNet, DenseNet, DeepLabV3+ или FPN, выбрав оптимальную в зависимости от результатов экспериментов. Важно убедиться, что обучающая выборка содержит достаточное количество изображений коробок различных форм, размеров и условий освещения.
Далее нужно локализовать коробку на изображении. Для этого воспользуемся моделью object detection, такой как YOLO, Faster R‑CNN или DeepLabV3+. Модель должна быть обучена на достаточном количестве примеров коробок различных форм и размеров.
Имея на руках карту глубины и маску сегментации, можно построить 3D‑модель коробки. Для этого можно воспользоваться функционалом библиотек OpenCV, PCL, Open3D, PyTorch3D или MeshLab. Важно учитывать возможные шумы и неточности в карте глубин и маске сегментации, которые могут повлиять на качество 3D‑реконструкции.
На полученной 3D‑модели коробки вычисляем объем, используя стандартные методы для расчета объема многогранника. При этом важно учитывать возможные неточности и погрешности, связанные с разрешением карты глубин, качеством сегментации и геометрическими искажениями. Наверняка придется калибровать решение на большом количестве реальных данных, включая различные размеры, формы коробок и условия съемки. Для повышения точности оценки объема можно рассмотреть использование нескольких изображений коробки, снятых под разными углами. Это позволит получить более полную информацию о геометрии объекта и уменьшить влияние перспективных искажений. Также можно применять методы постобработки, такие как сглаживание поверхности 3D‑модели или удаление выбросов, для улучшения качества реконструкции.
Полезные ссылки
3. Генерация необычных снежинок / генерация резов снежинок
Хочешь создать собственный шедевр, который будет таять только от восхищения? Этот проект поможет тебе сконструировать снежинку, которой нет аналогов во всей вселенной, или научит вырезать ее из бумаги так, что каждая будет шедевром.
Для начала нужно собрать набор данных, включающий как фотографии реальных снежинок, так и нарисованных изображений. Можно разделить изображения по уровням сложности, форме и размеру, и учитывать это при обучении модели.
В качестве основы будет использована какая‑либо реализация модели Stable Diffusion, которая хорошо подходит для генерации детальных изображений. Модель нужно дообучить на собранном наборе данных снежинок. Предварительная обработка данных, включающая нормализацию яркости и контраста, а также удаление шумов, улучшит качество обучения.
После генерации изображения снежинки нужно научиться проводить анализ геометрии снежинки. Тут пригодятся алгоритмы обнаружения краев и контурная сегментация, для выделения ключевых точек, определяющих форму и структуру снежинки. На основе анализа геометрических характеристик будет сгенерирована последовательность пошаговых инструкций по вырезанию снежинки. Оптимизация модели будет проводиться путем тестирования на различных типах снежинок и сравнения генерируемых инструкций с ручными инструкциями, созданными экспертами (вами). Цель — достичь высокой точности генерации изображений и ясности пошаговых инструкций.
Полезные ссылки
Актуальная подборка
4. LLM / RAG по одной конкретной книге
Представь, что ты пытаешься разобраться в запутанном сюжете "Мастера и Маргариты" Булгакова. Вместо того, чтобы перечитывать главы десятки раз, пытаясь понять мотивы Воланда, ты можешь просто... спросить его! Что он думает о людях? Какую цель преследует? Это возможно с помощью дообученных LLM или RAG pipeline – технологий, которые превращают книгу в собеседника.
Первое, что нужно сделать, это выбрать мощную LLM (Large Language Model), способную обрабатывать длинные и контекстуально сложные тексты. Важно, чтобы модель обладала хорошей способностью к пониманию естественного языка и генерации связных ответов. В выборе поможет оценка модели по позиции в лидерборде.
Следующим шагом нужно сделать векторизацию текста. Весь текст выбранного литературного произведения необходимо разбить на чанки и преобразовать их в вектора. Для этого можно использовать библиотеки, такие как transformers — выбрать open source модель и применить ее к тексту. Векторное представление позволит быстро находить наиболее релевантные фрагменты текста при ответе на запросы пользователя.
Все вектора нужно где‑то хранить, то есть нужно создать базу данных векторов. Для этого нужно выбрать специализированную базу данных, оптимизированную для поиска по векторным представлениям.
Теперь мы можем создать RAG‑пайплайн. Необходимо разработать pipeline, который будет принимать запрос пользователя, выполнять поиск релевантных фрагментов текста в базе данных векторов и передавать найденные фрагменты LLM для генерации ответа.
Полезные ссылки
https://github.com/mrdbourke/simple-local-rag/blob/main/00-simple-local-rag.ipynb
https://github.com/a-milenkin/LLM_practical_course/blob/main/notebooks/M4_RAG.ipynb
5. Голосовой дневник с транскрибацией, кластеризацией, суммаризацией
Ты когда-нибудь пытался объяснить коту, что такое «нет»? Он смотрит на тебя своими огромными глазами, мяукает и продолжает делать своё. Так же и с аудиозаписью — она хранит в себе массу информации, но понять её без помощи этого проекта просто невозможно. Он как переводчик с кошачьего, превращающий невнятные звуки в понятный текст. А потом магия анализа, категоризации и суммирования делает из этой текстовой каши чёткое и ясное блюдо.
С этим проектом будет легче, потому что можно форкнуть мой старый проект, где я реализовывал похожую идею, но без продвинутых аналитических инструментов. Ну а если захочется разобраться с самого начала самостоятельно, вот один из подходов к решению.
В первую очередь нужно преобразовать речь в текст. Для этого можно использовать open source модели Whisper. Также есть альтернативный вариант — Vosk. Тут следует ориентироваться на доступные вычислительные ресурсы и ожидаемое время на транскрибацию.
Над преобразованным текстом можно провести лингвистический анализ. Он включает выделение ключевых слов и фраз, определение синтаксических конструкций и семантических отношений. Для этого используются методы NLP, такие как Part‑of‑Speech tagging, Named Entity Recognition и Dependency Parsing. Также нужно провести классификацию по тематике с помощью ML моделей. Эти модели обучаются на больших объемах текстовых данных и способны определять общую тему аудиозаписи (текста).
С использованием LLM модели можно провести генерацию резюме. Для удобства поиска и анализа информации из текста генерируется краткое резюме (summary) с помощью методов Text Summarization. Длина резюме может регулироваться в зависимости от потребностей.
Для будущего использования можно построить отдельное векторное пространство. Текстовые данные преобразуются в векторы, которые затем используются для построения векторного пространства. Это позволяет осуществлять поиск по смыслу, а не только по ключевым словам, что значительно повышает точность и релевантность результатов поиска — когда вы захотите найти ранее записанные мысли.
Полезные ссылки
6. Тематические эмбеддинги "из коробки"
Представь: ты пишешь статью о "мем-акциях" и хочешь, чтобы AI понял всю суть этой безумной гонки за прибылью. Общие модели для эмбеддингов будут понимать только слова "акции" и "прибыль", а этот сервис – поймет весь контекст, от сарказма до иронии, от рисков до потенциальных выигрышей. В общем, этот проект даст твоему AI "очки" для чтения между строк в определенной нише, будь то финансы, медицина или даже... искусство плетения ковров.
Чтобы научиться создавать лучшие тематические эмбеддинги, нужно начать с выбора хорошей предобученной языковой модели, демонстрирующей высокое качество на задачах обработки естественного языка.
Также нужно собрать и подготовить набор данных, относящихся к предметной области, например финтеха. Данные должны быть качественными, релевантными и охватывать различные аспекты этой области.
Базовая модель дообучается на подготовленном датасете. Это позволит модели адаптироваться к специфике языка и понятий данной области. Для отслеживания прогресса дообучения и оценки качества полученных эмбеддингов необходимо разработать бенчмарк, включающий задачи, релевантные финтеху (например, классификация финансовых новостей, извлечение ключевых понятий из отчетов).
Полезные ссылки
Заключение
Помните, что идея – это лишь первый шаг. Реальная ценность рождается в процессе ее реализации. Желаю вам вдохновения и успехов!
P.S. Если вам понравится эта подборка, то я сделаю вторую часть, посвященную LLM агентам.
Комментарии (4)
iryndin
21.01.2025 14:19P.S. Если вам понравится эта подборка, то я сделаю вторую часть, посвященную LLM агентам.
Да, очень интересно, спасибо за статью! Хотелось бы видеть продолжение про LLM!
pavelsha
21.01.2025 14:19Про снежинки... Вы же помните, что снежинка - это пример фракталов?
Точно для разработки карт резов и типов снежинок нужно привлекать генеративные модели? Или наша цель натопить баньку (отогреть загородный домик)?
Ну типа как тут: https://habr.com/ru/articles/874044/
Mox
4. LLM / RAG по одной конкретной книге
- https://notebooklm.google - кажется там ловить вообще нечего, он бесплатно дает хороший UI и 50 источников к загрузке
fenrir1121
Только не работает из РФ даже с "собственным кеширующим сервером для видео".