OpenAI RAG против вашего настроенного RAG: что лучше?
Этот пост изначально был опубликован на The New Stack и перепечатан здесь с разрешения.
Недавнее появление функции retrieval в OpenAI Assistants вызвало значительные обсуждения в AI-сообществе. Эта встроенная функция включает возможности Retrieval Augmented Generation (RAG) для ответов на вопросы, позволяя языковым моделям GPT обращаться к дополнительным знаниям, чтобы генерировать более точные и релевантные ответы. В предыдущем посте мы рассмотрели ограничения встроенного RAG retrieval в OpenAI и обсудили ситуации, в которых создание кастомизированного решения для retrieval может быть полезным.
В этом посте мы глубже погрузимся в эту тему, сравнив производительность OpenAI RAG с кастомизированным RAG, построенным на векторной базе данных, такой как Milvus. Мы оценим сильные и слабые стороны и нюансы каждого подхода и в итоге ответим на ключевой вопрос: что лучше?
Что такое Retrieval Augmented Generation (RAG)?
Прежде чем оценивать встроенный RAG OpenAI и кастомизированные RAG-системы, давайте начнем с понимания того, что такое RAG.
RAG, или Retrieval Augmented Generation, — это AI-фреймворк, который извлекает факты из внешней базы знаний, чтобы гарантировать, что большие языковые модели (LLMs) опираются на максимально точную и актуальную информацию. Типичная RAG-система включает LLM, векторную базу данных, такую как Milvus, и некоторые промпты в виде кода.
Инструмент оценки RAG: Ragas
Оценка производительности RAG — сложная задача. Нам нужен справедливый и объективный инструмент оценки RAG, чтобы оценивать несколько метрик на подходящем наборе данных, обеспечивая воспроизводимые результаты.
Ragas — это open-source фреймворк, предназначенный для оценки производительности RAG-систем. Он предоставляет набор оценочных метрик, которые измеряют различные аспекты RAG-системы, чтобы дать всестороннюю и многостороннюю оценку качества RAG-приложений.
В этом посте в качестве основных метрик для оценки OpenAI RAG и наших кастомизированных RAG-систем будут использоваться faithfulness, answer relevancy, context precision, answer similarity и answer correctness.
Faithfulness: Оценка фактической точности сгенерированного ответа в данном контексте.
Answer Relevancy: Оценка релевантности сгенерированного ответа вопросу.
Context Precision: Соотношение сигнал/шум в извлеченном контексте.
Answer Correctness: Оценка точности сгенерированного ответа по сравнению с эталонным ответом.
Answer Similarity: Оценка семантического сходства между сгенерированным ответом и эталонным ответом.
См. документацию Ragas для получения более подробной информации о Ragas и всех метриках.
Набор данных для оценки RAG: FiQA
Мы выбрали набор данных Financial Opinion Mining and Question Answering (FiQA) для нашей оценки. Этот набор данных обладает несколькими характеристиками, которые делают его идеальным для нашей оценки, включая:
Он содержит узкоспециализированные финансовые знания, которые вряд ли присутствуют в обучающих данных моделей GPT.
Изначально он был разработан для оценки возможностей Information Retrieval и, таким образом, предоставляет хорошо аннотированные фрагменты знаний, которые служат стандартными ответами (ground truth).
Ragas и его сообщество широко признали FiQA как стандартный вводный тестовый набор данных.
Настройка RAG-системы
Теперь давайте создадим две RAG-системы для сравнения: OpenAI RAG и кастомизированную RAG на базе векторной базы данных Milvus.
Настройка OpenAI RAG
Мы создадим RAG-систему с использованием OpenAI Assistants, следуя официальной документации OpenAI, включая создание Assistants, загрузку внешних знаний, извлечение контекстной информации и генерацию ответов. Все остальные настройки останутся по умолчанию.
Настройка кастомизированной RAG с использованием Milvus
Мы должны вручную настроить кастомную RAG-систему с использованием векторной базы данных Milvus для хранения внешних знаний. Мы будем использовать `BAAI/bge-base-en` от HuggingFace в качестве модели эмбеддингов, а также различные компоненты LangChain для импорта документов и создания агента.
Подробную информацию см. в этом пошаговом руководстве.
Сравнение конфигураций
Мы обобщаем детали конфигурации двух RAG-систем в таблице ниже. Для получения дополнительной информации см. наш код реализации.
| OpenAI RAG | Кастомизированная RAG | |
|---|---|---|
| Модель LLM | gpt-4-1106-preview | gpt-4-1106-preview |
| Векторная БД | Не раскрывается | milvus |
| Модель эмбеддингов | Не раскрывается | BAAI/bge-base-en |
| Размер чанка | Не раскрывается | 1000 |
| Перекрытие чанков | Не раскрывается | 40 |
| topk | Не раскрывается | 5 |
| Использование агента | Да | Да |
Таблица: Сравнение конфигураций OpenAI RAG и кастомизированной RAG
Как показано в таблице выше, обе RAG-системы используют `gpt-4-1106-preview` в качестве модели LLM. Кастомизированная RAG использует Milvus как векторную базу данных. Однако OpenAI RAG не раскрывает свою встроенную векторную базу данных или другие параметры конфигурации.
Результаты оценки и анализ
Используя Ragas, мы оценили обе RAG-системы по нескольким метрикам, включая точность контекста, достоверность, релевантность ответа, сходство и корректность. Диаграмма ниже показывает экспериментальные оценки, которые мы получили от Ragas.
Хотя система OpenAI RAG немного превзошла кастомизированную RAG-систему на базе Milvus по сходству ответов, она отстала по другим важнейшим метрикам, включая точность контекста, достоверность, релевантность ответа и корректность ответа.
Ragas также позволяет сравнивать две RAG-системы с использованием Ragas Scores — среднего значения, генерируемого путем вычисления гармонического среднего различных метрик. Гармоническое среднее используется для штрафования элементов с низкими оценками. Чем выше Ragas Scores, тем лучше общая производительность RAG-системы. Диаграмма ниже показывает Ragas Scores двух RAG-систем.
Как показано на диаграмме, кастомизированная RAG-система на базе Milvus имеет более высокие Ragas Scores, чем система OpenAI RAG.
В заключение, кастомизированная RAG-система на базе Milvus превзошла систему OpenAI RAG по Ragas Scores и другим важнейшим метрикам, включая точность контекста, достоверность, релевантность и корректность ответа.
Почему кастомизированная RAG превосходит встроенную RAG OpenAI?
В результате множества отдельных сравнений мы обнаружили, что кастомизированный RAG-конвейер на основе векторной базы данных работает лучше, чем RAG-система на базе OpenAI Assistants. Почему? Вот некоторые из наиболее важных причин.
OpenAI Assistants полагаются на внутренние знания предварительного обучения, а не на внешние знания.
Из-за своей внутренней агентной настройки ассистенты OpenAI больше полагаются на предварительное обучение, чем на загруженные знания. Например, когда их спросили об уроках личных финансов в старших классах, система OpenAI RAG предоставила ответ, который опирался на что-то иное, чем эталонная истина.
| Вопрос | Преподаются ли где-либо в старших классах занятия по личным финансам/управлению деньгами? |
|---|---|
| Ответ системы OpenAI RAG | Занятия по личным финансам и управлению деньгами действительно преподаются в некоторых старших школах, хотя доступность и обязательность таких занятий могут сильно различаться в зависимости от страны и даже внутри регионов одной страны. Например, в Соединенных Штатах Council for Economic Education (CEE) проводит опросы и публикует отчеты о финансовом образовании в школах K-12. Их результаты показывают, что на момент моего последнего обновления все больше штатов включают личные финансы в свои образовательные стандарты, а некоторые обязали учащихся пройти курс личных финансов для выпуска. Хотя у меня нет доступа к актуальной базе данных или самым последним исследованиям, информацию о финансовом образовании в школах часто можно найти, если: 1. Проверить государственные образовательные сайты. 2. Посмотреть отчеты некоммерческих организаций и советов по финансовому образованию. 3. Связаться с местными школьными советами или департаментами образования. Если вас интересуют конкретные места или у вас есть определенный фокус, вы можете уточнить это, чтобы я мог предоставить более точную информацию, если она доступна. |
| Ответ настроенной системы RAG | Занятия по личным финансам и управлению деньгами действительно преподаются в некоторых старших школах, но доступность и требования к таким занятиям могут сильно различаться. Например, в Хьюстоне, штат Техас, частная старшая школа предлагала факультативный полусеместровый курс по личным финансам, который не давал кредитов для выпуска. Staples High School в Уэстпорте, штат Коннектикут, ввела курс управления личными финансами, ориентированный на использование математики для развития навыков финансовой грамотности, охватывающий такие темы, как доходы, банковское дело, кредитные карты, займы, налоги, страхование, инвестирование, бюджетирование и покупка личного имущества. Государственные школы в Анн-Арборе, штат Мичиган, предлагали курс 'civics', который включал базовые темы управления деньгами. Кроме того, в Великобритании рамочная программа 'Every Child Matters' включает 'achieving economic well-being' как важный элемент, и некоторые школы используют School Rewards System, чтобы обучать детей финансам и экономике. Хотя эти примеры показывают, что такие занятия существуют, они не являются повсеместно обязательными или стандартизированными, а глубина и направленность учебной программы могут различаться. |
| Эталонная истина в наборе данных | В Хьюстоне, штат Техас, США, где я учился в частной старшей школе, у них был полусеместровый курс по личным финансам, но он был факультативным и не давал никаких кредитов для выпуска. Хотя вы правы, это должен быть стандартный курс. В конце концов, кому не нужна такая информация во взрослой жизни, и не все поступают в колледж." ... У нас был курс "civics", когда я был первокурсником в старшей школе. Это было в государственных школах Анн-Арбора, штат Мичиган. Он охватывал самые основы (как вести баланс чековой книжки, что такое акции, как работают подоходные налоги, что такое проценты и т. д.) управления деньгами наряду с обзором политики и правовой системы. Это был действительно легкий курс, однако, и он не углублялся в личные финансы и управление деньгами. Я согласен, что такой курс был бы очень ценным, как и кулинария, питание, а также базовый ремонт дома и автомобиля. |
Хотя ответ системы OpenAI RAG не является неправильным, ему не хватает конкретики, а признание того, что она не имеет доступа к последним исследованиям, указывает на неполное использование знаний из загруженного документа. В отличие от этого, система Customized RAG предоставляет более точный ответ, бесшовно интегрируя конкретную информацию из эталонных данных. Это сравнение демонстрирует превосходную способность customized RAG эффективно использовать внешние данные, выделяя её как более надёжное и компетентное решение.
Customized RAG лучше справляется с сегментацией документов и извлечением данных, чем OpenAI RAG
Стратегия сегментации знаний и recall в OpenAI, возможно, нуждается в оптимизации. Иногда извлечённый фрагмент оказывается недостаточным, например, предоставляет только 'PROS: CONS' для вопроса об инвестициях в IRA. В отличие от этого, Customized RAG Pipeline отлично справляется с recall релевантных фрагментов, предлагая более полный ответ.
| Вопрос | Плюсы/минусы более активного участия в инвестициях IRA |
|---|---|
| Фрагмент, извлечённый OpenAI RAG | ['PROS: CONS'] |
| Фрагмент, извлечённый Customized RAG | ['in the tax rate, there's also a significant difference in the amount being taxed. Thus, withdrawing from IRA is generally not a good idea, and you will never be better off with withdrawing from IRA than with cashing out taxable investments (from tax perspective). That's by design."' "Sounds like a bad idea. The IRA is built on the power of compounding. Removing contributions will hurt your retirement savings, and you will never be able to make that up. Instead, consider tax-free investments. State bonds, Federal bonds, municipal bonds, etc. For example, I invest in California muni bonds fund which gives me ~3-4% annual dividend income - completely tax free. In addition - there's capital appreciation of your fund holdings. There are risks, of course, for example rate changes will affect yields and capital appreciation, so consult with someone knowledgeable in this area (or ask another question here, for the basics). This will give you the same result as you're expecting from your Roth IRA trick, without damaging your retirement savings potential." "In addition to George Marian's excellent advice, I'll add that if you're hitting the limits on IRA contributions, then you'd go back to your 401(k). So, put enough into your 401(k) to get the match, then max out IRA contributions to give you access to more and better investment options, then go back to your 401(k) until you top that out as well, assuming you have that much available to invest for retirement." "While tax deferral is a nice feature, the 401k is not the Holy Grail. I've seen plenty of 401k's where the investment options are horrible: sub-par performance, high fees, limited options. That's great that you've maxed out your Roth IRA. I commend you for that. As long as the investment options in your 401k are good, then I would stick with it." "retirement plans which offer them good cheap index funds. These people probably don't need to worry quite as much. Finally, having two accounts is more complicated. Please contact someone who knows more about taxes than I am to figure out what limitations apply for contributing to both IRAs and 401(k)s in the same year."] |
OpenAI Assistants извлекли ложный фрагмент. В отличие от этого, Customized RAG извлекла более релевантные фрагменты, предложив более полный ответ, соответствующий нюансам вопроса.
Другие причины
OpenAI Assistants не позволяет пользователям настраивать параметры в RAG pipeline для кастомизации или оптимизации. Однако с customized RAG пользователи получают полную гибкость для настройки и оптимизации.
У OpenAI Assistants есть ограничения на хранение файлов, тогда как кастомизированный RAG на базе Milvus может быстро масштабироваться без верхнего предела, что делает его лучшим вариантом для пользователей, которым требуется больший объем хранилища.
Заключение
В заключение, наше всестороннее сравнение и анализ с использованием инструмента оценки Ragas подчеркивают сильные и слабые стороны OpenAI RAG и кастомизированного RAG на основе векторной базы данных, такой как Milvus. Хотя RAG от OpenAI хорошо справляется с поиском, кастомизированный RAG превосходит его по качеству и релевантности ответов, полноте поиска и многим другим аспектам. Разработчики, которым нужны мощные и эффективные приложения RAG, сочтут гибкость и возможности RAG-решения на основе векторной базы данных предпочтительными для достижения лучших результатов.
Читать далее

We spent 8 years making vector databases faster. Then we stopped.
Rarely queried embeddings still need to stay searchable. See how Vector Lakebase enables on-demand vector search without always-on compute costs.

3 Easiest Ways to Use Claude Code on Your Mobile Phone
Run Claude Code from your phone with Remote Control, Happy Coder, or SSH + Tailscale. Comparison table, setup steps, and tools for typing, memory, and parallel tasks.

AI Integration in Video Surveillance Tools: Transforming the Industry with Vector Databases
Discover how AI and vector databases are revolutionizing video surveillance with real-time analysis, faster threat detection, and intelligent search capabilities for enhanced security.



