- BrainTools - https://www.braintools.ru -

RAG — это главное. Почему специализированные LLM реже галлюцинируют

RAG — это главное. Почему специализированные LLM реже галлюцинируют - 1

Когда закрылся Skype [1], этого почти никто уже и не заметил. Хотя сервис когда-то был синонимом термина «видеосвязь». Но потом видеозвонки внедрили везде — в браузеры, мессенджеры, корпоративный софт, экосистемы, а Skype не успел адаптироваться… Возможно, с LLM происходит нечто подобное. Универсальные LLM впечатляют глубиной эрудиции — но для решения конкретных проблем совершенно непригодны. Хотя они быстро и уверенно отвечают на вопросы, выдавая целые «портянки» текста, часто эти ответы представляют собой галлюцинации или «воду», с выдуманными ссылками.

Обычные LLM чатботы подходят для разговора по душам или поиска случайных фактов в интернете, толкования снов и тому подобных вещей. Это просто смешная игрушка. Для серьёзных задач (бизнес, финансы, медицина, принятие решений) это неприемлемо.

Для бизнеса галлюцинации LLM — это не «забавные ошибки», а риск: неверная цифра в отчёте, выдуманное условие договора, перепутанная дата в регламенте могут привести к самым непредсказуемым последствиям. Поэтому рынок смещается от универсальных моделей к специализированным ассистентам, которые формируют ответы на основе документов и специализированных баз данных.

Оказывается, что в продакшне базовая LLM нуждается в серьёзном апгрейде — и становится частью более сложного фреймворка, с локальной памятью [2], самообучением, агентами и специализированными инструментами. RAG полностью меняет дело.

Почему LLM врут

Галлюцинации ИИ — это не «мелкие ошибки». На самом деле это неотъемлемое свойство системы, ведь её в процессе обучения [3] поощряют за «правильные» ответы, которые нравятся людям. А что нравится людям? Вежливость, лесть, комплименты. Так что всё закономерно…

Основные причины галлюцинаций связаны с технологией обучения больших языковых моделей. Бессмысленные ответы возникают из-за недостатка информации и отсутствия механизмов проверки данных, на которые накладываются чёткие инструкции, заставляющие ИИ быть полезным и отвечать связно. Универсальные модели не могут знать о сложных и важных для пользователя вещах, которые не описаны в открытых источниках. Подобную информацию они могут получить лишь в контексте диалога, а контекст ограничен окном, если для него не предусмотрено специального хранилища.

RAG — это главное. Почему специализированные LLM реже галлюцинируют - 2

Когда весной 2025 года появились новые LLM с функцией рассуждений, количество галлюцинаций заметно выросло [4]. Некоторые эксперты считают, что в базовых LLM мы от них не избавимся никогда [5].

В рейтинге галлюцинаций Vectra уровень галлюцинаций у новых моделей больше, чем у старых

В рейтинге галлюцинаций Vectra [6] уровень галлюцинаций у новых моделей больше, чем у старых

Если раньше модели просто галлюцинировали, то последние более умные и продвинутые версии иногда начинают сознательно врать пользователям [7], преследуя некоторые сложные цели. Например, модель может прийти к выводу, что её тестируют или оценивают — и изменить своё поведение [8].

Генерация, дополненная поиском (Retrieval Augmented Generation)

Проблема «галлюцинаций» повлекла за собой появление «ИИ-ассистентов», основанных на технологии Retrieval-Augmented Generation (RAG) [9] — которая, как прямо следует из перевода, соединяет языковую модель с внешней базой знаний, что обеспечивает эффективный поиск и обработку релевантной информации, используемой для ответа.

Проще всего понять, от чего отталкивались создатели нового архитектурного паттерна, задавая несложные вопросы любой доступной LLM. Спросите у ChatGPT (без доступа к данным):

— Как проехать от улицы Ленина до рынка в городе N?

Улицы Ленина может не быть в городе N, хотя они есть во множестве других городов. Модель может не знать, что там — несколько рынков. Но даже если ответ по основному вопросу вы получите, ИИ не будет знать о текущей дорожной ситуации, потому что её обучали полгода-год назад. Вот и поводы для галлюцинации. Значит, ИИ нужна, как минимум, база актуальной информации, поисковая система для неё, дополнительное хранилище данных для контекста и механизм, позволяющий оптимально всё это использовать. Наиболее эффективная архитектура, которая реализует этот подход — RAG.

