TGViewer
ML Advertising ML Advertising @dsinsights · 1.26K subscribers
Post #380 1.19K
Тюним гипер параметры для RAG

Под капотом у RAG системы можно найти несколько различных компонентов. Причем набор и структура этих компонентов может серьезно различаться в зависимости от задачи и выбранного подхода. И каждый их этих компонентов обладает собственным набором параметров. И весь этот зоопарк надо как-то настраивать, потому что от этого сильно зависит качество поиска. Сейчас мы попробуем сформировать список гипер параметров для настройки RAG на каждом этапе

➡️ Чанки
Принимаем файлы, читаем их, разбиваем на чанки с помощью библиотеки langchain. Здесь мы можем управлять следующим
- sep: разделитель по которому мы будем шинковать файл
- chunk_size: размер чанков (в символах)
- chunk_overlap: с каким перехлестом будут делаться чанки

➡️ Bi-encoder
Конвертируем строку в вектор. Про bi-encoder важно понимать следующее
- Сколько текста он может обработать за раз, остальное будет отброшено. Если у вас длинные чанки или длинные вопросы, то вам, возможно, стоит подобрать bi-encoder с большей длиной контекста
- Какого размера вектора он возвращает. При прочих равных, чем больше длина вектора, тем больше информации в нем можно закодировать
- Также можно пробовать разные bi-encoder'ы и смотреть, какой из них лучше себя покажет

➡️ Векторная БД
Конвертируем переданные чанки в эмбеддинги и помещаем в БД, например Qdrant. При этом удаляем и вновь создаем коллекцию (аналог таблиц в реляционных БД), в которой складируем чанки. Последовательно перебираем файлы, каждый из которых делим на чанки и кладет в Qdrant

Здесь нужно обратить внимание:
- Коллекцию мы создаем такого же размера, какого размера вектора возвращает bi-encoder
- Вместе с вектором мы будем хранить сам чанк, из которого он сформирован и название файла, из которого он взят

➡️ Поиск векторов
Кодируем вопрос в вектор, далее ищем по косинусному расстоянию наиболее похожие вектора в Qdrant. Возвращаем содержимое чанков, привязанных к топ N отобранных векторов. Отсюда параметр
- n_top_cos: количество топ N отобранных векторов

➡️ LLM
Хотя LLM мы не дообучаем, но все равно можем тюнить инференс, используя следующие параметры
- max_new_tokens: максимальное количество токенов, которое будет сгенерировано LLM (не считая токены в промте)
- temperature: определяет насколько “творческим” будет ответ LLM. Чем выше значение, тем выше “творчество”
- top_k: ограничивает количество вариантов, которые модель рассматривает при генерации следующего токена

После того, как мы выделили эти параметры, то можем поручить задачу их оптимизации Optun'е
  • ❤ 2
  • 👍 1
  • 🔥 1
More from @dsinsights
  1. Oct 6, 2026OpenAI представила новый формат рекламы в ChatGPT. Объявления будут показываться во время…
  2. Oct 6, 2026DOOH Я ранее писал про отличие механизмов аукциона в программатике и наружной рекламе DOOH…
  3. Oct 3, 2026OpenAI ADS API Разбираем документацию API, что умеет реклама в ChatGPT, какие ее ограничен…
  4. Sep 14, 2026Google Ads начал открывать доступ к AI Dashboards. С помощью промптов можно собирать отчет…
  5. Aug 30, 2026Рубрика новости от Google iGaming реклама доступна в SSP Google Authorized Buyers Google о…
  6. Aug 19, 2026Late chunking в RAG В объёмных документах смысл фрагмента часто зависит от контекста. В кл…
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 →