Разработчики FractalGPT запустили QA агента для сверхточных ответов на вопросы по документам

Вышел наш первый публичный релиз FractalGPT QA агента - это более крутой аналог функционала загрузки своих pdf в ChatGPT - можно задавать вопросы по загруженным вами документам.
В частности, с помощью алгоритма Fractal answer synthesis и интерпретируемого ИИ нам удается существенно снизить % галлюцинаций и стабильно сильно повысить точность и полноту ответов. Если читать теорию не охота - можно сразу промотать на кейсы демо.

Загрузите свой документ и получайте ответы на вопросы. FractalGPT QA агент очень похож на ChatGPT интерфейсом
Загрузите свой документ и получайте ответы на вопросы. FractalGPT QA агент очень похож на ChatGPT интерфейсом

Отвечаем по документам

FractalGPT QA агент - это вопросно-ответная система с искусственным интеллектом, в которую вы можете загружать свои документы или базу знаний компании, задавать по ним вопросы и получать точные и полные ответы.
Попробовать FractalGPT QA агент

💎Фичи
1. Обрабатывает документы ЛЮБОЙ длины.
Вы можете загружать файлы размером 2 или 50мб - это намного больше типичного контекста 4k и даже 100k. Качество ответов не будет страдать.

2. Почти без галлюцинаций.
Наш алгоритм Fractal answer synthesis доработан и теперь строит еще более сложную внутреннюю структуру документа на своем языке, что обеспечивает высокий уровень фактологии.

3. Собственный векторный поиск.
Отлично работает для сложных текстов(юридических, документации), ищет термины, определения, наименования, понимает жаргон.

4. Принимает документы в форматах: pdf, txt, docx.

5. Имеет мультиагентную архитектуру.
Агенты договариваются между собой и в итоге система автоматически добывает знания, обеспечивающие полноту из тех документов, которые наиболее релевантны вашему вопросу. Такая архитектура имеет существенные преимущества перед простым поиском или внедрением модели ранжирования - она скейлится на новые домены без потери качества.

Подробнее о мультиагентности, в чем фишка и зачем она нужна: http://fractaltech.ru

Одна из основных проблем при использовании больших языковых моделей это практически неустранимые галлюцинации, возникающие при ответах на вопросы по загруженным документам. Задача "поговорить со своими документами" возникает очень часто, и как правило, она решается с помощью промптинга - вы загружаете вашу статью, договор или другой документ и пишете промпт "Ответь на вопрос по тексту:". Этот способ работает, но у него есть существенные недостатки: размер документа ограничен 1-3 страницами, рандомное возникновение галлюцинаций - неправильных ответов, выглядящих правдоподобно.

FractalGPT QA агент уже доступен всем: загрузить свой файл и задать вопрос.

Недостатки Retrieval-Augmented Generation

Retrieval-augmented generation дословно переводится как "Генерация с расширенным извлечением" и по сути она частично решает главную проблему языковых моделей - использование для ответов устаревших данных из "весов", что приводит к неправильным ответам.

Прежде, чем отметить недостатки и слабые места вопросно-ответных систем нужно сначала понять общую схему того, как подход работает. Схематично, типичное решение выглядит так:

  • Нарезать документ на сниппеты, каждый не более чем контекст модели минус промпт токенов
  • Создать индекс из сниппетов в векторной базе данных (Pinecone, chromadb)
  • С помощью эмбеддингов OpenAi получить вектора вопроса пользователя
  • Найти в векторной базе сниппеты, наиболее близкие к вектору вопроса
  • С помощью LLM (ChatGPT, GPT-4, Gigachat, YandexGPT, FractalGPT LLM, Mistral, Zephyr) сгенерировать конечный ответ на вопрос, используя текст сниппетов

В интернете довольно много туториалов и схемы обычно выглядят так:

Типовая схема ответов по БЗ (Базе Знаний), <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fblog.futuresmart.ai%2Fbuilding-a-document-based-question-answering-system-with-langchain-pinecone-and-llms-like-gpt-4-and-chatgpt&postId=920668" rel="nofollow noreferrer noopener" target="_blank">источник</a>
Типовая схема ответов по БЗ (Базе Знаний), источник

