戴老师的博客 - Apple Silicon
type: channel
link: https://www.tushu.info/category/Apple-Silicon/
description: Apple Silicon
items: 在 Mac 上本地训练诗词 AI：一个开源的 MLX 小模型训练包

在 Mac 上本地训练诗词 AI：一个开源的 MLX 小模型训练包
type: item
date: 2026-07-09T03:52:00+00:00
description: 你是否想过，让 AI 学会写一首合格的五言绝句，并不一定需要昂贵的 GPU 集群？最近我开源了一个项目 poetry_dataset，它展示了如何仅凭一台 M 系列芯片的 Mac（比如 Mac Air 16GB），就完成一个 1.5B 参数诗词模型的 LoRA 微调。整个过程不需要 NVIDIA 显卡，也不需要租任何云服务器。这个项目解决了什么问题？目前大多数大模型训练教程都指向 Linux + NVIDIA GPU 的方案——你需要 A100、H100，或者按小时租用云端 GPU。但对于普通开发者来说，成本门槛太高了。而苹果自研的 MLX 框架 改变了这一切。MLX 是苹果专门为 Apple Silicon 芯片设计的机器学习框架，它能高效利用统一内存架构，让大模型推理和微调在本地变得可行。这个项目就是基于 MLX 框架，面向中文诗词场景的一个完整训练包。数据来源：从 chinese-poetry 到指令微调数据集诗词数据的采集，源自著名的开源项目 chinese-poetry，它收录了从先秦到清朝的超过 50 万首中文诗歌。本项目的 build_dataset.py 脚本做了以下事情：精选数据源：从 chinese-poetry 中提取《唐诗三百首》和《宋词三百首》作为高质量核心集，再辅以部分扩展数据（前 15 个分片的唐诗 + 前 10 个分片的宋词）繁体转简体：使用 OpenCC 将所有文本统一转换为简体中文体裁自动分类：根据句数和每句字数，自动识别五言绝句、七言绝句、五言律诗、七言律诗构造 Alpaca 格式指令集：将诗歌数据转化为 instruction/input/output 格式的指令微调数据最终生成的训练数据包含 19,594 条样本（训练集）和 1,032 条样本（验证集），格式为 MLX-LM 所需的聊天对话格式。核心文件一览文件作用build_dataset.py从 chinese-poetry 原始数据构造指令微调数据集convert_to_mlx.py将 Alpaca 格式数据转为 MLX-LM 聊天格式 JSONLpingze_check.py简易格律校验工具，检查诗的字數/句数/押韵/平仄mlx_data/train.jsonl训练集（19,594 条）mlx_data/valid.jsonl验证集（1,032 条）cloud_gpu_alternative/云端 GPU 训练备选方案（LLaMA-Factory + LoRA）训练流程：三步上手第一步：安装环境conda create -n poetry python=3.10 -y conda activate poetry pip install mlx-lmmlx-lm 是苹果官方维护的库，专门在 Apple Silicon 上跑大模型处理和微调。第二步：转换数据python convert_to_mlx.py这会把 poetry_train.json 和 poetry_val.json 转换成 MLX-LM 要求的 JSONL 聊天格式，输出到 mlx_data/ 目录下。第三步：启动 LoRA 微调mlx_lm.lora \ --model ./qwen2.5-1.5b-mlx \ --train \ --data ./mlx_data \ --iters 1000 \ --batch-size 2 \ --num-layers 8 \ --learning-rate 2e-4 \ --adapter-path ./adapters \ --save-every 200 \ --steps-per-eval 100在 16GB Mac Air 上，这个配置大约 20 分钟就能跑完 1000 步训练。训练完成后：合并权重并推理# 合并 LoRA 适配器到模型权重 mlx_lm.fuse \ --model ./qwen2.5-1.5b-mlx \ --adapter-path ./adapters \ --save-path ./qwen2.5-1.5b-poetry # 生成诗词 mlx_lm.generate --model ./qwen2.5-1.5b-poetry --prompt "请写一首七言绝句，主题是春天" --max-tokens 200格律校验：让 AI 写的诗更"像诗"光会写还不够，还得写得合乎格律。项目附带了一个 pingze_check.py 格律校验工具：python pingze_check.py "床前明月光，疑是地上霜。举头望明月，低头思故乡。"它会检查：✅ 句数和每句字数是否符合绝句/律诗格式✅ 偶数句尾字押韵情况（基于现代拼音韵母）✅ 逐句平仄分析（基于现代普通话声调粗略估算）注意：平仄判断使用的…