[2026-10-10] eagle: personal/projects/personal-os/personal-os-data-analysis-workflow-2026-10-09.md
This commit is contained in:
1 parent
be7cbbf8d3
commit
be71fa3a69
1 file changed
+56
-12
@@ -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?
|
||||
- Какие классы смысловых связей можно принимать автоматически после оценки, а какие требуют дополнительной проверки?
|
||||
- Как обновлять зависимые представления после изменения родителей, ролей или исходных решений?
|
||||
|
||||
Reference in new issue
Block a user