近年来 AI 是卷得越来越厉害了,作为一个普通开发者经常用 AI 辅助编程,但是没有接触过怎么去创造 AI ,这个五一假期,在家研究了一下大模型是怎么训练的……
折腾下来发现一个挺尴尬的事实:网上教程要么是「调用 OpenAI API 」,要么是「分布式集群跑 Llama-3-70B 」,『在自己机器上从零训练一个能用的小模型』反而很少有人讲透。
干脆自己摸一遍,顺手做成工具 Tiny LLM Studio,目标就一个:在 MacBook 上把一个 0.1B 中文模型从 tokenizer 训到 DPO ,全流程跑通。
技术栈没整花哨的:
实测在 M4 Pro / 48GB 上吞吐 8k–15k tokens/s:0.5B tokens 大约 12 小时验证 loss 收敛。--resume 支持断点续训,吃完饭回来无缝接着练。
自己尝试了一下训练,用 1G 的数据量,训练了 1 晚上,然后尝试用 ollama 直接调用大模型,结果吐一堆乱码
后面继续用这 1G 数据再训练 1 晚上,然后进行 sft 微调训练,效果好一些了,至少吐出来的是大段中文
继续用这 1G 数据再训练了第 3 个晚上,然后 sft 微调,吐文字不再大段乱码,而是小段中文短语
用更大量的数据,训练足够多的时间,模型的响应效果会更好。不过这样在我 Macbook 上会需要更多时间。
写到一半我又加了点工程化的私货:
ngrok tunnel ,启动时终端直接吐一个二维码,手机扫一下就连上,在公网也能访问整套放上 GitHub 了,MIT 协议。如果你也想从「用 AI 」过渡到「亲手了解 AI 是怎么炼出来的」,又不想为了学习先去租一张 8×H100 ,欢迎来一起折腾。
GitHub 地址 https://github.com/duguying/100M。 项目地址 https://tinyllm.duguying.net
1
nenosyyan 9h 22m ago
太牛了👍
|
2
webcape233 9h 17m ago
自己训练的话用在特别的小应用领域上吗
|
3
duguying OP @webcape233 特定的小应用领域上可能有点用处。主要还是为了学习和了解整个训练流程
|
4
webcape233 8h 24m ago
@duguying 手头有个 mini m4 32G 的,不知道能跑起来怎么样,打算试试
|
5
dong706 7h 49m ago
我记得 github 上有一个国人的项目,就是讲大模型怎么炼出来的
|
6
Doloroso 6h 14m ago
码住,有时间 搞搞玩玩
|
7
Iefty 6h 2m ago
有点意思,确实没怎么关注炼模型的过程
|
8
adminpro 5h 52m ago
把公司中台数据喂给他,不知道行不行?
|
9
achangzhou 1h 39m ago
有点像 MiniMind, NanoChat 我给学生开课,让他们练习这个复刻。
|