Журнал изменений
Здесь фиксируется состояние стека и очередь задач. Мы намеренно держим невыполненное на той же странице, что и выполненное: список обещаний, живущий отдельно от списка сделанного, слишком легко становится художественным произведением.
Две проверки того, чего от системы обычно не ждут.
- Учебное восстановление: копия развёрнута в изолированный экземпляр, боевые данные не затрагивались. Три коллекции совпали точка в точку, векторы проверены на работоспособность, база переписки прошла проверку целостности. Найдена и исправлена ошибка в самой процедуре восстановления. Разбор.
- Внедрение команд через документ: четыре типовые закладки в поддельном акте, включая невидимую человеку, — ни одна не сработала, контрольный вопрос по документу отвечен верно. Охват — одна модель и один документ. Разбор.
Состав коробки заказчика больше не совпадает с конфигурацией стенда и вынесен в отдельную спецификацию. Главное в ней:
- Видеокарта
RTX 5060 Ti 16 ГБи драйвер ветки570+(CUDA 12.8): на ветке 550 карты 50-й серии не работают вовсе. - Хранение — зеркало из двух NVMe вместо одиночного диска: без избыточности ZFS видит порчу данных, но починить её нечем.
- ИБП с двойным преобразованием и чистой синусоидой. Бюджетный линейно-интерактивный даёт на батарее ступенчатый сигнал, от которого блок питания с активным PFC уходит в защиту.
- Основная модель поставки —
Gemma 4 12B(Apache 2.0) с контекстом от 128К. Перевод стенда на неё — в очереди.
Сам стенд остаётся на прежнем железе: пересобирать его до первого оплаченного заказа мы не будем, и в таблицах это видно честно.
Эмбеддинги и переранжирование считаются на видеокарте в половинной точности. Модели поиска и алгоритм не менялись, переиндексация не понадобилась.
- Один поиск:
16,5 с→0,3 с. Полный ответ, среднее по трём моделям:66 с→15 с(от 9 до 25 с). - Качество поиска не изменилось: нужный фрагмент найден в 45 случаях из 45 до и после, ни один результат не сдвинулся. Разбор.
- Заголовок объекта теперь наследуется в табличные блоки: доля найденных фрагментов на размеченном наборе выросла с 41 из 45 до 45 из 45.
- Квалификационный прогон младшей модели с базой знаний — 49 верных ответов из 50 на эталонном корпусе; без базы все три модели не ответили верно ни на один вопрос. Разбор.
Полная конфигурация полигона CIPHER проверена вживую и вынесена в раздел Стек и версии. Ключевые позиции среза:
- Среда:
Debian 13 (trixie), ядро6.12,Docker 29.5.2, драйвер550.163.01(CUDA 12.4). - Модели:
Ollama 0.24.0, основная — Gemma 3 (12B, окно 16К), быстрая — Gemma 4 (e4b); резерв — Gemma 2, Qwen 2.5, Llama 3. - Поиск:
Qdrant 1.18.1, эмбеддингиBAAI/bge-m3(1024), переранжированиеBAAI/bge-reranker-v2-m3, гибрид вектор + BM25 с весом 0.5. - Документы:
Docling 1.26и собственный слойokb docling-shim— умное включение OCR, структурная нарезка по разделам. - Голос:
okb-stt(faster-whisper large-v3-turbo),openedai-speech(XTTS), доступ с телефона через PWA поверх HTTPS. - Сеть:
Caddy 2.10.2с локальным удостоверяющим центром, WireGuard,okb-firewall(IPv4 и IPv6), собственный узел SearXNG. - Хранение: ZFS, ежедневные снимки базы и векторных коллекций в 03:30, семь поколений.
- Защита: антивирусный контроль на входе в контур.
Основная модель поставки — Gemma 4 12B — на стенде ещё не прогонялась. После перехода — прогон по набору из пятидесяти вопросов и публикация замеров вместе с условиями.
Сегодня okb-stt распознаёт отдельные реплики. Разбор записи совещания на реплики с подписями «кто говорит» — отдельная задача, и до её решения протоколирование совещаний мы не продаём.
Автоматическое извлечение реквизитов из документов в структурированном виде и передача их в учётную систему. В базовую поставку не входит: делается отдельным проектом автоматизации под конкретную задачу.
Причина: данные клиента не покидают его периметр — включая любые производные от них. Разбор, который объяснял старую схему, с сайта убран, чтобы не создавать ложных ожиданий.
Закрашенная точка — то, что проверено на стенде. Пустая — очередь: ближайшее сверху, стратегическое ниже. Серая — снято с плана, и рядом написано почему. Дат для очереди мы не ставим намеренно: названная и сорванная дата хуже, чем честное «в работе».