Давайте посмотрим что не так с этой схемой:

  • Размер контекста должен быть не более 4096 токенов (порядка 1000 слов на русском языке, 1-2 страницы А4). Есть модели с большим контекстом: 16k и даже Claude 100k, но этого тоже часто не хватает. В итоге, если вам нужно проанализировать реферат, книгу, законы, конструкторскую документацию, регламенты вашей компании и построить на базе этих документов вопросно-ответную систему - этого сделать на текущих LLM не получится, контекст этих документов составляет сотни страниц.
  • Векторные базы ищут плохо. Наши опыты показывают, что если ваш текст изобилует терминами, является техническим, содержит аббревиатуры(маркировки, номера), названия деталей, статей законов, разделов и тп - то эмбеддинги будут ошибаться и не находить участки с правильным ответом.
  • LLM галлюцинируют в рандомных местах.Как говаривал Воланд - плохо не то, что LLM галлюцинируют, а то, что они делают это внезапно.
  • В нашей статье на Хабре об алгоритме Fractal answer synthesis мы разобрали основные причины галлюцинаций - ответы разбросаны по сниппетам, извлеченным из текста, связи между ними нет, сами сниппеты могут нарушать логику и очередность событий (например, если текст с хронологией) из-за разрывов при сплите. А если сниппеты недостаточно хорошо извлечены на 2м шаге - практически точно в ответе будет правдоподобная галлюцинация.
  • Промт инжиниринг нестабилен.Мы также проверяли что будет, если с помощью промтов мы будем говорить модели "Отвечай только по тексту, не искажай термины" и другие подобные промты для снижения галлюцинаций или для управления длиной и структурой ответа.К сожалению работают промты нестабильно - иногда они улучшают ответ и его полноту, но могут приводить и к галлюцинациям, это требует дальнейшего изучения именно в сеттинге retrieval.

Мы сделали свой RAG

Типичные, перечисленные выше проблемы Retrieval-Augmented Generation мы пытались решить еще в августовской статье с релизом QA системы с ограниченным функционалом - вопросы можно было задавать только по теме нейросетей и ML, Ai.

Нам удалось исправить и улучшить результаты у всех 3х причин плохих ответов в RAG системах: недавно мы завершили тесты своих собственных обученных моделей. В целом, апгрейд RAG сделан следующий:

  • Внедрили Fractal answer synthesis.
    Обучили несколько своих моделей решать универсальную задачу извлечения графовой структуры текста(по сути "извлечения знаний") - это позволяет находить неочевидные связи между структурными элементами статей, инструкций и различных регламентов, дисклеймеров: связи устанавливаются на разных уровнях, начиная от предложений и заканчивая темпоральными, логическими, причинно-следственными(NLI задача), онтологическими (часть-целое, common sense, отношения между сущностями, учет связей таксономии "входит в", часть множества, цели, принадлежность, вложенность)
  • Сделали собственный векторный поиск.
    Сильно доработали подход Pinecone и других векторных баз - наше решение по метрикам близости гораздо лучше находит "близкие" по смыслу тексты с учетом конкретной предметной области. Работает поиск терминов, жаргона, например вы можете своими словами описать термин в вопросе и система поймет это (пример ниже с РИД - результатом интеллектуальной деятельности).При этом модель достаточно универсальная.

Смотрим демо на документах

Давайте проверим как FractalGPT QA агент "прочитывает" pdf документы и действительно ли он понимает когда отвечать нужно, а когда данных для этого недостаточно.

Было проведено тестирование нашей системы на задаче ответа по вопросам лекционного материала (классическое тестирование студентов). Тест состоял из 20 вопросов на тему "Антикоррупционная деятельность". В результате наша система смогла дать правильные ответы на 20/20 вопросов, со 100% точностью, при том, что суммарный объем лекций составил 132 страницы!

Ответы были не только правильными, но и более полными.

Правильные ответы на вопросы с вариантами
Правильные ответы на вопросы с вариантами
Высокий процент правильных ответов по лекционным материалам
Высокий процент правильных ответов по лекционным материалам
Тест пройден на 100%
Тест пройден на 100%

Кейсы ниже с ответами по документам были сделаны на общедоступных pdf файлах, скачать их можно по ссылкам: гражданском кодексе РФ с изменениями (19 страниц, т.к. в бете есть лимит), лекции по нечеткой логике, статье о конструкторской документации на изделия машиностроения с сайта extxe.com.

Почему эти документы? - Они сложные и на них даже лучшие LLM часто галлюцинируют.

Вопрос с термином: ноу-хау написано не совсем верно, но ответ все равно есть
Вопрос с термином: ноу-хау написано не совсем верно, но ответ все равно есть

На вопрос "Является ли Чатгпт автором результата интеллектуальной деятельности, если он сгенерировал некий текст" - оригинальный ChatGPT срывается и начинает отвечать не по тексту а сам(даже промт не помог), а FractalGPT дает верный ответ по тексту загруженного документа.

