Как сделать AI умнее: 3 метода улучшения RAG, которые работают даже в медицине
Продолжая тему AI-ликбеза, которую мы начали здесь, хочу рассказать про разный тюнинг RAG, который сделает вашу модельку умнее.
1. Query Expansion – расширение запроса, чтобы AI понял пользователя.
Запрос "ноутбук для дизайнера" может означать кучу всего:
· Высокое разрешение экрана?
· Мощная видеокарта?
· Цветопередача?
· Поддержка стилуса?
Если RAG ищет только по ключевым словам, он может не найти нужные модели или показать нерелевантные.
Решение:
Query Expansion → AI автоматически добавляет синонимы и уточняющие термины.
Например, запрос "ноутбук для дизайнера" превращается в:
"Модели с экраном 100% sRGB, мощной видеокартой, поддержкой Adobe и высоким разрешением".
2. Adaptive Chunking – нарезаем тексты на осмысленные куски.
Допустим, AI ищет ноутбуки по их карточкам товаров, но каждая карточка – это большой неструктурированный текст. В нём есть характеристики, маркетинговые описания, отзывы, рекомендации – но где именно нужная информация, непонятно.
Решение:
Adaptive Chunking → вместо фиксированных блоков по 512/1024 токена нарезаем текст по смыслу.
Например, карточку товара можно разделить на:
· Характеристики (экран, процессор, видеокарта).
· Плюсы и минусы (из отзывов).
· Сравнение с конкурентами.
3. Fusion – объединяем данные в единый смысловой ответ.
AI-консультант может найти несколько моделей ноутбуков, но если просто показать их описания, это неудобно читать.
Решение:
Fusion → AI сравнивает найденные товары и объединяет результат.
Например, если клиент спрашивает «Какой ноутбук лучше для дизайнера?», AI вместо тупого копирования характеристик объясняет разницу между моделями. Он может сказать:
📌 «MacBook Air M2 подойдёт для работы с графикой, но не предназначен для 3D-рендеринга. ASUS ROG Strix мощнее за счёт дискретной видеокарты, но тяжелее и менее автономен. Если вам важна портативность – выбирайте MacBook, если производительность – ASUS.»
Как мы использовали это в AIST.
Корпус текстов по препарату – это сотни страниц научных исследований, клинических случаев и рекомендаций.
· Разные исследования называют одно и то же свойство разными словами → модель не всегда находила нужные статьи.
· Внутри статьи информация разбросана по разным разделам → модель иногда подтягивала ненужные фрагменты.
· Встречались противоречивые данные, и AI мог запутаться, что выводить в ответ.
В какой-то момент мы поняли что бороться с этими проблемами инструкцией не возможно, помучали ChatGpt и обнаружили:
1) MeSH – вы офигеете, но существует база медицинских синонимов.
Мы нашли штуку, которая уже хранит все медицинские синонимы и термины – MeSH (Medical Subject Headings).
Что мы сделали? Прикрутили её к Query Expansion, и вуаля!
Теперь если врач спрашивает "Как препарат влияет на сосуды?", модель ищет не только по слову "сосуды", но и по всему набору терминов:
· "Сосудорасширяющий эффект"
· "Ангиопротекторное действие"
· "Эндотелиальная функция"
2) Chunking – тут мы в принципе сами допёрли, что надо нарезать статьи не абы как, а на осмысленные кусочки, до того как узнали этот термин.
В медицине статьи длинные, но важно тянуть не всё подряд, а только нужное.
Разбили статьи на:
· Abstract (аннотация)
· Results (ключевые результаты)
· Side Effects (побочные эффекты)
Теперь, если модель ищет побочные эффекты, она не берёт "Методы исследования" или "Обсуждение", а только нужные данные.
3) Fusion – пока тестируем разные подходы.
Научные исследования часто противоречат друг другу.
Например:
В одном исследовании препарат снижает риск осложнений.
В другом – не оказывает влияния.
Собственно сейчас мы тестируем разные подходы к Fusion в med:
Выявление противоречий → AI смотрит, есть ли противоположные выводы.
Склеивание данных → если несколько исследований говорят одно и то же, Fusion делает сводный вывод.
Добавление комментариев → модель пишет "Исследования расходятся, возможные причины: размер выборки, методология".
Кстати вот тут можно почитать про то как ещё прокачать работу с RAG для сфер с более нагруженными по смыслу базами знаний.