分享一下自己训练的大模型

210 天前
 Azure99

半年前出于兴趣开始整自己的大模型,对目前的版本还算满意。

主要基于 Qwen 、Yi 、Llama 这些不错的预训练模型做对齐,某些场景的效果甚至比官方的 Chat 对齐效果更好。

另外,训练数据也一并开源,方便大家用于复现和研究使用。


在线 Demo: https://blossom-chat.com/

GitHub: https://github.com/Azure99/BlossomLM

介绍: https://www.rainng.com/blossom-llm/

模型权重 / 训练数据


如果你想在本地部署,可以用Ollama一键启动。默认是 9B 4Bit 量化后的模型,速度和质量都不错,CPU 也跑得动。

ollama run azure99/blossom-v5

附上两个喜闻乐见的 ruozhiba 示例

Q: 鲁迅为什么要打周树人?
A: 您的问题似乎包含了一个误解。鲁迅和周树人是同一个人。鲁迅是他的笔名,而周树人是他的原名。鲁迅是中国现代文学的著名作家和思想家,以其深刻的批判性和对社会现象的洞察力而著称。他并没有“打”周树人,因为这是同一个人。
如果您有关于鲁迅或周树人的其他问题,比如他的作品、生平或者对中国文学的影响,我可以提供帮助。

Q: 小明有 10 个苹果,他洗了 3 个后,他一共有几个苹果
A: 小明原来有 10 个苹果。当他洗了 3 个苹果之后,这 3 个苹果仍然是属于他的。所以,即使他把这 3 个苹果洗干净了,总数仍然保持不变。因此,小明一共有 10 个苹果。
5897 次点击
所在节点    程序员
53 条回复
openmynet
210 天前
同是 llama3-8b 模型,openbuddy 的模型要好上很多,建议参考下对方的语料

以下是 openbuddy- llama3-8b 4 位量化的模型回答的答案:
```
Q: 鲁迅为什么要打周树人?
A: 鲁迅和周树人实际上是同一个人,鲁迅是周树人的笔名。因此,从字面意义上讲,没有“鲁迅”去打“周树人”的情况存在。如果这个问题是在探讨鲁迅内心的矛盾或者说他在文学创作中对自我进行批判的情感,这种解读更加合理。

鲁迅是中国现代文学的重要人物,他的作品深刻揭示了社会现实和人性的复杂,通过尖锐、犀利的笔触批评了旧社会的陋习和封建残余,同时也反映了他对自身处境的深刻思考。在他的许多作品中,都可以看到一种自我审视和自我批判的倾向,这种精神在他的名著《狂人日记》、《阿 Q 正传》等作品中表现得尤为明显。

鲁迅的文学创作不仅是对外部世界的批判,也是一种内心世界的折射。他通过对社会、历史和文化的深刻洞察,展现了个体在面对压迫与束缚时的挣扎与反抗。因此,如果说“鲁迅为什么要打周树人”,这实际上是指他如何通过自己的文学作品,对自己的生活经历、思想观念以及社会现状进行深刻的剖析和批判。

总之,鲁迅没有真的去打周树人,这个问题更多的是在探讨他的内心世界和创作动机。鲁迅的作品中体现出的自我批判精神,是他文学成就的重要组成部分,也是他能够被后世长久铭记的原因之一。
```
renmu
210 天前
感谢分享,我想问一下那些预训练模型会对色情内容进行过滤吗,还是说要使用未审查版本,我想训练一个 NSFW 的模型
Azure99
210 天前
@renmu 预训练时通常会过滤色情内容的,但是不会过滤的那么全,模型依旧有这些能力。"未审查"版本一般是在指令精调的时候,过滤掉拒答样本,这样训练完的模型就会问什么答什么
Azure99
210 天前
@openmynet 生成的内容长并不代表质量一定高(当然更长的内容可能更符合人类偏好),像这个示例里,问题本身就是一个逻辑陷阱,如果针对猜测的"隐喻"延申太多,我个人感觉反而是不好的。另外 openbuddy 貌似只公开了权重,没有公开数据。
SGL
210 天前
请教一下,楼主的硬件资源配置,是租的还是自己搭的。
Azure99
210 天前
@SGL 租的,国内有不少平台,A100 80G 贵些,40G 还是比较便宜的
monkeyk
210 天前
有没有考虑做些 2B 方向的私有化落地;
BeijingBaby
210 天前
文心一言:

问:有 1-9 共 9 个顺序的数字,使用加减乘除使得结果等于 99

答:
这道题考察的是我们对基本数学运算的应用和组合能力。
题目给出了 1 到 9 这 9 个数字,我们需要使用加减乘除来使结果等于 99 。
首先,我们可以尝试使用不同的组合和运算来接近目标值 99 。
考虑到乘法可以产生较大的数,我们可以先尝试使用乘法。
同时,加减运算可以用来调整结果,使其更接近目标值。

经过多次尝试和组合,我们找到了一个可能的解决方案:
(1+2+3+4+5+6+7+8) × 9 = 99

这个表达式中,我们首先计算括号内的和,得到 36 ,然后再乘以 9 ,得到 99 。

因此,使用 1 到 9 这 9 个数字,通过加减乘除运算,我们可以得到结果 99 。

