Реализация Question Answering (ответы на вопросы по документам)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Реализация Question Answering (ответы на вопросы по документам)
Средняя
~5 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1167
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    867
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1084
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829

Реализация Question Answering (ответы на вопросы по документам)

QA по документам — система, принимающая вопрос на естественном языке и возвращающая ответ, найденный или синтезированный на основе корпуса документов. Это основа для корпоративных поисковых систем, баз знаний и автоматических помощников.

Архитектуры QA-систем

Extractive QA: ответ — точный фрагмент из документа. Модель выбирает span (начало/конец) в найденном документе. deepset/roberta-base-squad2, sberbank-ai/rubert-base-cased-qa — готовые модели. Преимущество: нет галлюцинаций. Недостаток: ответ должен буквально быть в тексте.

RAG (Retrieval-Augmented Generation): наиболее распространённый production-подход. Ретривер находит релевантные документы, LLM синтезирует ответ. Ответ может обобщать информацию из нескольких источников.

Long-context LLM: Claude 3.5 (200K токенов) или Gemini Pro (1M токенов) — весь корпус документов в контексте. Для небольших баз знаний (< 500 страниц) это проще RAG.

RAG Pipeline

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Qdrant
from langchain.chains import RetrievalQA

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = Qdrant.from_existing_collection(
    embeddings=embeddings,
    url="http://localhost:6333",
    collection_name="docs"
)

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",  # или "map_reduce" для длинных документов
    retriever=vectorstore.as_retriever(search_kwargs={"k": 5}),
    return_source_documents=True,
)

result = qa_chain.invoke({"query": "Каков порядок расторжения договора?"})
# result["result"] — ответ
# result["source_documents"] — источники

Контроль галлюцинаций

Критически важно для доверия к системе:

  1. Цитирование источников: каждый факт в ответе → ссылка на документ/параграф
  2. Faithfulness check: отдельный промпт проверяет, подтверждается ли ответ контекстом
  3. Явный отказ: если информации нет в документах — «В доступных документах нет ответа на этот вопрос»
  4. Confidence scoring: оценка уверенности (logprobs или отдельная chain)

Advanced retrieval

Базовый top-K retriever недостаточен для сложных вопросов:

  • HyDE (Hypothetical Document Embeddings): сначала LLM генерирует гипотетический ответ, затем ищет по его эмбеддингу
  • Multi-query: переформулировать вопрос 3–5 способами, объединить результаты
  • Parent-child chunks: хранить мелкие chunks для поиска, но передавать в LLM родительский более широкий контекст

Работа с таблицами и структурированными данными

QA по таблицам — отдельная задача. Варианты:

  • Text2SQL: LLM генерирует SQL-запрос, выполняет, возвращает результат
  • Table serialization: таблица → Markdown/CSV → в контекст LLM
  • TAPAS (Google): специализированная модель для QA по таблицам

Метрики качества

  • Exact Match (EM): доля вопросов с точно правильным ответом (для extractive)
  • F1 score: token overlap ответа с эталоном
  • RAGAS: специализированная библиотека для evaluation RAG: faithfulness, answer relevance, context precision, context recall