Как это устроено: чанки, эмбеддинги, k-NN и оркестратор

RAG — это главное. Почему специализированные LLM реже галлюцинируют - 4

RAG представляет собой структуру из нескольких взаимосвязанных модулей. Важнейшая часть любой такой системы — база знаний (Knowledge Source). Это структурированные документы, письма, вики, CRM, логи, PDF, сканы, таблицы и т.д. Из них ИИ берёт фактическую основу для ответов. Эта база может быть статичной (архив договоров за 2025 год) или динамичной (актуальная почта). Например, в Алисе Про можно загрузить платёжки за ЖКХ или использовать данные почты Яндекс 360 — там уже могут быть чеки за такси, билеты и т.д. (как правило, RAG берёт реальные факты не только из хранилища, но и из сервисов). Но как он это делает? Чем лучше структурированы данные — тем выше точность ответов. Эту «внешнюю» память можно сравнить с быстрой памятью человека: вы можете помнить каждый камень на проспекте Мира с детства, но вчера, проезжая там, вы заметили, что на одной из смежных улиц идёт ремонт дороги и запомнили этот факт.

Правда, иметь такую базу знаний — недостаточно. Текст из неё нужно сделать удобным для поиска. Эту задачу решает Retriever — «умный поиск по документам». Вы задаёте ему вопрос: сколько я потратил на авиаперелёты летом 2025 года? Текст разбивается на чанки — отрывки, обычно от 200 до 1000 токенов. Каждый чанк преобразуется в вектор (эмбеддинг) — список чисел, кодирующий смысл текста в форме, доступной для обработки алгоритмами системы. Эти числа можно представить, например, в виде точек на карте. На первый взгляд они выглядят бессмысленно, но чётко показывают положение объекта относительно других.

Одни — ближе друг к другу, другие — дальше. Векторы сохраняются в хранилище, и когда система получает вопрос, он тоже преобразуется в вектор, для которого система ищет похожие чанки. Кому интересно — этот метод поиска называется k-NN search [10] — поиск k ближайших соседей. На основе найденных чанков LLM формулирует ответ.

RAG — это главное. Почему специализированные LLM реже галлюцинируют - 5

Если поиск от Retriever находит в почте маршрутные квитанции, то возможен такой ответ: «Летом вы потратили на авиаперелёты 11200 рублей — есть квитанции от 12 июня и 14 августа». Всю логику [11] RAG связывает воедино «оркестратор», который принимает вопрос, передаёт его в Retriever, получает чанки, формирует запрос для ИИ и возвращает ответ. В простом примере это может быть небольшой Python-скрипт, в больших системах — фреймворки вроде LangChain [12], LlamaIndex [13], или кастомные микросервисы.

Вот как выглядел бы, например, диалог с «Алисой Про», которая ищет для вас потерянную почту… Вы спрашиваете:

— Где-то больше недели назад коллега напоминал о рабочей встрече в январе. Не могу найти письмо. Поможешь, плиз?

Ответ Алисы:

— Кажется, я нашла подходящее письмо.
От: Михаил (partner@startup.com)
Дата: 10 ноября, 15:30
Тема: По поводу завтра
Содержание: «Алексей, добрый день!»
Напоминаю, что завтра в 16:00 у нас созвон по проекту. Подключитесь по ссылке…»
Вот ссылка на письмо. Перенести встречу в ваш календарь?

И никаких почтовых фильтров, полнотекстового поиска. Пользователь экономит время, которое, как известно, является вторым по важности невозобновляемым ресурсом после здоровья.Так устроены современные ИИ-ассистенты для работы: и Copilot от  Microsoft, и Gemini от Google. Они умеют быстро читать предоставленную им актуальную информацию и формировать ответы на её основе.

Для чего ещё может быть полезен RAG? Например, в рабочих сервисах и аналитике. Увидел как-то новость про чемпионат мира по Excel и стал больше уважать ребят, которые сидят в таблицах. В универе от таких скиллов я бы не отказался, но, будем реалистами: такие точечные знания нужны не так уж и часто. Если ты не бухгалтер, конечно. 

Просто загрузить таблицу в универсальный LLM-чат — рискованно: модель может «дотянуть» недостающие значения, опереться на внешние паттерны или сделать выводы за пределами исходного набора данных. В рабочих задачах такой результат неприемлем.

