Начал плотно заниматься своим проектом. Задача — поднять всю связку с RAG, и на этом пути уже накопилось несколько мыслей, которыми хочу поделиться.
Первые шаги: локальный ИИ и база данных
Итак, что сделано. Поставил локальный ИИ, поставил БД-шку и начал разбираться, как вообще работает RAG. Оказалось, что эмбединги — это, по сути, индексы, по которым пробегает эмбединг промта и собирает то, что подходит. И как бы сразу понял, что для качественной векторной БД никуда не деться без чанкинга — разбития на смысловые блоки.
Суть RAG и проблема чанкинга
Причём в учебной сессии рекомендации от нейросети были в том, чтобы разбивать текст просто кусками, обычным JS-скриптом. Но я до сих пор крепко думаю, что надо делать это с помощью ИИ — он справится сильно, сильно лучше.
Потому как смыслы — это его тема. Можно заморочиться с промтом, который всю эту историю сразу попилит. А потом мы это всё сохраним в БД.
Почему ИИ для чанкинга — это не оверинжиниринг
Да, можно и просто скриптом. Но есть идея, как сделать процесс умнее и даже обучаемым. Например, можно будет посмотреть, где модель эталонно попилила на чанки, и потом в промте говорить: «вот это гуд, а это не очень». И даже сам процесс чанкирования, типо, допилить. Это пока на уровне идей, но звучит перспективно.
Архитектурный подход: микросервисы и «сырьё»
В итоге вырисовывается такая архитектура. Процесс будет в несколько ступенек.
- Хранение «сырья». Можем и сами страницы целиком хранить, типо, пусть будут как сырьё. Возможно, в будущем появятся более крутые ИИ и другие подходы к эмбедингу, и я смогу более, что ли, правильно сделать эмбединги. Да и хранить эти страницы ничего по сути не стоит. Там пусть гиг в год, и то не накопится, это не то, на чём стоит экономить.
- Надёжность. С учётом того, что один шаг — это сохранение целого текста, лучше так и сделать. Это будет безопаснее и надёжнее. А то если там где-то что-то упадёт на следующих этапах, у меня будет исходник.
- Микросервисы. Короче, будет микросервисная архитектура. Вот есть сервис, который отвечает просто за сохранение в БД. В целом самостоятельная, здоровая история даже для того же фрирайтинга. Кому не нужны там ИИ — ну, типо, сиди да пиши всё в БД, копи.
- Сервис эмбедингов. А вот уже другой, типо, микросервис. Это история с эмбедингами. Он принимает там базу как есть, пилит на чанки и делает для них эмбединги. И по сути, он может тоже работать локально, вообще, типо, ни от чего не зависит. Есть вход — сделал эмбединг, сохранил в БД.
Пилить то прямо на разные БД, наверное, не стоит. Но как минимум, одна сущность может быть, чтобы чанки ссылались на индекс исходной записи, ну, типо, на всякий случай.
Главный принцип: сначала MVP, потом оптимизация
Всё это пока на уровне идей. Сейчас надо поднять всю связку страницы — RAG хоть как-то, а потом уже допиливать, оптимизировать. А то будет красивая модель на словах, а на деле — ничего.

Добавить комментарий