Pull to refresh

Comments 16

Сказка отлично объясняет базовую архитектуру RAG и баланс между скоростью и точностью.

Можно добавить. Эмбеддинги + векторный поиск. Гибридный поиск, метаданные, иерархические чанки. Ретривер + реранкер. Метрики качества и оценки. Индексы (HNSW, IVF). Мониторинг, обновления данных, права доступа.

В общем, команда сказочных героев пополниться новыми персонажами.

Спасибо! Бобёр Метрикант с зеркалами, наверное, уже строит себе нору где то в архиве Филина Палыча. Сделаю вторую часть, если первая понравится аудитории. Идея была в том, чтобы объяснить RAG как можно проще и чтобы объяснение запомнилось.

Суть статьи: RAG строится на двух этапах:

  1. Быстрый этап: ANN-индекс (IVF/HNSW) — находит похожие фрагменты среди огромного объема данных (жертвуя точностью ради скорости).

  2. Точный этап: Реранкер (кросс-энкодер) — перепроверяет и сортирует найденное, отбрасывая нерелевантные данные (жертвуя скоростью ради точности на финальном отрезке).

Да, верно. Это комплимент или вы тестируете, внимательно ли я читаю комментарии? :)

Вдруг кто-то захочет почитать целиком, но сомневается, стоит ли

Как раз последнее время пытаюсь сделать как в сказке (точность и скорость), тестирую на локальной модели text-embedding-qodo-embed-1-1.5b. Может подскажете локальные варианты получше (для кодовой базы), если есть?

Если говорить про локальные модели для кода я пробовала Nomic Embed v2 (137M) и Snowflake Arctic Embed S (33M). Обе работают на CPU, качество хорошее, бесплатные, Nomic чуть точнее, Arctic быстрее. Для кода ещё важно не просто эмбеддинг, а гибрид с BM25, иначе имена переменных теряются.У меня в итоге встала связка: Arctic + BM25 + HNSW. А вы на чём сейчас тормозитесь на скорости или на точности?

Я пока ещё в процессе, подтягиваюсь точность. У меня смысл такой, emb модель индексирует репозиторий, поверх неё работает qwen coder instruct раскладывая всё по полочкам, что бы с этими данными можно было работать предметно (запросил какую-то сущность и к примеру её api слой, и мгновенно получил точную выборку) , а python валидирует, пока что результаты качества 0.75 — 0.8. Когда добью до 0.95 хотя бы, буду уже оптимизировать.

Основная цель снизить расход токенов и контекстного окна для всяких Claude, Gpt и так далее. Что бы они не занимались сканированием и чтением сырых данных, а передавали эадачи в локальный инструмент, а на выходе получали сжатую и точную информацию для разработки

Собственно, поэтому и спрашиваю о "лучшей" emb модели, что бы исключить вариант не точности по её причине и сконцентрироваться на тюннинге валидатора

Смотри, из локальных моделей для кода сейчас лучше всего посмотреть на Jina Code Embeddings (версия 0.5B или 1.5B) и BAAI/bge m3. Jina специально обучена на коде и по тестам показывает очень высокую точность, выше многих аналогов. bge m3 чуть тяжелее, зато умеет одновременно плотный и разреженный поиск. Обе подходят, чтобы исключить эмбеддинги из списка проблем и заняться валидатором. Там уже что больше понравиться.

Спасибо за информацию, сделаю сравнительные тесты

WilliamSong/qwen3-embedding-0.6b

Эту модель я использую сейчас

Ну... скажем так. Если вы хотите выжать максимум точности берите Jina или bge‑m3. А если попроще и постабильнее.. то оставляйте Qwen. Опять же имхо.

Потерял доступ к акку Хабра, прошел целый квест по восстановлению чтобы поставить плюсик ) Даже не сколько за сам материал (подача классная, интересная, для начинающих самое то), но мне прям дико полезны были ссылки на использованную литературу. Полгода как "вкатываюсь" в ИИ-шечку, как-то не додумался до этого поста читать прям статьи, второй вечер зачитываюсь. Спасибо за наводку!

Спасибо огромное! :-) Я прямо растрогалась, восстанавливать доступ ради плюсика, это сильно. Очень приятно, что ссылки пригодились. Удачи вам во вкатывании!

Sign up to leave a comment.

Articles