Студент, который перестал терять мысль
Представьте: вы записали двухчасовую лекцию, скормили её Whisper, получили 30 тысяч токенов текста. Запускаете Llama 3.1 8B в LM Studio, просите сделать конспект — и через минуту получаете простыню, где первая половина пересказана подробно, а вторая — скомкана в абзац. Знакомо? Это Lost in the Middle — проклятие длинных контекстов. Модели запоминают начало и конец, а середина выпадает в осадок.
LongConspectWriter — это не очередная надстройка над ChatGPT. Это мультиагентный пайплайн, который бегает на видеокартах с 8 ГБ VRAM (да, RTX 4060, RTX 3050 — вы в игре). Он режет аудио на куски, кластеризует схожие по смыслу фрагменты, дробит контекст и только потом собирает итоговый конспект. Никаких 128 К контекста, никаких вылетов с OOM — только маленькие SLM, которые знают своё дело.
Важное уточнение: всё локально. Никаких API-ключей, никаких расходов за токены. Только ваша видеокарта и пара гигабайт оперативки.
Как это работает: три конвейера вместо одного
Внутри LongConspectWriter — три последовательных агента. Первый — Segmenter. Он получает текст расшифровки (от Whisper или любой другой ASR-системы) и режет его на логические блоки по 1500-2000 токенов. Не тупо по длине, а по смыслу: если лектор переходит к новой теме, Segmenter ставит разрыв.
Второй агент — Clusterer. Он берёт эти блоки и строит семантическую карту. Используются эмбеддинги от intfloat/multilingual-e5-large (или bge-m3, если нужно) — они прекрасно работают на CPU, так что VRAM не тратится. Блоки с похожей тематикой сбиваются в кластеры. Зачем? Чтобы потом, когда мы будем генерировать конспект, модель видела не мешанину из разных тем, а связный кусок лекции.
Третий — Synthesizer. Он получает каждый кластер как отдельный промпт («Сделай краткое изложение этого фрагмента лекции по физике/истории/чему угодно») и генерирует подконспекты. Финальный шаг — сборка: ещё один маленький LLM-агент склеивает подконспекты в единый документ, добавляя переходы.
Такая архитектура решает ещё одну боль — контекстное переполнение. В отличие от ситуации, описанной в статье про переполнение контекста в Opencode, LongConspectWriter не читает файлы повторно, а фрагментирует умно. Ещё он не страдает от Qwen Coder 30B вылетает с 'exceeds context size' — потому что использует модели максимум на 7B параметров.
Сравнение с альтернативами: почему не просто Whisper + GPT?
| Инструмент | VRAM | Контекст | Середина не теряется? | Локально? |
|---|---|---|---|---|
| Whisper + ChatGPT (API) | 0 ГБ | 128K (GPT-4) | Нет — теряет середину | Нет |
| LM Studio + Llama 3.1 8B | ~6-8 ГБ | 8K-32K | Нет — та же беда | Да |
| Google NotebookLM | — | Огромный | Да, но не локально | Нет |
| LongConspectWriter | ~4 ГБ | по 2K на агента | Да | Да |
Звучит логично, но есть нюанс: пайплайн — это не один вызов, а серия. Если вам нужно сгенерировать конспект для лекции на 30 минут, LongConspectWriter сделает это за 2-3 минуты на RTX 4060. Для двухчасовой — минут 10-12. ChatGPT сработает за 30 секунд, но, скорее всего, пропустит важный график из середины. Выбор за вами: скорость с риском потерять смысл или аккуратность с ожиданием.
Практический вкус: как это выглядит в коде
Репозиторий LongConspectWriter предлагает простой скрипт на Python. Всё, что нужно — установить зависимости через pip и запустить:
pip install -r requirements.txt
python long_conspect.py --input lecture.mp3 --model Qwen2.5-7B-Instruct-Q4_K_M.gguf
На выходе — файл conspect.md с маркдауном. Пример содержимого:
# Конспект лекции «Квантовая запутанность»
## Часть 1. ЭПР-парадокс
- Эйнштейн, Подольский, Розен предложили мысленный эксперимент в 1935 году.
- Идея: если квантовая механика верна, то возникает «жуткое дальнодействие».
## Часть 2. Неравенства Белла
- Джон Белл в 1964 году показал, что локальные скрытые параметры невозможны.
- Эксперименты Аспекта (1982) подтвердили нарушение неравенств.
### Ключевые формулы:
- P(a,b) = -a·b (для синглетного состояния)
- Среднее по Беллу: |S| ≤ 2
- Квантовое предсказание: S = 2√2
В теории это работает так, но на практике вы можете захотеть изменить модель для кластеризации. По умолчанию используется sentence-transformers/all-MiniLM-L6-v2, но для русского текста лучше поставить intfloat/multilingual-e5-large. Просто укажите аргумент --embedding-model.
Не советую так делать, если не хотите потерять в памяти: модель e5-large весит 2.5 ГБ, но она не грузится в VRAM, только в RAM. На 8 ГБ ОЗУ это может быть критично. Решение — использовать дистиллированную версию distiluse-base-multilingual-cased-v2 (500 МБ).
Внимание: если вы используете Windows, следите за тем, чтобы CUDA-версия PyTorch совпадала с драйвером. Иначе получите историю, похожую на LM Studio OOM на Windows — LLM будет жрать RAM, а не VRAM.
Бенчмарки: как мы тестировали на 8 ГБ
Мы прогнали тест на RTX 4060 (8 ГБ), Ryzen 5 5600, 16 ГБ ОЗУ. Взяли лекцию по молекулярной биологии длительностью 1 час 45 минут. Расшифровка дала 28 500 токенов.
- Whisper medium на GPU — занял 4 минуты, максимальное потребление VRAM — 1.2 ГБ.
- Кластеризация на CPU — 45 секунд, 0 ГБ VRAM.
- Генерация подконспектов (Qwen2.5-7B Q4_K_M) — 8 вызовов по 400-800 токенов, суммарно ~7 минут. Пиковое потребление VRAM — 4.6 ГБ.
- Финальная сборка (та же модель) — 1 минута, ещё 2 ГБ VRAM.
Итог: 12 минут на полную обработку. Ни одного падения по VRAM. Для сравнения, попытка засунуть 28K токенов в одну Llama 3.1 8B через LM Studio закончилась OOM на 6 ГБ — модель просто не влезла с кэшем. Если бы мы использовали Nvidia DMS для сжатия KV-кеша, может, и влезла бы, но качество конспекта всё равно пострадало бы из-за Lost in the Middle.
Кому это реально нужно
LongConspectWriter — не для всех. Если вы готовы платить за ChatGPT Plus и вас устраивают его конспекты — проходите мимо. Если вы студент, который, как и я, задолбался пересматривать записи лекций за полсеместра — это ваш инструмент. Также — для исследователей, которым нужно быстро структурировать интервью, стенограммы конференций или даже судебные заседания.
Отдельная категория — люди, которые держат домашнюю LLM-инфраструктуру. Разобравшись с ошибкой контекста в Qwen 3.5 или битвами за offload (LM Studio на 128 ГБ), они оценят элегантность пайплайна, который просто не создаёт проблем.
И напоследок — прогноз. Через год-два, когда SLM с контекстом 128K научатся не терять середину (слышали про Тёмную цепочку мыслей — там как раз подходы к улучшению внимания), пайплайны вроде LongConspectWriter могут стать не нужны. Но пока это лучшее, что есть на 8 ГБ VRAM.