Вопрос по объекту (Чатгпт) о котором в тексте нет информации
Вопрос по объекту (Чатгпт) о котором в тексте нет информации

Очень важно правильно формулировать вопрос - в кейсе ниже в вопросе "О чем гласит подпункт в редакции, введенной в действие с 1 октября 2014 г ?" нет уточнения какой именно подпункт имеется ввиду. Если такое уточнение дать, то ответ будет верным. ("О чем гласит подпункт в редакции, введенной в действие с 1 октября 2014 г, там где про РИД в сложном объекте ?")

Уточнение к вопросу позволяет получить правильный ответ, система находит нужный раздел
Уточнение к вопросу позволяет получить правильный ответ, система находит нужный раздел
В тексте есть несколько одинаковых дат и не ясно какая имеется ввиду в вопросе
В тексте есть несколько одинаковых дат и не ясно какая имеется ввиду в вопросе

Теперь зададим вопрос по конструкторской документации - и здесь ответы достаточно хорошие и полные, с учетом терминов, специфичных для данной отрасли.

Вопрос сопоставление: правильно сравниваются 2 вида чертежей
Вопрос сопоставление: правильно сравниваются 2 вида чертежей
Вопрос на онтологию "принадлежность": перечислены шифры документов
Вопрос на онтологию "принадлежность": перечислены шифры документов

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

Наше решение RAG хорошо справляется с символьными вопросами. Обратите внимание, что первый вопрос "И или Л будет высказывание о событии до начала события?" является вопросом на обобщение и логическому выводу из знаний, содержащихся в тексте - прямого ответа на него в документе нет - поэтому корректное поведение это не делать никакого вывода(в жизни мы часто делаем такое обобщение, но это тема отдельной статьи - о тех случаях, когда это делать нужно строго по правилам той отрасли, которую мы обсуждаем). Однако, если привести конкретный пример из документа, то ответ уже можно получить вполне конкретным.

Система старается не делать предположений, следующих из текста документа
Система старается не делать предположений, следующих из текста документа

Недостатки типичного RAG ярко видны на научных вопросах - "Что такое молекулярные эффекты оксида азота" - как видим, система, использующая ChatGPT и GPT-4 выдает галлюцинацию про четырехмерное пространство(!!), а наша система дает фактический и правильный ответ.

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

Кстати, собственный RAG на базе Fractal answer synthesis позволил нам снизить и стоимость запроса в систему в 2 раза относительно средней цены типичных LLM, равной порядка 0.5 центов - у нас она составляет 0.1 сента за 1k токенов на вход и 0.2 цента за 1k токенов на выход генерации.

Получить доступ

FractalGPT QA агент доступен всем, регистрация уже открыта. Есть бесплатная версия.

Больше новостей в нашем чате по FractalGPT: https://t.me/fractal_gpt

Подробнее о мультиагентной системе.

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

А что с безопасностью данных?

1

У нас стандартные для таких сервисов правила по сохранности и конфиденциальности данных:

1. Все данные хранятся у нас на серверах в обезличенном виде. При желании Вы можете удалить ранее загруженные документы.
2. Для обучения генеративных моделей Ваши данные НЕ используются.
3. В пользовательском соглашении в п. 8, сказано, что Вы обязуетесь не загружать документы содержащие персональные данные.
4. Для обработки конфиденциальной информации Вы можете заключить с нами договор по установке этой системы в Ваш закрытый контур. Также возможно дообучение на Ваших данных, для получения более точных ответов.

А чем отличается от Assistants от openai?

Я думаю ваш вопрос о туле (OpenAI-hosted tools) как раз для цели ответов по документам - Knowledge Retrieval:
https://platform.openai.com/docs/assistants/tools/knowledge-retrieval

Цитирую их описание того как этот тул работает:
"
Retrieval augments the Assistant with knowledge from outside its model, such as proprietary product information or documents provided by your users. Once a file is uploaded and passed to the Assistant, OpenAI will automatically chunk your documents, index and store the embeddings, and implement vector search to retrieve relevant content to answer user queries.
"

То есть их Knowledge Retrieval работает ровно так, как у нас описано в статье в разделе "Недостатки Retrieval-Augmented Generation" - то есть они нарезают текст на чанки, а затем используют векторную базу для ответов по ним - и потому это и работает плохо.
В общем проблема фундаментальная - тк в интернете только этот способ и представлен из-за его простоты видимо. К сожалению он дает очень плохие результаты, и непредсказуемые. И все сервисы которые мы нашли они работают так же, просто не упоминая в своих маркетинговых материалах на сайте о качестве ответов.

Мы об этом писали еще в разборе на Хабре: https://habr.com/ru/articles/728410/