Python · 项目报告

Doriandarko/texts-to-transformer

Train a tiny Transformer from scratch on your iMessage history, entirely on your Mac.

已完成 打开 GitHub
D
394星标
37Fork
2Issue
MIT许可证

分析结果

项目分析

texts-to-transformer 是一个面向 Apple Silicon Mac 的本地化机器学习项目,用于从用户自己的 iMessage 历史记录中从零训练一个小型 decoder-only Transformer 语言模型。它提供了完整流水线:安全快照 Messages 数据库、文本提取、隐私脱敏、数据集划分、训练 byte-level BPE tokenizer、使用 MLX 训练小型 Transformer、评估记忆风险、导出模型,并在本地终端生成类似用户个人风格的回复建议。项目强调“非预训练”,目标不是构建通用 AI 助手,而是实验性地学习个人聊天语气、短句风格、emoji、标点和常见回复模式。

适用领域 本地机器学习 / 自然语言处理 / 小型语言模型训练 / Apple Silicon / MLX / iMessage 数据处理 / 隐私保护与本地优先应用 / 个人风格建模 / Transformer 教学与实验
配置难度 中高级。项目安装本身不复杂,但完整运行需要理解 macOS 权限、iMessage 数据库快照、Python/uv、MLX、tokenizer、Transformer 训练、评估指标和隐私风险。对有机器学习和命令行经验的开发者较友好;对普通非技术用户门槛较高。
商业价值 该项目的直接商业化价值有限,因为它主要是个人本地实验工具,且训练结果不是通用助手。但它在技术参考和产品原型层面有较高价值:可以作为本地优先 AI、隐私敏感数据处理、个人风格建模、Apple Silicon MLX 应用、端侧小模型训练的示范项目。对于做端侧 AI、个人知识/沟通助手、隐私保护型 AI 产品的团队,它提供了有参考意义的数据管线、审计设计和能力边界说明。
01

技术亮点

  • 完整端到端流水线,从 iMessage 数据库快照到本地模型推理全部覆盖。
  • 本地优先设计,不上传数据,不调用云端模型,不发送 iMessage,只在终端生成建议。
  • 隐私保护做得较细,包括只读数据库备份、HMAC 伪匿名化、URL/邮箱/手机号样式字符串脱敏、日志不打印原文、Git 忽略私有产物。
  • 针对 Apple Messages schema 变化设计了 inspect-schema 步骤,而不是硬编码固定数据库结构。
  • 支持从零训练 tokenizer 和 Transformer,适合教学和理解语言模型训练细节。
  • 使用 MLX,适合 Apple Silicon 用户体验本地训练。
  • 包含训练、评估、导出、推理、审计、测试等工程化环节。
  • README 对能力边界描述清晰,明确说明模型不是通用助手,可能记忆隐私文本。
  • 提供了模型选择机制、memorization check、held-out test 评估和审计命令,有助于降低误用风险。
  • MIT 许可证,便于学习、修改和二次开发。
02

目标用户

  • 使用 Apple Silicon Mac 的机器学习开发者
  • 对从零训练 Transformer 感兴趣的 NLP 学习者
  • 希望研究个人聊天风格建模的开发者
  • 关注本地优先和隐私保护 AI 的工程师
  • 想学习 MLX 训练流程的 Apple 生态开发者
  • 有大量 iMessage 历史记录并愿意在本地实验的高级用户
03

配置要求

  • 硬件:Apple Silicon Mac,M1 或更新芯片。
  • 系统:macOS 14 或更新版本。
  • 内存:建议至少 16GB 统一内存。
  • 磁盘:需要足够空间存储 Messages 数据库快照、tokenized corpus、checkpoint、导出模型和中间报告。
  • 权限:运行 snapshot 的应用需要 Full Disk Access,以只读方式访问 ~/Library/Messages/chat.db。
  • 依赖管理:使用 uv 管理 Python 环境和依赖。
  • Python:项目使用 Python 3.11。
  • 机器学习框架:使用 MLX 0.32.0,不依赖 PyTorch。
  • 数据要求:真实训练至少需要一百万 token;数据量不足时项目会拒绝训练或标记为高记忆风险实验。
  • 隐私配置:需要妥善保护 work/ 和 outputs/ 目录,建议使用 FileVault 加密磁盘,不应提交、上传或分享这些目录。
  • 模型配置:默认提供 model-1m 和 model-7m 两个配置,分别约 1.38M 和 6.16M 参数。
