Один из самых простых и понятных учебников по созданию приложений RAG

构建RAG应用最简单易懂的教程之一
ChatGPT Появление ИИ стало важным моментом, который позволил компаниям придумать новые сценарии применения и ускорил внедрение ИИ в этих компаниях. В корпоративном пространстве типичным приложением является предоставление пользователям возможности общаться с чат-ботами и получать ответы на вопросы, основанные на внутренней базе знаний компании. Однако ChatGPT или другие большие языковые модели не обучаются на этих внутренних данных и поэтому не могут напрямую отвечать на вопросы, основанные на внутренних базах знаний. Интуитивно понятное решение - предоставить внутреннюю базу знаний модели в качестве контекста, то есть как часть подсказки. Однако большинство больших языковых моделей жетон Предел составляет всего несколько тысяч, что далеко не достаточно для того, чтобы учесть огромную базу знаний большинства организаций. Поэтому простое использование готовых больших языковых моделей не решит эту проблему. Однако для решения этой проблемы можно использовать два следующих популярных подхода по отдельности или в комбинации.

Тонкая настройка модели большого языка с открытым исходным кодом

Этот подход предполагает тонкую настройку большой языковой модели с открытым исходным кодом, например Llama2, на корпусе данных клиента. Тонко настроенная модель способна усваивать и понимать знания клиента о конкретной области, чтобы отвечать на соответствующие вопросы без дополнительного контекста. Однако стоит отметить, что корпорации многих клиентов имеют ограниченный объем и часто содержат грамматические ошибки. Это может стать проблемой при тонкой настройке больших языковых моделей. Тем не менее, были получены обнадеживающие результаты при использовании точно настроенной большой языковой модели в методах генерации с улучшенным поиском, о которых пойдет речь ниже.

Поиск Расширенный генерация

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

构建RAG应用最简单易懂的教程之一

Однако при создании решения с использованием вышеописанного подхода возникают определенные трудности. Производительность решения зависит от ряда факторов, таких как размер фрагментов текста, степень перекрытия фрагментов, техника встраивания и т. д., и пользователь должен сам определить оптимальные настройки для каждого из этих факторов. Ниже приведены некоторые ключевые факторы, которые могут повлиять на производительность:

Размер фрагмента документа

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

Перекрытие между соседними фрагментами

Для того чтобы информация не была жестко отрезана, при разбивке на части требуется соответствующее дублирование. В идеале необходимо обеспечить, чтобы весь контекст, необходимый для ответа на вопрос, присутствовал в полном объеме хотя бы в одном фрагменте. Однако слишком большое перекрытие, хотя и решает эту проблему, может создать новую проблему: множество перекрывающихся фрагментов, содержащих схожую информацию, что приводит к появлению результатов поиска, наполненных дублирующим контентом.

Встраиваемые технологии

Методы встраивания - это алгоритмы, преобразующие фрагменты текста в векторы, которые впоследствии сохраняются в ретривере документов. Техника, используемая для встраивания фрагментов и вопросов, определяет релевантность извлеченных фрагментов вопросу, что, в свою очередь, влияет на качество контента, предоставляемого Большой языковой модели.

поиск документов

Ретривер документов (также известный как векторное хранилище) - это база данных для хранения встроенных векторов и их быстрого извлечения. Алгоритмы, используемые для сопоставления ближайших соседей в ретривере (например, точечное произведение, косинусное сходство), определяют релевантность извлеченных фрагментов. Кроме того, ретриверы документов должны иметь возможность горизонтального масштабирования для поддержки больших баз знаний.

модель макроязыка

Выбор правильной модели большого языка - ключевой компонент решения. Выбор оптимальной модели зависит от нескольких факторов, включая характеристики набора данных и другие факторы, упомянутые выше. Чтобы оптимизировать решение, рекомендуется опробовать различные модели большого языка и определить, какая из них дает наилучшие результаты. В то время как некоторые организации с удовольствием используют такой подход, другие могут быть ограничены из-за невозможности использовать GPT4, Palm или Клод Abacus.AI предлагает множество вариантов больших языковых моделей, включая GPT3.5, GPT4, Palm, Azure OpenAI, Claude, Llama2 и собственные модели Abacus.AI. Кроме того, Abacus.AI имеет возможность тонкой настройки большой языковой модели на пользовательских данных и использования ее для методов генерации с улучшенным поиском, что позволяет использовать преимущества обоих вариантов.

Количество блоков

Некоторые вопросы требуют информации из разных частей документа или даже из разных документов. Например, для ответа на такой вопрос, как "Перечислите фильмы, в которых есть дикие животные", требуются клипы или фрагменты из разных фильмов. Иногда наиболее релевантные фрагменты могут не отображаться в верхней части векторного поиска. В таких случаях важно предоставить несколько фрагментов данных большой языковой модели для оценки и генерации ответа.

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

Решения Abacus.AI

Чтобы решить эту проблему, Abacus.AI применил инновационный подход к предоставлению пользователям возможностей AutoML. Этот подход автоматически перебирает различные комбинации параметров, включая тонкую настройку большой языковой модели, чтобы найти наилучшую комбинацию для конкретного случая использования. Помимо документации, предоставляемой пользователем, требуется набор оценочных данных, содержащий серию вопросов и соответствующие стандартные ответы, написанные вручную, которые Abacus.AI использует для сравнения ответов, полученных при различных комбинациях параметров, чтобы определить оптимальную конфигурацию.

构建RAG应用最简单易懂的教程之一

Abacus.AI генерирует следующие метрики оценки, и пользователь может выбрать предпочтительные метрики, чтобы определить, какая комбинация работает лучше всего.

Оценка BLEU

Оценка BLEU (Bilingual Evaluation of Alternatives - двуязычная оценка альтернатив) - это широко используемая метрика автоматизированной оценки, которая в основном применяется для оценки качества машинных переводов. Она призвана обеспечить количественную оценку качества перевода, которая в значительной степени коррелирует с человеческими оценками.

Показатель BLEU определяется путем сравнения перевода-кандидата (перевода, выданного машиной) с одним или несколькими эталонными переводами (переводами, созданными человеком) и вычисления степени совпадения n-грамм между переводом-кандидатом и эталонным переводом. В частности, оценивается степень точного совпадения n-грамм (т. е. последовательностей из n слов) в переводах-кандидатах и эталонных переводах.

Оценка METEOR

Оценка METEOR (Metrics for Evaluating Explicitly Ordered Translations) - еще одна метрика автоматической оценки, широко используемая для определения качества машинных переводов. Она призвана компенсировать некоторые недостатки других оценочных показателей, таких как BLEU, в частности за счет введения явного соответствия порядка слов и учета синонимов и просодии.

Показатель BERT

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

Оценка ROUGE

Баллы ROUGE (Recall-Oriented Alternatives for Summary Evaluation) - это набор автоматизированных оценочных показателей, широко используемых в обработке естественного языка и резюмировании текстов. Изначально эти метрики были разработаны для оценки качества систем обобщения текстов, но теперь они широко используются и в других областях, таких как машинный перевод и генерация текстов.

Оценка ROUGE измеряет качество созданного текста (например, резюме или перевода) путем сравнения его с одним или несколькими эталонными текстами (как правило, резюме или переводами, созданными человеком). В первую очередь он измеряет степень совпадения n-грамм (т. е. последовательностей из n слов) и последовательностей слов между текстом-кандидатом и эталонным текстом.

构建RAG应用最简单易懂的教程之一

Каждая из этих оценок варьируется от 0 до 1, при этом более высокие показатели свидетельствуют о лучшей работе модели. С помощью Abacus.AI вы можете опробовать несколько моделей и метрик, чтобы быстро найти ту, которая лучше всего подходит для ваших данных и конкретного приложения.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...