Вы когда-нибудь пытались вручную вытащить revenue growth или net income из сотни 10-K форм? Это как искать иголку в стоге сена, если стог — это 200 страниц легального текста, а иголка — одна цифра в таблице на 89-й странице. Я пытался. И чуть не поседел.
Потом наткнулся на MinerU. Это не очередной overhyped AI стартап, а открытый пайплайн от исследователей. Его фишка — Vision Language Models (VLMs), которые смотрят на документ как на картинку и понимают, где что находится. Не просто читают текст, а видят таблицы, графики, сноски.
Что умеет этот зверь?
Представьте, что у вас есть PDF отчета Apple 10-K за 2023 год. Вам нужны конкретные метрики: Total Net Sales, Cost of Sales, Research and Development Expenses. Обычный LLM будет тупить, потому что документ слишком большой. А даже если впихнуть, он перепутает цифры из разных разделов или проигнорирует таблицы.
MinerU делает три вещи:
- Визуальный чанкинг: Разрезает PDF на логические блоки — страницы, таблицы, секции. Не просто по количеству слов, а по смыслу.
- Мультимодальное понимание: Использует модели вроде GPT-4V или открытые альтернативы (LLaVA, Qwen-VL), чтобы «прочитать» и текст, и визуальную структуру.
- Иерархическое извлечение: Сначала находит нужный раздел (например, "Consolidated Statements of Operations"), потом ищет в нем конкретную строку, потом извлекает значение.
Код или ничего: как это выглядит на практике
Вот минимальный рабочий пример. Установка — через pip. Документ берем с EDGAR.
import asyncio
from mineru import Mineru
async def main():
# Инициализация с GPT-4V (нужен OpenAI API ключ)
mineru = Mineru(model="gpt-4-vision-preview")
# Загружаем PDF 10-K отчета Tesla
pdf_path = "tesla_10k_2023.pdf"
# Задаем вопрос к документу
query = "What was the total automotive revenue for 2023?"
# Запускаем извлечение
result = await mineru.extract(pdf_path, query)
print(f"Ответ: {result.answer}")
print(f"Контекст: {result.context}") # Показывает, откуда взята информация
print(f"Уверенность: {result.confidence}")
asyncio.run(main())
Результат будет примерно таким:
Ответ: $82,419 million
Контекст: Извлечено из таблицы "Consolidated Statements of Operations" на странице 45, строка "Automotive sales".
Уверенность: 0.92
1 Скачиваем отчет
SEC filings лежат на EDGAR в разных форматах (HTML, XBRL, PDF). MinerU лучше всего работает с PDF, потому что сохраняет оригинальное форматирование. Можно автоматизировать скачивание через sec-edgar-downloader.
from sec_edgar_downloader import Downloader
dl = Downloader("MyCompany", "my@email.com")
# Скачиваем 10-K для Apple за 2023 год
dl.get("10-K", "AAPL", after="2023-01-01", before="2023-12-31")
2 Настраиваем пайплайн
Если не хотите платить за GPT-4V, можно использовать open-source VLMs через Ollama или Together AI. В MinerU есть поддержка.
from mineru import Mineru
from mineru.models import OpenAIModel, OllamaModel
# Вариант 1: GPT-4V (дорого, но точно)
model = OpenAIModel(model="gpt-4-vision-preview", api_key="your_key")
# Вариант 2: LLaVA через Ollama (бесплатно, медленнее)
model = OllamaModel(model="llava:7b", base_url="http://localhost:11434")
mineru = Mineru(model=model)
3 Извлекаем данные пакетно
Настоящая магия начинается, когда нужно обработать десятки отчетов. Вот как собрать revenue за 5 лет для нескольких компаний.
import pandas as pd
companies = ["AAPL", "MSFT", "GOOGL"]
years = ["2019", "2020", "2021", "2022", "2023"]
results = []
for ticker in companies:
for year in years:
pdf_path = f"reports/{ticker}_{year}_10k.pdf"
query = f"What was the total revenue for fiscal year {year}?"
result = await mineru.extract(pdf_path, query)
# Парсим числовой ответ
try:
revenue = float(result.answer.replace("$", "").replace(",", "").split()[0])
except:
revenue = None
results.append({
"ticker": ticker,
"year": year,
"revenue": revenue,
"confidence": result.confidence
})
# В DataFrame и дальше анализируем
df = pd.DataFrame(results)
print(df.pivot(index="year", columns="ticker", values="revenue"))
Предупреждение: бесплатные open-source VLMs (LLaVA, Qwen-VL) иногда галлюцинируют с числами, особенно в сложных таблицах. Для production лучше GPT-4V или Claude 3.5 Sonnet, но готовьтесь к счету.
С чем конкурирует MinerU? Таблица сравнения
MinerU не первый, кто пытается автоматизировать парсинг SEC filings. Вот как он выглядит на фоне альтернатив.
| Инструмент | Подход | Точность | Скорость | Стоимость |
|---|---|---|---|---|
| MinerU | VLM + иерархический парсинг | Высокая (90%+) | Средняя | Зависит от модели (GPT-4V дорого) |
| Традиционные парсеры (BeautifulSoup) | Regex + XPath | Низкая (ломаются при изменениях формата) | Быстрая | Бесплатно |
| LangChain + Text Splitters | Текстовые эмбеддинги | Средняя (теряет таблицы) | Медленная | API токены |
| Специализированные сервисы (AlphaSense, Sentieo) | Проприетарные модели | Очень высокая | Быстрая | Очень дорого ($10k+/мес) |
Главный плюс MinerU перед LangChain — визуальное понимание. LangChain будет резать PDF на куски по 1000 токенов и может разрезать таблицу пополам. MinerU видит таблицу целиком.
По сравнению со специализированными сервисами — MinerU открытый и гибкий. Хотите добавить поддержку китайских отчетов? Обучаете модель на специфических метриках? Пожалуйста. В статье про AI стек разработчика мы разбирали, как такие инструменты встраиваются в пайплайны.
Где это реально пригодится?
Если вы думаете, что это игрушка для гиков, ошибаетесь. Вот конкретные use cases:
- Кредитные аналитики: Автоматическое извлечение финансовых коэффициентов (Debt/EBITDA, Interest Coverage) из сотен отчетов для скоринга.
- Кванты и трейдеры: Построение датасетов для моделей прогнозирования. Вместо ручного сбора revenue, EPS, margins — скрипт на MinerU. Как в гайде по созданию финансового ИИ-трейдера, но без боли с данными.
- Аудиторы: Поиск несоответствий между числами в разных разделах (например, revenue в MD&A vs. финансовых statements).
- Исследователи: Анализ текстовых риск-факторов в 10-K. MinerU может извлекать не только числа, но и текстовые описания.
- Стартапы в fintech: Быстрый прототип продукта без $50k на подписку Bloomberg.
Особенно круто работает для ESG-метрик, которые часто размазаны по документу. Помните статью про автоматизацию ESG-отчетов? MinerU делает то же самое, но специализированно под SEC filings.
Подводные камни и больные места
Идеальных инструментов не бывает. Вот где MinerU может вас подвести:
- Цена: GPT-4V стоит $0.01-0.03 за изображение. Один 100-страничный PDF — это 100 изображений. $1-3 за отчет. Для пакетной обработки счет набегает быстро.
- Скорость: Обработка одного отчета занимает 30-60 секунд. Не для real-time анализа.
- Качество OCR: Если PDF сканированный с кривым качеством — VLM может не распознать текст. Нужен препроцессинг.
- Консистентность: Иногда модель возвращает "$123M", иногда "123,000,000", иногда "one hundred twenty three million". Нужна постобработка.
Мой совет — использовать гибридный подход. Простые, структурированные данные (например, основные финансовые показатели из XBRL) добывать традиционными парсерами. А для сложных, неструктурированных вещей (качественный анализ в MD&A, пояснения к таблицам) подключать MinerU.
Кому стоит попробовать, а кому лучше обойти стороной
Берите MinerU, если:
- Вы аналитик в хедж-фонде и вам нужно быстро сравнивать margins по сотне компаний.
- Вы строите fintech стартап и нуждаетесь в автоматическом сборе финансовых данных.
- Вы исследователь, который хочет проанализировать эволюцию риск-факторов за 10 лет.
- Вы уже пробовали автоматизацию разметки датасетов и хотите применить это к финансовым документам.
Не тратьте время, если:
- Вам нужно обрабатывать 1000+ отчетов в день — стоимость будет астрономической.
- У вас только простые, структурированные данные в XBRL — хватит обычного парсера.
- Вы ждете 100% точности — даже GPT-4V ошибается в 5-8% случаев.
- У вас нет технического бэкграунда — потребуется Python и понимание API.
Финансовые институты уже вовсю внедряют подобные технологии. В кейсах Klarna и HSBC видно, как AI становится инфраструктурой. MinerU — это open-source вариант для тех, у кого нет бюджета банка.
Что дальше? Будущее автоматического парсинга
MinerU сегодня — proof of concept. Завтра это будет стандартный инструмент в арсенале любого финансового аналитика. Тренды:
- Мультимодальные модели дешевеют: GPT-4V сегодня дорог, но через год появятся дешевые альтернативы с похожей точностью.
- Специализация: Будут появляться модели, обученные именно на финансовых документах, понимающие accounting standards и SEC regulations.
- Интеграция: MinerU-like инструменты будут встроены прямо в Bloomberg Terminal и FactSet как фича.
- Валидация: AI не только извлекает данные, но и проверяет их консистентность между документами — как в Deep Research Agent.
Мой прогноз: через 2 года ручной парсинг SEC filings будет выглядеть так же архаично, как расчеты на абакусе. Те, кто освоит инструменты вроде MinerU сейчас, получат серьезное конкурентное преимущество.
Начинайте с простого — возьмите 10-K одной компании, попробуйте извлечь 5 ключевых метрик. Потом автоматизируйте для 10 компаний. Потом добавьте quarterly reports. Главное — начать, пока другие все еще копируют цифры в Excel вручную.