Системы на базе анализа естественного языка
Недавний подъём интереса к системам АI/ML был вызван появлением неожиданно успешных LLMs типа ChatGPT и GPT-4, а также open source моделей, типа LLaMA, опубликованной в феврале 2023 года.
Хотя это только одна из многих областей AI/ML, именно в этой области произошли наиболее важные и наиболее обсуждаемые изменения. Наша компания имеет большой опыт и глубокую экспертизу в области систем на базе
обработки естественного языка. За последние годы были реализованы десятки проектов, среди которых можно выделить:
Доменно-специфичные поисковые вопросно-ответные системы
ChatGPT был запущен в конце 2022 года и привлёк внимание своими широкими возможностями: написание кода, создание текстов, возможности перевода, демонстрируя удивительные
возможности отвечать на любые человеческие вопросы, зачастую на уровне не хуже эксперта в определенной области.
Получить ответы на многие вопросы теперь стало гораздо проще и быстрее. Не нужно искать необходимую информацию среди сотен страниц, выдаваемых поисковыми системами
по определенным запросам. Данная модель (Generative Pre-trained Transformer) - обучен на сотнях миллионов текстов различной тематике, специфики и языков.
Тем не менее, еще задолго до появления ChatGPT возникала потребность в системах, способных быстро найти ответ в определенной узкой области, в технической документации, инструкции,
руководстве пользователей. В таких случаях, к сожалению, ChatGPT будет бесполезным (конечно, он просто может придумать ответ, но это будет не корректно).
Наша NLP-команда принимала участие в создании таких систем, в частности:
-
Веб скраппинг (web scraping) с использованием LLM
Позволяет “интеллектуально” собирать различную информацию из интернета, агрегировать ее в заданный формат (csv, json и другие), находить различный контент по определенным параметрам.
-
Структурированное извлечение данных из документов (Named Entity Recognition)
Технология NER (Named Entity Recognition) — «распознавание именованных сущностей» позволяет извлекать информацию из различных источников, например, контактные данные, геолокацию, определенные слова и характеристики объектов, любую специфическую информацию.
За одной задачей NER, на самом деле, стоит две: 1) обнаружить, что какая-то последовательность слов — это именованная сущность; 2) понять, к какому классу (имя человека, название организации, локация, время и т.п.) эта именованная сущность относится.
-
Вопросно-ответная система с использованием коллекции документов, RAG (Retrieval-Augmented Generation)
Локальный аналог ChatGPT по специализированной документной базе. Разрабатываем, используя "generic" LLM, обученную на большом массиве данных и дополняя решение поиском по базе знаний, специфичной для определенного домена. Подходит, например, если необходима система помощи для работы с внутренней базой знаний компании. В качестве документной базы могут быть различные типы информации, не только текст. Можно в базу добавить картинки, звук и таблицы. Как отдельный пункт можно добавить RAG с использованием интернет браузера (вместо коллекции документов - интернет). Пример - BingChat.
-
Специализированные диалоговые агенты / чат боты (ChatGPT )
Finetuning LLM модели, когда необходима модификация поведения или стиля ответов для специализированной области знаний. RLHF для адаптирования модели к человеческим предпочтениям.
Примером может быть система генерации доменов, где, предположим, мы собрали много человеческого фидбека о том, какой домен из сгенерированных лучше, и на таком наборе данных сделали Reinforcement learning from human feedback).
В целом тема очень популярная и широко используемая, в Яндексе, например, мы так делали для адаптирования переводов под человеческие предпочтения
-
Чат Боты с поддержкой базы знаний (knowledge graph), способные вносить знания в нее, и использовать информацию выходящую за рамки контекстного окна
В случае, если дополнительно необходимо вносить фактические знания в граф, чтобы помнить долгосрочные зависимости и легко восстанавливать историю. Кроме того, составление такого графа может быть полезно для персонализированного анализа для каждого пользователя (можно имплементировать рекомендательную систему)
-
Суммаризация
Выделение нужной информации из больших текстов и неструктурированных документов в компактный вид, резюме, краткое содержание, выделение основных тем, положений и смысла. В качестве примеров – сервис для генерирования краткого содержания по субтитрам из ютуб видео или сервис для автоматического составления meeting notes после важной видеоконференции
-
Персонализированный copilot
Помощник, который помогает писать не только программный код, но и техническую документацию, контракты, договоры и т.д.. Аналог AI помощников, например в Notion, Todoist, и, вероятно, скоро появится в многих других приложениях. Можно использовать таких помощников для более быстрого написания специализированных текстов (в том числе и кода).
-
Автоматический перевод
Может быть частью сервиса. Например, для банковского приложения можно облегчить жизнь своему call-центру. В него могут приходить вопросы на разных языках и разного уровня структуризации. Можно комбинировать с пунктами 2, 5, 6, 7, 9 для создания такого сервиса эффективно. Дополнительно можно сделать модели перевода с любых языков
-
Классификация, тегирование
Любой анализ текста, классификация по тематике, выделение сущностей, тегов, анализ тональности, стилю, проверка документов на соответствие определенным параметрам. В частности, такие системы используются для анализа
ответов операторов колцентра (вежливо, грубо), отзывов и кометариев к статьям (положительный, отрицательный, нейтральный)
-
LLM агенты (пример AutoGPT)
Перспективная область развития генеративных моделей. Microsoft описывает AutoGen как фреймворк для упрощения оркестровки, оптимизации и автоматизации задач, использующих языковые модели. Агенты могут быть настроены и дополнены с помощью внешних инструментов, которые позволяют им извлекать информацию или выполнять код.Такой совместный подход может привести к значительному повышению эффективности работы генеративных моделей. Например агента, который будет делать research (web_search, запись в файлы), агента который будет автоматически писать код (доступ к дебаггеру и stackoverflow например) и итеративно "улучшать" себя. Выглядит это, как реализованный шахматный бот, который анализирует ходы, разбирает их и дает советы или система, которая выявляет различные новостные фейки.
LLM агенты = LLM с внешними инструментами + Chain of Thought
Инструменты, такие как: поиск в интернете, wolfram, переводчик, калькулятор, пойти в базу данных, да что угодно в принципе
Chain of Thought значит, что на каждом шаге модель "думает" какое действие ей сделать (использовать калькулятор или wolfram).
Формат CoT примерно следующий: на каждом шаге модель генерирует Thought, Action (какой инструмент использовать, либо дать финальный ответ), ActionInput,
затем генерируется Observation в зависимости от инструмента и процесс повторяется:
Input: Who is Brad Pitt's girlfriend and what is her age in the power of 2?
———
Thought: I need to look up Brad Pitt's girlfriend on the internet.
Action: web_search
ActionInput: {"query": "Brad Pitts's girlfriend"}
Observation: Ines de Ramon
Thought: Now I know who is Brad Pitt's girlfriend. I need to find her age and take it to the power of 2.
Action: web_search
ActionInput: {"query": "Ines de Ramon age"}
Observation: 30
Thought: Ines de Ramon is 30 years old, I need to take it to the power of 2.
Action: calculator
ActionInput: {"input": 30**2}
Observation: 900
Thought: Now I am ready to give final answer.
Action: final_answer
ActionInput: {"input": "Brad Pitt's girlfriend is Ines de Ramon and her age to the power of 2 is 900"}
——
Finished Chain
——-
Output: "Brad Pitt's girlfriend is Ines de Ramon and her age to the power of 2 is 900"
-
Проверка документов
Анализ и проверка документов по различным критерием, например соответствию закону страны, выявление сомнительных и подозрительных пунктов.
-
Голосовой помощник
Находит необходимый ответ в технической документации даже на базе не четко поставленного вопроса (как правило пользователь не знает техническую терминологию)
-
Системы перефразирования текстов
Системы перефразирования текстов (задача парафраза), когда необходимо, возможно в сжатом виде пересказать определенной статью, текст, заметку.