From be71fa3a6921651cc101e81456bb7f62e6bb1315 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sat, 10 Oct 2026 14:10:14 +0600 Subject: [PATCH] [2026-10-10] eagle: personal/projects/personal-os/personal-os-data-analysis-workflow-2026-10-09.md --- ...al-os-data-analysis-workflow-2026-10-09.md | 68 +++++++++++++++---- 1 file changed, 56 insertions(+), 12 deletions(-) diff --git a/personal/projects/personal-os/personal-os-data-analysis-workflow-2026-10-09.md b/personal/projects/personal-os/personal-os-data-analysis-workflow-2026-10-09.md index bc1e4b53..b915ff1a 100644 --- a/personal/projects/personal-os/personal-os-data-analysis-workflow-2026-10-09.md +++ b/personal/projects/personal-os/personal-os-data-analysis-workflow-2026-10-09.md @@ -1,17 +1,20 @@ --- date: '2026-10-09' -status: research-proposal +status: local-rlm-stand-ready tags: - personal-os - data-analysis - workflow - knowledge-graph +updated: '2026-10-10' --- # Personal OS — анализ выгружаемых данных: контекст, связывание и workflow -Дата: 2026-10-09, Asia/Bishkek. Сводка исследования и обсуждения с Алексом. +Дата исходного исследования: 2026-10-09, Asia/Bishkek. Обновлено: 2026-10-10 по фактическому развёртыванию локального стенда. -**Статус:** направление обработки обсуждено; конкретный graph runtime, модели и workflow ещё не выбраны по результатам испытаний. Описанные ниже этапы — предложение, а не отчёт о работающих агентах. Сохранение этой заметки не запускает обработку, не меняет сборщики и расписания. +**Статус:** локальный RLM-стенд развёрнут и проверен на синтетическом входе с Qwen3.8-27B и Qwen3-Coder-30B-A3B. Основной кандидат — Qwen3.8-27B на MLX; Coder — для сравнения, 9B — для последующей проверки дешёвых дочерних вызовов. Рабочие данные ещё не выбраны; качество анализа, graph runtime и производственный workflow ещё не проверены и не выбраны по результатам испытаний. Архив, incoming и потребители аналитики к стенду не подключены. + +**Согласованный порядок:** проверяемый локальный RLM на небольшом наборе связных работ → расширение на архив → подключение incoming. Подробный текущий статус и шаги — в разделе 9. Связанные документы: [[personal-os-action-plan-2026-10-05]], [[personal-os-six-layer-analysis-2026-10-05]], [[personal-os-evidence-graph-design-2026-10-04]], [[personal-os-system-review-index]]. @@ -161,6 +164,8 @@ Agent run на каждое событие технически возможен ## 8. Выбор графа и готовых систем остаётся открытым +После обновления плана 10 октября первоочередная проверка — локальный RLM на небольшом наборе связных работ. Сравнение Graphiti/Cognee проводится позже, если измеренные задачи хранения и поиска требуют такого компонента; развёрнутый стенд пока не содержит этих систем. + Нужно разделить три решения: - **Модель смысла:** какие объекты, отношения, источники и времена мы представляем. @@ -183,9 +188,46 @@ Graphiti передаёт при извлечении отношений пре Рабочая гипотеза — адаптация готового механизма плюс предметные правила и сборщики. Не нужно заранее выбирать исключительно самописный контур или запускать постоянные параллельные графы. -## 9. Ближайшее проверяемое испытание +## 9. Локальный RLM: текущий стенд и пошаговый план -В рамках E2–E3 подготовить 60–100 связанных эпизодов: текущие задачи Алекса, история участия, документация/onboarding/processes, старые размеченные баги и новый поток. Сопоставить явные связи/обычный поиск с Cognee и Graphiti на одинаковом корпусе. +### 9.1. Что развёрнуто и проверено 10 октября + +Стенд находится в `/Users/admin/Developer/personal-os/tools/rlm-lab`; инструкция запуска — [README](/Users/admin/Developer/personal-os/tools/rlm-lab/README.md). Это отдельное окружение для проверки RLM, без подключения рабочих источников и записи в БД Personal OS. + +| Компонент | Фактическое состояние | +|---|---| +| RLM | `fast-rlm 0.4.3`, Deno `2.9.6`, Python в локальной `.venv` | +| MLX | `mlx-lm 0.31.1`, `mlx / mlx-metal 0.31.1` | +| Основной профиль `qwen27b` | `mlx-community/Qwen3.8-27B-4bit`, revision `10c35caafbb80f7dc6a7a432cdd11af10a6d4818`; веса скачаны | +| Профиль сравнения `coder30b` | `mlx-community/Qwen3-Coder-30B-A3B-Instruct-4bit`, revision `6e302ea604ad9ab206367e2c501d1571023e7b6d`; веса скачаны | +| API | `http://127.0.0.1:8767/v1`; при обновлении заметки health подтвердил `qwen27b`, `backend_ready: true` | +| 9B и смешанная маршрутизация | Не подключены; конкретный checkpoint 9B ещё предстоит выбрать | + +Одновременно загружена одна модель; корневые и дочерние вызовы используют активный профиль. MLX закреплён на 0.31.1 после воспроизведённого сбоя генерации с 0.31.2; оба профиля прошли проверку на закреплённой версии. + +**Синтетическая проверка прошла для обеих моделей:** реальное выполнение кода в REPL, дочерний вызов на глубине 1, ответ ребёнка `42`, итог `{"total":42,"label":"synthetic"}`, проверка JSON Schema. Проверены офлайн-загрузка пакетов REPL, блокировка чтения вне каталога стенда, внешней сети и запуска процессов. Это подтверждает работоспособность инфраструктуры; качество поиска, смысловых связей и временного состояния на рабочих данных пока не оценивалось. Длительность этих коротких прогонов не используется для выбора победителя. + +Основания: [сводка проверок](/Users/admin/Developer/personal-os/tools/rlm-lab/.runtime/verification.json), [манифест Qwen](/Users/admin/Developer/personal-os/tools/rlm-lab/.runtime/runs/20261010T075741-094c03/manifest.json), [манифест Coder](/Users/admin/Developer/personal-os/tools/rlm-lab/.runtime/runs/20261010T080002-39971c/manifest.json), [конфигурация](/Users/admin/Developer/personal-os/tools/rlm-lab/config.json). + +Начальные ограничения: глубина 2, максимум 16 модельных вызовов на прогон и 8 на агента, общий бюджет completion 16 384 токена, до 2 048 токенов ответа на вызов, 300 секунд на прогон. Лимиты — исходные настройки, их достаточность проверяется на выбранных работах. + +У каждого прогона сохраняются снимок входа, hash, модель и revision, настройки и версии пакетов, трасса вызовов, результат и статус. Полные запросы и ответы API также журналируются локально. `.runtime` и `datasets/private` исключены из Git. Внешняя сеть нужна для установки и скачивания весов; подготовленный REPL использует локальные пакеты и обращается только к локальному API. Сервис запускается вручную, автозапуска после перезагрузки нет. + +**Ещё не реализовано:** адаптер рабочих выгрузок, предметные инструменты поиска/чтения оригиналов, индексы, схема смысловых результатов и независимый эталон, смешанные вызовы с 9B, массовая обработка архива и incoming. + +### 9.2. Дальнейшие шаги и условия перехода + +1. **Выбрать данные после развёртывания стенда.** Начальный ориентир — 10–15 связных работ, а не случайные отдельные записи. Алекс выбирает состав; для каждой работы собрать оригиналы, родителей/подзадачи, memberships, существенные комментарии, PR и связанные обсуждения. Зафиксировать snapshot, IDs, версии/hash, время события и загрузки, недостающие материалы. Реальные данные в стенд пока не загружать до выбора. +2. **Зафиксировать проверяемый результат и эталон.** Задать схему: предмет работы, отношения, предложение/решение/отмена/реализация/выпуск, время, конкретные источники и фрагменты, неизвестности. Составить независимые ожидаемые ответы по оригиналам; разделить примеры для настройки и отложенной проверки по работам, избегая утечки соседних записей. +3. **Подключить чтение и поиск на выбранном snapshot.** Реализовать доступ к оригиналам и явным связям, затем текстовый поиск кандидатов; смысловой поиск и rerank добавлять по измеренным пропускам. Запустить полный цикл одной работы: чтение → поиск → дочитывание → обоснованные выводы. Ни результат модели, ни сходство текстов не заменяют источник. +4. **Сравнить режимы на одинаковых данных.** Базовый уровень — явные связи и обычный поиск; отдельно — модель с заранее собранным контекстом; затем RLM с Qwen27B и RLM с Coder30B. В обоих RLM-прогонах root и children используют одну модель. Зафиксировать одинаковые входы, лимиты и версии, повторы и все неудачные прогоны. +5. **Расширить проверку до 60–100 связанных эпизодов.** После исправления ошибок малого набора включить текущие задачи, историю участия, документацию/onboarding/processes, старые баги и сохранённые новые изменения. Применить контрольные случаи ниже, отдельно проверяя межсферные пропуски и ошибочное наследование ответственности. Это будущий этап, корпус ещё не подготовлен. +6. **Проверить дешёвые дочерние вызовы 9B.** Выбрать доступный MLX checkpoint, реализовать маршрутизацию и сначала поручить ограниченные задачи: выбор кандидатов или извлечение подтверждающих фрагментов. Сравнить с дочерними вызовами основной модели по качеству, времени, памяти и стоимости переключения моделей. Не считать смешанную схему готовой до этих проверок. +7. **Выбрать необходимый механизм хранения и поиска.** По результатам испытания решить, достаточно ли явных связей и обычного поиска или нужен готовый графовый компонент. Cognee и Graphiti остаются кандидатами для отдельного сравнения на том же эталоне; их проверка не предшествует рабочему RLM-срезу и ещё не выполнялась. +8. **Расширить обработку на архив.** Подготовить структурный каталог всего доступного корпуса; запускать возобновляемые порции: текущие работы → история участия → документация → другие области и пропуски. Сохранять основания, версии и прогресс; поиск не ограничивать уже назначенными категориями. До массового прогона оценить пропуски, ресурсный бюджет и правила принятия связей. +9. **Подключить incoming тем же механизмом.** Сначала replay сохранённых изменений, затем наблюдение за новым потоком: дедупликация, объединение событий по работе/треду, различение event time и received time, обновление зависимых представлений. После проверки согласованности архивного и инкрементального результата подключать потребителей общего контекста. + +### 9.3. Контрольные случаи и оценка качества Обязательные случаи: @@ -202,15 +244,16 @@ Graphiti передаёт при извлечении отношений пре Отдельно измерять: -- покрытие рамочной разметкой и покрытие проверенными связями; -- найденный релевантный контекст и пропущенные межсферные пересечения; -- ложные связи/merge и правильность временного состояния; -- долю корректных неизвестностей; -- стоимость, длительность, повторы обработки и ручные исправления. +- полноту найденных кандидатов и пропущенный релевантный контекст, включая межсферные пересечения; +- точность и полноту подтверждённых связей, ложные связи и merge; +- правильность временного состояния и различение участия, релевантности и ответственности; +- долю корректных неизвестностей и выводов без подтверждающего фрагмента; +- покрытие рамочной разметкой отдельно от покрытия проверенными связями; +- длительность, модельные вызовы/токены, пиковую память, повторы, сбои и ручные исправления. Предварительные модельные выводы не служат независимым эталоном для оценки той же модели. Проверка человеком сосредоточена на важных неоднозначностях и контрольных примерах, а не на ручном разборе всех десятков тысяч задач. -**Результат испытания:** работающий срез «история + новое изменение → найденный контекст → проверяемые связи/состояние», оценка массового прогона и обоснованный выбор готового компонента. +**Следующий ожидаемый результат:** выбранный малый набор и рабочий проверяемый срез RLM на нём. **Результат последующих испытаний:** «история + новое изменение → найденный контекст → проверяемые связи/состояние», оценка массового прогона и обоснованный выбор моделей и готового компонента. Эти результаты ещё не получены. ## 10. Открытые вопросы @@ -218,7 +261,8 @@ Graphiti передаёт при извлечении отношений пре - Какие действия над задачей считаются разными видами участия Алекса? - Как подтверждать текущие области и роли, отличая их от исторического опыта? - Какая схема контекстных пакетов сохраняет смысл при приемлемом размере? -- Какие backend и модели выиграют на нашем наборе? +- Какое качество покажут Qwen3.8-27B и Qwen3-Coder-30B-A3B на выбранных работах; какой checkpoint 9B пригоден для дочерних вызовов и оправдана ли смешанная маршрутизация? +- Какой механизм хранения/поиска нужен по результатам этих проверок? - Какой бюджет поиска/обработки нужен архиву и incoming? - Какие классы смысловых связей можно принимать автоматически после оценки, а какие требуют дополнительной проверки? - Как обновлять зависимые представления после изменения родителей, ролей или исходных решений?