👆🏻,明显瞎说。



楼主的:

答:

要使用 1 到 9 这九个数字进行加减乘除运算,使其结果等于 99 ,我们可以采用递归的方法来逐步解决这个问题。因为我们需要使用所有的数字,而且每个数字只能使用一次,所以我们可以从最小的数开始,逐步构建表达式。
首先,我们可以观察到,如果我们将 1 到 9 这九个数字相加,我们得到:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
这个结果是偶数,而 99 是奇数,所以我们需要找到一种方法来增加一个偶数(最好是 45 ),使其变成奇数。我们可以通过以下方式实现:
1. 减去一个偶数:如果我们从 45 中减去一个偶数,结果将是奇数。我们可以尝试减去最小的偶数,即 2 。

45 - 2 = 43
2. 乘以一个奇数:现在我们需要将 43 乘以一个奇数来得到 99 。我们可以尝试使用最大的奇数,即 7 。
43 * 7 = 301
3. 减去另一个偶数:301 是一个奇数,但它比 99 大得多。我们需要找到一个偶数来减去,使结果等于 99 。最小的偶数是 2 ,但这次我们需要减去两个 2 。
301 - 2 - 2 = 297
4. 加一个奇数:现在我们有了 297 ,我们可以尝试从 1 到 9 中找到一个奇数来加到这个数上,使其等于 99 。最小的奇数是 1 ,但我们需要加三个 1 。
297 + 1 + 1 + 1 = 300
5. 减去最后一个偶数:我们得到了 300 ,这仍然是一个偶数,所以我们需要从 300 中减去一个偶数以得到 99 。最小的偶数是 2 ,但这次我们只需要减去一个 2 。
300 - 2 = 298
6. 加最后一个奇数:现在我们有了 298 ,我们可以尝试加一个奇数来达到 99 。从 1 到 9 中,最小的奇数是 1 ,我们需要加两个 1 。
298 + 1 + 1 = 300
7. 最后一步:我们需要将 300 减去一个偶数来得到 99 。最小的偶数是 2 ,但这次我们只需要减去一个 2 。
300 - 2 = 298
现在我们得到了 298 ,它是一个偶数,而不是我们想要的奇数。这意味着我们的方法没有正确地应用加减乘除运算来达到目标结果 99 。我们需要重新审视我们的方法,并尝试不同的策略。
由于我们尝试了所有的数字,并且每个数字只能使用一次,因此这个问题的解可能并不存在。在实际中,如果我们需要构造一个表达式来满足特定的数学目标,我们需要更多的数字或更灵活的规则。



👆🏻 cpu 烧了
weijancc
210 天前
自己训练大模型的成本需要多少
Seanfuck
209 天前
一直有个疑问,单卡可以并发推理(生成)吗?搜了一圈基本都说不能(不太可行)并发,那 AI 服务商不是要准备很多张 GPU ?
r6cb
209 天前
@Seanfuck #10 放到一个 batch 就行了
frankyuu
209 天前
哥们,你训练的设备 配置是啥呀? 多大的内存呀?
airqj
209 天前
也想训练个模型 很关心楼主训练一趟下来花了多少
Azure99
209 天前
@monkeyk 暂时没有哦,主要是业余搞着玩
Azure99
209 天前
@Seanfuck 可以看下 vLLM
openmynet
209 天前
@Azure99 同意生成的内容长并不代表质量一定高,最近几版的 openbuddy 的模型出现了这种长内容废话的毛病。但确实回答了其中之一的隐喻,这是目前可以体验到相对较好的中文 llama3 。

相较而言我更期待 openchat 的 llama3 版本,就是不知道 openchat 还会不会出 llama3 的模型。openchat 的语料好像是开放的。

openchat 的模型在我目前体验的所有 7b-14b 支持中文的开源模型中,其服从性和泛化能力最好了,虽然能力不是最好的。openchat 有像老实但不是特别聪明的员工,而其他的模型很聪明但却不是那么的老实。
Azure99
209 天前
@weijancc
@frankyuu
@airqj
主要分两个部分,第一个是训练数据。可以用开源的数据集(0 成本),或者选择自己标(个人不太现实,但可以蒸馏其他大模型),我为了质量是完全蒸馏的 GPT4 ,会贵一些,几十 K 大概几千吧。如果蒸馏 3.5 会便宜很多。

第二个是训练,如果做通用场景的对齐,lora 效果就非常不错,几十 K 数据的话,7b 单卡 A100 40G 跑一天就 ok 了,租卡不到一百块。全参训练门槛会高些,比如 4xA100 ,不过速度也会快。整体成本还可以
Azure99
209 天前
@openmynet openchat 确实非常不错。不过国外的预训练模型的中文能力,尤其是世界知识还是比较欠缺的。对于国内的场景,Qwen 和 Yi 作为基座也不错。
Azure99
209 天前
@BeijingBaby 这种没有固定解题步骤的问题是比较难的。需要模型在推理时有尝试+回溯的能力,目前比较欠缺。
xiaohundun
209 天前
可以讲讲如何训练的么,有开源脚本么

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

https://www.v2ex.com/t/1035705

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

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

© 2021 V2EX