Здесь и нужен RAG-подход: ИИ работает исключительно с предоставленной таблицей и формирует ответы только на её основе, без привлечения внешнего контекста. В российских инструментах такой подход уже реализуется, например, в Яндекс Таблицах — именно за счет связки модели с конкретным источником данных.

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

RAG, конечно, — не полная панацея от галлюцинаций. Система может не найти нужный чанк, может найти устаревшую, противоречивую или вовсе ошибочную информацию, неверно понять контекст. Но это — пока лучшее, что есть.

Собираем простой RAG (LangChain + FAISS + Ollama)

Не знаю, как вам, а мне всегда интересно не только почитать, но и попробовать что-то самому. Давайте соберём простенькую систему RAG, для пробы. Скачайте Python, установите FAISS [14] для поиска и ИИ Ollama [15].

pip install langchain langchain-community sentence-transformers faiss-cpu ollama
ollama run llama3

Найдите статью, по которой хотите получать от ИИ ответы, и запишите в файл .txt.
Создайте файл, допустим simple_rag.py.

# 0) Ollama
# install Ollama app first, then:
ollama pull llama3.1:8b
# 1) venv + deps (pinned)
python -m venv .venv
source .venv/bin/activate  # windows: .venvScriptsactivate
pip install -U pip
pip install "langchain==0.2.16" "langchain-community==0.2.16" "langchain-core==0.2.38"             "langchain-text-splitters==0.2.4" "sentence-transformers==3.0.1"             "faiss-cpu==1.8.0.post1"
# 2) put your text into news.txt, then run
python simple_rag_stable.py
# simple_rag_stable.py
from pathlib import Path
import textwrap
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_community.llms import Ollama
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
ARTICLE_PATH = Path("news.txt")
INDEX_DIR = Path("./faiss_index")
CHUNK_SIZE = 800
CHUNK_OVERLAP = 120
TOP_K = 6
EMBEDDING_MODEL = "intfloat/multilingual-e5-base"
OLLAMA_MODEL = "llama3.1:8b"
E5_QUERY_PREFIX = "query: "
E5_PASSAGE_PREFIX = "passage: "
def build_or_load_vectorstore() -> FAISS:    if not ARTICLE_PATH.exists():        raise FileNotFoundError(f"File not found: {ARTICLE_PATH.resolve()}")    embeddings = HuggingFaceEmbeddings(        model_name=EMBEDDING_MODEL,        encode_kwargs={"normalize_embeddings": True},        query_instruction=E5_QUERY_PREFIX,        embed_instruction=E5_PASSAGE_PREFIX,    )    if INDEX_DIR.exists():        return FAISS.load_local(            str(INDEX_DIR),            embeddings,            allow_dangerous_deserialization=True,        )    docs = TextLoader(str(ARTICLE_PATH), encoding="utf-8").load()    splitter = RecursiveCharacterTextSplitter(        chunk_size=CHUNK_SIZE,        chunk_overlap=CHUNK_OVERLAP,    )    chunks = splitter.split_documents(docs)    for i, d in enumerate(chunks):        d.metadata = d.metadata or {}        d.metadata.update({"source": ARTICLE_PATH.name, "chunk_id": i})    vs = FAISS.from_documents(chunks, embeddings)    INDEX_DIR.mkdir(parents=True, exist_ok=True)    vs.save_local(str(INDEX_DIR))    return vs
def main():    vs = build_or_load_vectorstore()    llm = Ollama(model=OLLAMA_MODEL, temperature=0.0)    prompt = PromptTemplate.from_template(        """Отвечай ТОЛЬКО по контексту. Если ответа нет — скажи ровно: "Я не знаю".
Контекст:
{context}
Вопрос: {question}
Ответ:"""    )    chain = prompt | llm | StrOutputParser()    print("RAG ready. Type /exit to quit.")    while True:        q = input("nQ: ").strip()        if not q:            continue        if q.lower() == "/exit":            break        docs_scores = vs.similarity_search_with_score(q, k=TOP_K)        docs = [d for d, _ in docs_scores]        context = "nn---nn".join(            f"(source={d.metadata.get('source')}, chunk={d.metadata.get('chunk_id')})n{d.page_content}"            for d in docs        )        ans = chain.invoke({"context": context, "question": q}).strip()        print("nA:")        print(textwrap.fill(ans, width=100))        print("nSources:")        for rank, (d, score) in enumerate(docs_scores, 1):            snippet = " ".join(d.page_content.strip().split())            snippet = snippet[:350] + ("…" if len(snippet) > 350 else "")            print(f"[{rank}] {d.metadata.get('source')}#{d.metadata.get('chunk_id')} score={score:.4f}")            print(f"    {snippet}")
if __name__ == "__main__":    main()