04

适用场景

  • 从自己的 iMessage 历史中训练一个小型个人回复风格模型
  • 学习从数据准备、tokenizer 训练到 Transformer 训练和推理的完整流程
  • 研究小数据集条件下语言模型的过拟合和记忆风险
  • 验证 MLX 在 Apple Silicon 上训练小模型的可行性
  • 构建仅在本地运行、不上传聊天数据的实验性 AI 回复建议工具
  • 作为隐私敏感数据处理、伪匿名化、数据集切分和审计流程的参考实现
05

部署与配置

  • 确认设备为 Apple Silicon Mac,macOS 14 或更高版本,建议至少 16GB 统一内存。
  • 安装 Homebrew 和 uv;如果尚未安装 uv,可执行:brew install uv。
  • 克隆仓库:git clone https://github.com/Doriandarko/texts-to-transformer.git。
  • 进入项目目录:cd texts-to-transformer。
  • 同步 Python 依赖:uv sync。
  • 运行环境检查:uv run imessage-mlx doctor。
  • 如果 doctor 提示无法安全访问 Messages 数据库,需要在 macOS 系统设置中为 Terminal、Codex 或实际运行命令的应用授予 Full Disk Access。
  • 创建 iMessage 数据库安全快照:uv run imessage-mlx snapshot --config configs/data.yaml。
  • 检查本地 Messages schema:uv run imessage-mlx inspect-schema --database work/snapshot/chat.db --output work/schema/schema.json。
  • 构建私有数据集并运行隐私审计:uv run imessage-mlx prepare --config configs/data.yaml && uv run imessage-mlx privacy-audit。
  • 训练 tokenizer:uv run imessage-mlx train-tokenizer --train work/splits/train.jsonl --output outputs/tokenizer --vocab-size 4096。
  • 编码语料并选择模型大小:uv run imessage-mlx corpus-stats --splits work/splits --tokenizer outputs/tokenizer --output work/tokens。
  • 训练模型:uv run imessage-mlx train --config configs/model-1m.yaml --data work/tokens --tokenizer outputs/tokenizer --output outputs/runs/my-model。
  • 评估测试集:uv run imessage-mlx evaluate --checkpoint outputs/runs/my-model/best --data work/tokens --output outputs/evaluation.json。
  • 导出最终模型:uv run imessage-mlx export --checkpoint outputs/runs/my-model/best --metrics outputs/evaluation.json --output outputs/final。
  • 启动本地回复生成器:uv run imessage-mlx chat --model outputs/final。
06

风险与注意事项

  • 隐私风险较高:训练数据来自个人 iMessage,模型和中间产物可能记忆敏感聊天内容。
  • 伪匿名化不是匿名化,work/ 和 outputs/ 泄露后仍可能造成隐私暴露。
  • 模型能力有限:从零训练的小模型无法可靠进行推理、事实问答或复杂任务。
  • 数据量不足时容易严重过拟合,只是记住常见句子而不是泛化个人风格。
  • 仅支持 Apple Silicon 和 MLX,对 Windows、Linux、Intel Mac 用户不友好。
  • 需要 Full Disk Access,普通用户可能对 macOS 权限配置不熟悉。
  • 依赖 iMessage 数据库结构和 macOS 行为,未来系统升级可能导致兼容性问题。
  • 生成内容可能包含不合适、过时或私密的短语,不应直接自动发送。
  • 训练效果高度依赖用户历史消息数量、质量和多样性。
  • 在企业或合规环境中处理聊天数据可能涉及法律、隐私和数据治理问题。

历史记录

热榜历史快照

2026-07-15 第21名 新收录 · github_search
2026-07-14 第19名 新收录 · github_search
2026-07-13 第21名 新收录 · github_search
2026-07-12 第22名 新收录 · github_search