TGViewer
Dev Easy Notes Dev Easy Notes @dev_easy_notes · 2.91K subscribers
Post #585 2.09K
Ну что, те кто хотел сделали каминг аут, поэтому давайте двигаться дальше.

Что такое RAG?

RAG (Retrieval Augmented Generation) – переводится букально как генерация с дополнением извлечением. Чего извлекается, дополняется и генерируется давайте раскидаем.

Самая дефолтная задача для RAG это сделать ИИ бота который например отвечает по документации вашего продукта. Базовая LLM очень хорошо умеет работать с текстом, выдавать суть генерить примеры и не огрызается. Однако есть проблема, LLM ничего не знает о нашем продукте. Есть два путя как решить эту проблему:

1. Дообучить модель
2. Взять вообще всю доку по нашему проекту и отправлять ее на каждый запрос

Как сказал бы солист группы Бредорс, шо то очень хорошо, шо это не то чтобы круто. В первом это просто прям дорого, во втором случае зависит от размеров доки, но даже если дока небольшая точность ответов скорее всего будет так себе. Поэтому на сцену выходит RAG.

Что если не отправлять нейронке не всю доку, а только релевантные страницы? И LLM будет отвечать точнее, и мы не потратим кучу токенов и деняк на дообучение. Как это сделать?

Берем нашу доку, режем на части, затем отправяем в embedder. Embedder – модель которая из текста нашей доки сделает числовые вектора, грубо говоря вектора смыслов. Далее эти вектора мы кладем в специальную векторную базу, которая умеет круто их индексировать.

Далее происходит следующее, мы получаем запрос от пользователя, преобразуем вопрос в вектора при помощи того же Embedder'а затем используя этот вектор запроса находим ближайшие вектора в нашей векторной базе. Так как речь идет именно о смысловых векторах, но вероятнее всего полученные вектора будут ближе к тому о чем спрашивает пользователь. Векторая база рядом с векторами также хранит и текст из которых этот вектор был получен, поэтому мы в итоге получаем части текста нашей доки – чанки.

Далее из текста запроса и чанков мы генерим промпт для LLM. При обновлении доки мы должны опять нарезать ее на части и отправить в Embedder, т.е проиндексировать короче. Таким образом убиваем двух зайцев и модель не нужно дообучать и токенов много не тратится.

Разумеется в теории все просто но на практике начинаются приколы: как подобрать Embedder, какую базу выбрать, какие параметры для базы подобрать, какую модель выбрать и еще куча всего. Также желательно иметь свой бенчмарк с запросами ответами чтобы от версии к версии проверять не ухудшилась ли выдача системы.
  • 🔥 21
  • ❤ 3
More from @dev_easy_notes
  1. Sep 24, 2026На всякий случай напомню напомню, если такую хуйню видите, сразу в бан кидаете. Вы скорее…
  2. Aug 4, 2026Короче, поясню, я давно ничего не пишу, потому что заебался) возможно я скоро вернусь, как…
  3. Aug 4, 2026Post #596
  4. Apr 17, 2026Меня вот что еще дико бесит, через год я буду уже как 10 лет в индустрии и все равно, кажд…
  5. Apr 15, 2026video post
  6. Apr 9, 2026Как оценить работу модели? Часто вижу высказывания в стиле: вот новый клод стал тупее, или…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →