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, ничего не отправляется в сеть.
⚙️ Как это работает / применить
git clone https://github.com/Doriandarko/texts-to-transformer.gituv sync && uv run imessage-mlx doctoruv run imessage-mlx snapshot --config configs/data.yamluv run imessage-mlx prepare && privacy-audituv run imessage-mlx train-tokenizer --train work/splits/train.jsonl --output outputs/tokenizer --vocab-size 4096uv run imessage-mlx train --config configs/model-1m.yaml --data work/tokens --tokenizer outputs/tokenizer --output outputs/runs/my-modeluv run imessage-mlx evaluate --checkpoint outputs/runs/my-model/bestuv run imessage-mlx export --checkpoint ... --output outputs/finaluv 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 до локального чата с проверкой утечек и меморизации.