在 Mac 上本地训练诗词 AI：一个开源的 MLX 小模型训练包
你是否想过，让 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 "床前明月光，疑是地上霜。举头望明月，低头思故乡。"它会检查：✅ 句数和每句字数是否符合绝句/律诗格式✅ 偶数句尾字押韵情况（基于现代拼音韵母）✅ 逐句平仄分析（基于现代普通话声调粗略估算）注意：平仄判断使用的是现代普通话声调（1、2 声为平，3、4 声为仄），与古代平水韵存在差异（如古入声字在普通话中可能变为平声）。这是一个快速参考工具，如需严格合规校验，建议后续接入完整的平水韵字表。为什么值得 Star？零成本入门：不需要买 GPU，不需要租云，一台 Mac 就能跑数据质量高：精选唐诗三百首 + 宋词三百首为核心数据代码透明：从数据构造到训练推理，全流程开源实用工具：附带格律校验脚本，不只是训练，还关注生成质量云端备选方案：cloud_gpu_alternative/ 目录提供了 LLaMA-Factory 的云端 GPU 训练配置延伸：试试 shi-ci.cn如果你不想自己训练，也可以直接在 shi-ci.cn 体验诗词 AI。这是一个专注于中国古典诗词的在线平台，提供诗词生成、赏析、格律校验等功能。这个项目背后的训练数据和模型思路，正是来自上面的 poetry_dataset 开源项目。结语在消费级硬件上训练专用 AI 模型的时代已经来了。无论是想学习 MLX 框架、LoRA 微调，还是单纯想让 AI 帮你写一首好诗，这个项目都值得你 Star 一下。👉 项目地址：github.com/daichangya/poetry_dataset欢迎 Star、Fork、提 Issue，一起让 AI 学会写诗！