在 Macbook 上自己尝试了一下 0.1B 的大模型训练

5 月 8 日
 duguying

近年来 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 上会需要更多时间。

写到一半我又加了点工程化的私货:

整套放上 GitHub 了,MIT 协议。如果你也想从「用 AI 」过渡到「亲手了解 AI 是怎么炼出来的」,又不想为了学习先去租一张 8×H100 ,欢迎来一起折腾。

GitHub 地址 https://github.com/duguying/100M。 项目地址 https://tinyllm.duguying.net

2328 次点击
所在节点    分享创造
9 条回复
nenosyyan
5 月 8 日
太牛了👍
webcape233
5 月 8 日
自己训练的话用在特别的小应用领域上吗
duguying
5 月 8 日
@webcape233 特定的小应用领域上可能有点用处。主要还是为了学习和了解整个训练流程
webcape233
5 月 8 日
@duguying 手头有个 mini m4 32G 的,不知道能跑起来怎么样,打算试试
dong706
5 月 8 日
我记得 github 上有一个国人的项目,就是讲大模型怎么炼出来的
Doloroso
5 月 8 日
码住,有时间 搞搞玩玩
Iefty
5 月 8 日
有点意思,确实没怎么关注炼模型的过程
adminpro
5 月 8 日
把公司中台数据喂给他,不知道行不行?
achangzhou
5 月 8 日
有点像 MiniMind, NanoChat 我给学生开课,让他们练习这个复刻。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/1211065

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX