Tiny iMessage Transformer с нуля

источник ↗ ·

Полный пайплайн обучения миниатюрной языковой модели на истории iMessage, полностью на Mac без предобучения.

privacy

Эта заметка участвует в semantic memory.

AI Summary

🚀 TL;DR Репозиторий предоставляет законченный локальный пайплайн: безопасный снимок базы Messages, извлечение и псевдонимизация текста, разбиение на сессии с guard-band, обучение byte-level BPE-токенизатора и decoder-only Transformer (1.38M или 6.16M параметров) на MLX, оценка, экспорт и локальный чат-интерфейс.

📖 Что это такое Проект создаёт персональную модель стиля общения на основе истории сообщений пользователя, без использования предобученных весов. Модель запоминает фразы, ритм, сленг и типичные ответы владельца, но не обладает общими знаниями или способностью к сложному рассуждению.

🔑 Ключевые факты

  • Архитектура: 4-слойный decoder-only Transformer, 1.38M параметров, контекст 256 токенов, vocab 4096 (по умолчанию).
  • Альтернатива: 6.16M-параметровая конфигурация для больших историй.
  • Данные: ~8M токенов в примере; отказ от обучения при <1M токенов.
  • Безопасность: read-only SQLite backup, HMAC-псевдонимизация, удаление PII, 90/5/5 сплиты с 7-дневными guard-band, исключение дубликатов.
  • Требования: Apple Silicon (M1+), ≥16 ГБ unified memory, Full Disk Access, uv, Python 3.11, MLX 0.32.0.
  • Выход: локальный MLX inference, ничего не отправляется в сеть.

⚙️ Как это работает / применить

  1. git clone https://github.com/Doriandarko/texts-to-transformer.git
  2. uv sync && uv run imessage-mlx doctor
  3. uv run imessage-mlx snapshot --config configs/data.yaml
  4. uv run imessage-mlx prepare && privacy-audit
  5. uv run imessage-mlx train-tokenizer --train work/splits/train.jsonl --output outputs/tokenizer --vocab-size 4096
  6. uv run imessage-mlx train --config configs/model-1m.yaml --data work/tokens --tokenizer outputs/tokenizer --output outputs/runs/my-model
  7. uv run imessage-mlx evaluate --checkpoint outputs/runs/my-model/best
  8. uv run imessage-mlx export --checkpoint ... --output outputs/final
  9. uv run imessage-mlx chat --model outputs/final

Дополнительно: --resume-from, --temperature 0.5 --top-p 0.8 --max-new-tokens 24 --repetition-penalty 1.2 для контроля генерации.

💡 Вывод и значение Проект демонстрирует полностью контролируемое, приватное обучение модели стиля с нуля на личных данных. Он не заменяет fine-tuning больших моделей, но даёт воспроизводимый пример от snapshot до локального чата с проверкой утечек и меморизации.

Мои мысли

graph

Карта связей