Автоматичне вилучення фактів: LLM та NLP пайплайни

Щодня компанії обробляють тисячі документів: договори, рахунки, звіти, новини. Ручний пошук сутностей — сторін, сум, термінів — займає години і дає 70–80% точності. Типова помилка: пропуск дати або неправильна прив'язка контрагента — веде до штрафів і зриву термінів. [Information extraction](https:/

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1439
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Щодня компанії обробляють тисячі документів: договори, рахунки, звіти, новини. Ручний пошук сутностей — сторін, сум, термінів — займає години і дає 70–80% точності. Типова помилка: пропуск дати або неправильна прив'язка контрагента — веде до штрафів і зриву термінів. Information extraction (IE) вирішує цю проблему: вилучає сутності, відношення та події з точністю до 95%. Вилучення фактів з тексту перестає бути рутиною.

Ми автоматизуємо повний цикл: від парсингу до нормалізації. Використовуємо LLM (GPT-4o, Claude, LLaMA 3) та класичні NLP-пайплайни. Обираємо підхід під задачу — або комбінуємо. Гібридна архітектура дозволяє досягти F1 до 95% при затримці менше 200 мс. Середня економія на ручній обробці — до 60% витрат або 500 людино-годин на місяць.

Які типові помилки допускають при вилученні даних?

При вилученні з договорів часто плутають назви компаній через опечатки або скорочення — «ТОВ Ромашка» і «Ромашка ТОВ» вважаються різними. Нормалізація за допомогою edit distance (Levenshtein) та synonym dictionaries вирішує проблему. Дублікати сутностей — одна й та сама інформація зустрічається в різних документах з різними атрибутами. Використовуємо entity linking через граф знань. Нарешті, неоднозначність контексту: слово «рахунок» може бути банківським рахунком або рахунком на оплату. Disambiguation через LLM з few-shot прикладами.

Чому LLM виграє у класичних пайплайнів?

LLM з structured output (Pydantic, OpenAI function calling) справляються з вилученням без тонкого налаштування. Приклад:

from pydantic import BaseModel from openai import OpenAI class CompanyInfo(BaseModel): name: str revenue: float | None revenue_year: int | None ceo: str | None headquarters: str | None employees_count: int | None client = OpenAI() response = client.beta.chat.completions.parse( model="gpt-4o-mini", messages=[{ "role": "user", "content": f"Извлеки информацию о компании из текста:\n{text}" }], response_format=CompanyInfo, ) result = response.choices[0].message.parsed 

Цей код працює для будь-яких текстів — від фінансових звітів до новин. Без розмітки, без pipeline. Але для >1000 док/год та latency <100 мс класичний pipeline дешевший і швидший. Нещодавно на проєкті з маркетплейсом ми вилучили 500k+ товарних карток з 1 млн PDF. Використовували комбінацію OCR (Tesseract) + LayoutLM для таблиць + GPT-4o для вилучення атрибутів. F1 на тестовій вибірці — 93%.

Порівняння підходів

Характеристика LLM-based Classic pipeline
Точність (F1) 75–95% 85–95%
Затримка 1–10 с на запит <100 мс
Гнучкість Висока Низька
Вартість на 10k док Середня Низька
Необхідність даних Ні Є (розмічені дані)
Інтеграція REST API Можно embed

Як вилучення фактів з тексту вирішує проблему обробки документів?

Вилучення фактів з тексту — ключовий етап побудови баз знань. У типовому проєкті ми проходимо п'ять етапів:

Етап Тривалість Результат
Аналітика 2–5 днів Виділення цільових сутностей і відношень
Проектування 2–10 днів Вибір архітектури (LLM, BERT, spaCy)
Реалізація 1–4 тижні Написання коду, налаштування пайплайнів
Тестування 1 тиждень Розрахунок метрик, A/B-тести
Деплой 2–5 днів Контейнеризація, REST API, документація

Терміни: від 2 тижнів до 2 місяців залежно від складності. Вартість розраховується індивідуально.

Що входить в роботу?

  • Аналітичний звіт із виділеними сутностями та відношеннями
  • Навчена модель або пайплайн (LLM або класичний)
  • REST API з документацією (OpenAPI)
  • Інтеграція з CRM (Bitrix24, 1С та ін.)
  • Навчання співробітників (до 5 днів)
  • Технічна підтримка на 3 місяці

Покроковий процес впровадження

  1. Аудит даних — збір зразків документів, визначення цільових сутностей і метрик якості
  2. Вибір архітектури — тестування LLM, BERT, spaCy на ваших даних, фіксація baseline
  3. Розробка пайплайну — написання коду, налаштування inference, оптимізація latency
  4. Тестування — розрахунок Precision/Recall/F1, A/B-тести, коригування
  5. Деплой — контейнеризація, розгортання на вашій інфраструктурі або в хмарі
  6. Супровід — моніторинг метрик, донавчання при зміні даних

Оцінка якості вилучення

Метрики Precision/Recall/F1 розраховуються по кожному типу сутностей. Для відношень — relation-level F1, для слотів — accuracy заповнення. Типові результати: 90–95% F1 на звітах, 75–85% на новинах.

Детальніше про метрики: F1 — гармонійне середнє Precision і Recall. Для кожного типу сутності рахуємо окремо. Якщо важлива повнота (наприклад, пошук всіх згадок), налаштовуємо пайплайн з пріоритетом Recall (до 98%) за рахунок точності.

Гарантуємо: фіксовані метрики якості в договорі, сертифіковані інженери з досвідом 10+ проєктів (NLP, Computer Vision, LLM), підтримка після впровадження. Якщо ви хочете автоматизувати вилучення даних з ваших документів, зв'яжіться з нашими інженерами для консультації. Замовте пілотний проєкт без передоплати — оцінимо ваш кейс за 2 дні.