Опубликовано на vc.ru
За последние годы большие языковые модели (Large Language Models, LLM) проделали огромный путь. Сегодня они не просто генерируют текст, похожий на человеческий. Они пишут лучше многих людей — и делают это очень быстро, не затрачивая время на поиск информации или вдохновения. Они способны мгновенно ответить практически на любой вопрос и многим пользователям уже заменили традиционные поисковики.
Но есть и тёмная сторона генеративных нейросетей. Нет, мы не о перспективах порабощения и уничтожения человечества искусственным интеллектом 😐 Мы о проблемах с достоверностью и точностью ответов. Иногда LLM генерируют информацию, не подкреплённую реальными данными. Это называют галлюцинациями.
LLM — это вид генеративных нейросетей, работающий с текстом. LLM обучаются на огромных объёмах текстовых данных и могут генерировать качественный текст, практически неотличимый от написанного человеком. Этим мы и пользуемся c ноября 2022-го, когда состоялся первый публичный релиз ChatGPT.
Нам в arcsinus нейронки помогают писать тест-кейсы, статьи в блог, должностные инструкции, брифы для клиентов и другие тексты разного формата и объёма.
Несмотря на впечатляющие возможности, LLM — не высший разум. Как у любого технического решения, у больших языковых моделей есть ограничения.
Главное условие работы большой языковой модели — обучение. Модель не просто «знает» почти всё на свете. Чтобы она «знала», её специально обучали. ChatGPT, например, была обучена на больших объёмах неразмеченных данных — то есть она прочитала миллионы текстов интернете. А затем её дообучали на конкретных задачах с инструктором.
Строго говоря, GPT не способна понимать смысл человеческой речи. Она опирается на статистические паттерны. Это значит, что модель прочитала тексты, выявила закономерности и построила на их основе алгоритмы для генерации ответов.
Все версии GPT генерируют текст, используя подход так называемого казуального моделирования — они подбирают следующее слово, исходя из анализа предыдущих. А анализ слов происходит с опорой на информацию, на которой они обучались.
Похожим образом работает T9 на клавиатурах наших смартфонов. Ранние версии T9 предлагали следующее слово с учётом лишь последнего введённого. Более современные сборки T9 учитывают связи между предыдущими словами. «Трансформеры» — модели семейства GPT — тоже учитывают все слова из запроса и связи между ними.
Теперь понятно, почему кажется, что у LLM бывают проблемы с пониманием контекста и галлюцинации. Она просто угадывает следующее слово — пусть и старается учитывать широкий контекст.
Нестабильная достоверность ответов — пожалуй, самая значимая проблема, занимающая сейчас всех причастных к LLM. «Бред» условного ChatGPT может казаться смешным. Но есть ситуации, когда точная и надёжная информация имеет критическое значение.
Типичные кейсы, когда галлюцинации ИИ могут привести к серьёзным последствиям — медицинская и юридическая консультация, финансовые вопросы, журналистика, академические и научные исследования, клиентская поддержка, госуправление и политика, а также чрезвычайные ситуации.
Последствия галлюцинаций здесь могут быть действительно серьёзными — испорченная репутация, финансовые потери и даже угроза здоровью или жизни людей.
Сегодня инженеры экспериментируют с несколькими методами:
По результатам многих экспериментов RAG показывает впечатляющие результаты в деле устранения галлюцинаций LLM, особенно работая со структурированными данными. Хотя RAG — не панацея, она явно превосходит в точности и «чистую» LLM, и многие другие способы улучшения работы моделей. К тому же сравнительно дёшева в реализации.
Поговорим об этой технологии подробнее.
RAG (Retrieval-Augmented Generation) позволяет модели обращаться к внешними источникам достоверных данных. Вот как это происходит:
1. Кодирование документов
Готовим базу данных, где нужные нам документы хранятся в векторном виде — то есть в виде массива чисел. Например, если LLM призвана помогать технической поддержке компании, то документами будут инструкции, гайды, описания процессов, скрипты и т. д.
2. Кодирование запроса
Поступающий от пользователя запрос переводится в векторное представление. Обычно это делается с помощью предварительно обученной модели-энкодера — например, гугловской BERT.
3. Поиск документов
С помощью вектора запроса система извлекает релевантные документы или их фрагменты из корпуса предварительно подготовленных документов, хранящихся в базе данных.
4. Объединение запроса и документов
Релевантные запросу фрагменты извлечённых документов объединяются, чтобы сформировать как можно более полный контекст.
5. Генерация
Комбинированный контекст подаётся в генеративную модель, которая использует его для создания связного ответа. Во время генерации модель учитывает запрос и извлечённые документы (или их фрагменты) — и включает релевантную информацию из документов в свой ответ.
6. Выдача результата
Сгенерированный текст выводится как окончательный ответ. Ответ, созданный с применением RAG, как правило, более точный и информативный, чем без, поскольку использует богатую дополнительную информацию из извлечённых документов.
→ Включая внешние источники знаний, RAG позволяет языковой модели лучше понимать контекст и нюансы области знаний. В результате AI даёт более информированные и релевантные ответы.
→ RAG позволяет модели постоянно обращаться к актуальным данным. Для этого нужно своевременно обновлять базу знаний. Так разработчикам не нужно тратить ресурсы на постоянное дообучение LLM.
→ RAG позволяет LLM ссылаться на вполне конкретные источники информации. Это снижает вероятность, что LLM, не найдя подходящей информации для ответа, просто выдумает его. Если нужно, эти источники пользователь может проверить, а инженер — обновить, дополнить или удалить.
→ RAG позволяет буквально перекрыть модели возможности галлюцинирования. Для этого в промпт разработчики добавляют уточнение, что если в базе данных не нашлось информации по запросу — модель должна ответить, что не знает ответа.
→ Нестабильная достоверность ответов и откровенные галлюцинации больших языковых моделей — значимая проблема, занимающая всех причастных к работе с ними.
→ Чтобы повысить качество ответов, инженеры сегодня экспериментируют с разными технологиями — эпистемические нейросети, декодирование DoLa, тонкая настройка и другие.
→ Хорошие результаты показывает технология RAG (Retrieval-Augmented Generation). Она позволяет языковой модели обращаться к дополнительным источникам информации и предоставлять пользователям достоверные ответы, а не галлюцинировать.
→ Многие компании уже успешно используют технологию RAG. Мы в arcsinus применили RAG при разработке ИИ-ассистента для консультантов крупной международной компании.