На ваш вопрос, например такой: «Почему 25 декабря утром в Саратове были пробки в Ленинском районе?» Система ответит: «Пробки в Ленинском районе Саратова утром 25 декабря образовались в связи с перекрытием участка Большой Садовой улицы, а также улицы Степана Разина». Ну либо, если информации нет, скажет: я не знаю.

В последнее время появились продвинутые опенсорсные фреймворки для локального RAG. Например, в ноябре 2025 года Tencent выложила фреймворк WeKnora [16], который моментально вошёл в список самых популярных репозиториев на Github [17].

Архитектура WeKnora, локального RAG

Архитектура WeKnora, локального RAG

Ассистенты (Copilot/Workspace/проч.)

Microsoft 365 Copilot [18]: для российских пользователей бесплатен чат, распознавание речи, картинок, анализ документов (см. скриншот ниже). Доступ к другим встроенным сервисам закрыт для РФ и будет проблема с оплатой услуги. С платной подпиской доступна помощь по контексту из корпоративных данных: почта и календарь (Exchange), чаты/созвоны (Teams), документы (SharePoint/OneDrive). Плюс в том, что у многих пользователей 90% данных уже «живёт» в облаке Microsoft.

Microsoft Copilot. Коллега поделился скриншотом: у него на территории РБ ассистент рабоатет без VPN. Бесплатный план включает загрузку документов, картинок, создание подкастов и проч.

Microsoft Copilot. Коллега поделился скриншотом: у него на территории РБ ассистент рабоатет без VPN. Бесплатный план включает загрузку документов, картинок, создание подкастов и проч.

Gemini for Workspace [19]: чат бесплатен, но встраиваемая версия ассистента платная и будут такие же проблемы, как и в предыдущем случае. Ассистент работает поверх Gmail/Docs/Drive/Sheets/Meet, то есть удобен для людей с гугл-аккаунтом.

Можно пользоваться бесплатным ассистентом Gemini в аккаунте:

Gemini for Workspace

Gemini for Workspace

Atlassian Intelligence [20]: австралийская компания Atlassian [21] встроила ИИ в свои продукты, которые образуют экосистему, обеспечивающую планирование, разработку, документирование, поддержку и коммуникацию команд специалистов. Виртуальный сотрудник решает, примерно те же задачи, что и остальные решения Atlassian — Jira, Confluence, Compass и других.

Atlassian Intelligence

Atlassian Intelligence

Slack AI [22], Zoom AI Companion [23]: ИИ-ассистенты теперь работают в Slack – корпоративном мессенджере и платформе для общения, которая популярна у разработчиков и в Zoom – широко известном решении для видеоконференций. Делают они, примерно то же, что и остальные но в рамках специфики своих сервисов и работают только на платных тарифах.

Zoom AI Companion

Zoom AI Companion

Российские ассистенты (Алиса Про, Яндекс 360)

В Алисе Про [24] акцент сделан на встраивании в повседневные источники пользователя: почта, документы, файлы, чеки/квитанции, календарь, встречи — то есть на практическом «поиске + ответе по найденному». Даёт ответы на вопросы, где нужен поиск по личным данным (если пользователь их подключил/загрузил): письма, билеты, чеки, документы.

Вопросы «сколько потратил/когда/где документ/найди письмо/собери выжимку» — то есть те опции, которые обычно и дают максимальный эффект RAG-подхода. Чат бесплатен, все встраиваемые сервисы платные. С расценками можно ознакомиться на сайте.

RAG — это главное. Почему специализированные LLM реже галлюцинируют - 11
RAG — это главное. Почему специализированные LLM реже галлюцинируют - 12
RAG — это главное. Почему специализированные LLM реже галлюцинируют - 13

Куда всё идёт: агенты и автоматизация

