/finetune.lab/labor-personnel-economics-q

./labor-personnel-economics-q

phase=2-prepareheartbeat=updated=2026-04-16 18:10:00 UTC
// research
loading_research...
// phase.json
{
  "slug": "labor-personnel-economics-q",
  "idea": "Экономика персонала (labor/personnel economics) — узкоспециализированная модель для жены Лёхи (преподаватель эконом-факультета МГУ). Q&A + объяснение концепций. Тест FinetuneLab end-to-end workflow.",
  "phase": "2-prepare",
  "substeps": {
    "1a-research-datasets": "done",
    "1b-research-models": "done",
    "gate-1-research": "approved-by-leha-warroom-2026-04-16",
    "2a-seed-examples": "done",
    "2b-bulk-generation": "delegated-to-artem",
    "2c-schema-contract": "delegated-to-hermes",
    "2d-leakage-check": "pending-artem-output"
  },
  "model": "mlx-community/Qwen3-8B-4bit",
  "dataset": {
    "total_target": 200,
    "train": 160,
    "eval": 40,
    "sources": [
      "synthetic-opus",
      "synthetic-gpt54"
    ],
    "seed_file": "data/seed_examples.jsonl"
  },
  "gate": null,
  "created_at": "2026-04-16T17:51:03Z",
  "updated_at": "2026-04-16T18:10:00Z"
}
// progress.md
# Progress — 2026-04-16T17:51:03Z

## Current step
Bootstrap complete. Delegating Phase 1A (datasets research → Hermes) and Phase 1B (models research → Artem) in parallel.

## Completed
- Project directory created: /Users/alphamachine/Projects/finetune-lab/projects/labor-personnel-economics-q
- SPEC.md generated from template
- phase.json initialized

## Pending
- 1A: Hermes research datasets → research-datasets.md
- 1B: Artem research models → research-models.md
- Gate 1: Лёха selects dataset+model combination

## Issues
(none)

- [2026-04-16 20:10 UTC] Dataset generation check: seed=20, existing_synthetic=0, remaining=190. Current step: dry-run validation in /Users/alphamachine/Projects/finetune-lab/projects/labor-personnel-economics-q.

- [2026-04-16 20:11 UTC] Dataset generation check: seed=20, existing_synthetic=0, remaining=190. Current step: generation run in /Users/alphamachine/Projects/finetune-lab/projects/labor-personnel-economics-q.

- [2026-04-16 20:12 UTC] Heartbeat: generated batch 1 topic=labor_supply_demand lang=en count=10. Synthetic total=10/180.

- [2026-04-16 20:13 UTC] Heartbeat: generated batch 2 topic=efficiency_wages lang=en count=10. Synthetic total=20/180.

- [2026-04-16 20:14 UTC] Heartbeat: generated batch 3 topic=principal_agent lang=ru count=10. Synthetic total=30/180.

- [2026-04-16 20:15 UTC] Heartbeat: generated batch 4 topic=human_capital lang=en count=10. Synthetic total=40/180.

- [2026-04-16 20:16 UTC] Error: batch_5[2]: assistant answer must be 150-600 words, got 135
// spec.md
# Fine-tune project: labor-personnel-economics-q

## Исходная идея
Экономика персонала (labor/personnel economics) — узкоспециализированная модель для жены Лёхи (преподаватель эконом-факультета МГУ). Q{{IDEA}}A + объяснение концепций. Тест FinetuneLab end-to-end workflow.

## Статус
- **Создан:** 2026-04-16T17:51:03Z
- **Фаза:** 1-research
- **Slug:** `labor-personnel-economics-q`
- **Путь:** `/Users/alphamachine/Projects/finetune-lab/projects/labor-personnel-economics-q`

---

## Phase 0 — Task framing (обязательный gate перед любой работой)

Этот блок заполняет Opus на основе идеи и переспросов у Лёхи. Без этого блока НЕ стартуем research.

### Цель
<!-- 1-2 предложения, что модель должна делать в проде -->
(Opus заполнит после анализа)

### Прод-стек, в котором модель живёт
- **Режим:** <!-- standalone / RAG (retrieval+rerank) / tool-use / agent-in-loop -->
- **Inference-формат:** <!-- messages: system + user → assistant; JSON mode; tool calls -->
- **Пример реального прод-запроса:** <!-- полный system+user как он приходит в проде -->
  ```
  <пример>
  ```
- **Кто вызывает модель:** <!-- какой сервис / endpoint / файл кода -->
- **Constraints:** <!-- latency budget, hardware, privacy -->

### Baseline
- **Текущая модель в проде:** <!-- gpt-5.4-mini / gpt-4o-mini / gemma4:e4b / none -->
- **Метрики baseline на prod-pipeline:** <!-- замерить до начала работы -->
  | Metric | Value |
  |---|---|
  | accuracy / task-metric | TBD |
  | instruction-following (использует retrieval?) | TBD |
  | latency | TBD |
  | cost / request | TBD |

### Success criterion
- **Улучшение которое нужно:** <!-- какая метрика на сколько -->
- **Гейт остановки:** если FT не обгоняет baseline в shadow-eval — проект закрывается как "not needed".

---

## Phase 1 — Baseline-first sanity (обязательный gate)

Перед выбором модели/датасета прогнать candidate base model (без FT) через прод-pipeline на 20-50 вопросах из реальных логов.

- **Базовая модель кандидат:** TBD
- **Test set источник:** TBD (реальные прод-логи, не synthetic)
- **Результат baseline через prod-pipeline:** TBD
- **Решение:** [ ] FT нужен (базовая не справляется) / [ ] FT не нужен (задача закрывается)

Если базовая уже даёт target — задача закрыта без FT. Это успех лаба.

---

## Phase 2 — Dataset design (prod-shape)

### Формат training examples
Training examples ОБЯЗАНЫ повторять прод-формат вызова.

- **Не:** `{question → answer}`
- **Да:** `{system (с полным контекстом как в проде), user, assistant}`

### Teacher trace capture
- **Teacher model:** TBD
- **Что сохраняем:** полный trace — system_prompt, retrieved_context, tool_calls, final answer
- **Где:** JSONL, одна строка — один пример, полная структура messages

### Датасеты
- TBD (заполнит research)

### Held-out test set
- **Источник:** реальные прод-логи (НЕ synthetic) — минимум 50 примеров
- **Используется для shadow-eval в Phase 6**

---

## Целевая модель (Phase 1B research)
- **Base model:** TBD
- **Размер:** TBD
- **Формат:** TBD (safetensors / GGUF)
- **Лицензия:** TBD

## Training plan
- **Метод:** LoRA (rank 32, alpha 64 — default, уточнять по задаче)
- **Stages:** TBD (обычно 1-2)
- **Hardware:** Mac Studio M3 Ultra (96GB) через MLX-VLM

---

## Gates (обязательная последовательность)

- [ ] **Phase 0 gate (Лёха):** task framing утверждён, baseline замерен, success criterion зафиксирован
- [ ] **Phase 1 gate (Opus + Лёха):** baseline-first прогон показал, что FT нужен (иначе close)
- [ ] **Gate 1 (Лёха):** research датасетов + моделей одобрен, выбрана комбинация
- [ ] **Gate 2 (Лёха):** sanity check на 10% данных пройден, early-beat-baseline positive
- [ ] **Gate 3 shadow eval (Лёха):** FT через прод-pipeline обгоняет baseline на held-out test, instruction-following не упало
- [ ] **Gate 4 deploy (Лёха):** одобряет регистрацию в Ollama / деплой

## Auto-drop rules
- Sanity (Phase 3) не обгоняет baseline через prod-pipeline на 10% данных → стоп, архивируем.
- Full train не обгоняет baseline → стоп, не экспортим.
- Shadow-eval показал регресс instruction-following → стоп, модель помечается "failed", post-mortem.

---

## Ссылки
- Phase 1 baseline-first: `baseline-first.md`
- Research датасетов: `research-datasets.md`
- Research моделей: `research-models.md`
- Решение Лёхи: `decision.md`
- Shadow eval: `shadow-eval.md`
- Прогресс: `progress.md`
// files [13]
  • ./.artem-prompt.txt
  • ./.artem-stderr.log
  • ./.hermes-prompt.txt
  • ./.hermes-stderr.log
  • ./SPEC.md
  • ./adapters
  • ./data
  • ./eval
  • ./idea.txt
  • ./phase.json
  • ./progress.md
  • ./research-datasets.md
  • ./research-models.md

/Users/alphamachine/Projects/finetune-lab/projects/labor-personnel-economics-q