Корпоративная ценность современных ИИ-ассистентов — не в «креативности» и широкой эрудиции, а в точности и управляемости. Поэтому компании уходят от универсальных чат-ботов (которые хорошо и красиво выражаются, но не отвечают за результат) к системам, встроенным в рабочие процессы и контекст: документы, почту, регламенты, договоры, отчёты, информационную базу.

RAG превращает склонную к галлюцинациям LLM в более надёжного «цифрового клерка», который действует в рамках предоставленных источников. Именно этим объясняется рост сегмента специализированных решений — ассистентов в крупных корпоративных системах (Microsoft 365, Google Workspace, Яндекс 360), ориентированных на работу с персональными и рабочими данными.

На практике «цифровые ассистенты» берут на себя всё больше рутинных задач: они могут находить нужные фрагменты по размытому описанию, сравнивать версии, извлекать факты, резюмировать, структурировать и оформлять тексты, создавать презентации. Это очередной шаг в автоматизации интеллектуального труда.

Ещё больше выгорания

К сожалению создаётся впечатление [25], что с LLM/RAG/агентами обычный пользователь/разработчик/дизайнер будет работать за компьютером больше, чем раньше. Как работа бухгалтера сильно осложнилась после появления ПК, то же самое происходит с программированием и другими сферами. Казалось бы, чем больше автоматизации — тем меньше мы должны работать, но нет, происходит наоборот, что довольно печально…

Остается ждать новых прорывов: например, когда ИИ-агенты преодолеют проблемы, связанные с полной зависимостью от качества базы знаний, сложностью решения многоступенчатых задач, индексацией и настройкой и смогут действовать самостоятельно. Тогда они станут полноценными “младшими сотрудниками” компаний, которые не просто дают ответы на вопросы, а берут на себя ежедневную рутинную работу. Например, оплачивают счета, заполняют и отправляют декларации для налоговой, составляют отчёты. Судя по прогнозам на Polymarket [26], сильный ИИ уже совсем близко.

Автор: varabyo

Источник [27]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/23582

URLs in this post:

[1] закрылся Skype: https://support.microsoft.com/en-us/skype/skype-is-retiring-in-may-2025-what-you-need-to-know

[2] памятью: http://www.braintools.ru/article/4140

[3] обучения: http://www.braintools.ru/article/5125

[4] количество галлюцинаций заметно выросло: https://cdn.openai.com/pdf/2221c875-02dc-4789-800b-e7758f3722c1/o3-and-o4-mini-system-card.pdf

[5] не избавимся никогда: https://www.newscientist.com/article/2479545-ai-hallucinations-are-getting-worse-and-theyre-here-to-stay/

[6] рейтинге галлюцинаций Vectra: https://github.com/vectara/hallucination-leaderboard?tab=readme-ov-file

[7] сознательно врать пользователям: https://www.techspot.com/news/108171-godfather-ai-warns-today-ai-systems-becoming-strategically.html

[8] изменить своё поведение: https://arxiv.org/abs/2505.23836

[9] Retrieval-Augmented Generation (RAG): https://en.wikipedia.org/wiki/Retrieval-augmented_generation

[10] k-NN search: https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm

[11] логику: http://www.braintools.ru/article/7640

[12] LangChain: https://github.com/langchain-ai/langchain

[13] LlamaIndex: https://www.llamaindex.ai/

[14] FAISS: https://github.com/facebookresearch/faiss

[15] Ollama: https://ollama.com/

[16] WeKnora: https://github.com/Tencent/WeKnora

[17] список самых популярных репозиториев на Github: https://github.com/trending?since=weekly

[18] Microsoft 365 Copilot: https://www.microsoft.com/en-us/microsoft-365-copilot

[19] Gemini for Workspace: https://workspace.google.com/solutions/ai/

[20] Atlassian Intelligence: https://www.atlassian.com/blog/announcements/atlassian-intelligence-ga

[21] Atlassian: https://htps://www.atlassian.com/

[22] Slack AI: https://slack.com/features/ai

[23] Zoom AI Companion: https://www.zoom.com/en/products/ai-assistant/

[24] Алисе Про: https://360.yandex.ru/business/alicepro/

[25] впечатление: http://www.braintools.ru/article/2012

[26] прогнозам на Polymarket: https://polymarket.com/

[27] Источник: https://habr.com/ru/articles/977260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=977260

www.BrainTools.ru

Rambler's Top100