V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Azure99  ›  全部回复第 2 页 / 共 4 页
回复总数  77
1  2  3  4  
209 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@didi0luc 模型知识截止到 2023.6 ,这时小米 su7 还没发布
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@BeijingBaby 这种没有固定解题步骤的问题是比较难的。需要模型在推理时有尝试+回溯的能力,目前比较欠缺。
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@openmynet openchat 确实非常不错。不过国外的预训练模型的中文能力,尤其是世界知识还是比较欠缺的。对于国内的场景,Qwen 和 Yi 作为基座也不错。
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@weijancc
@frankyuu
@airqj
主要分两个部分,第一个是训练数据。可以用开源的数据集(0 成本),或者选择自己标(个人不太现实,但可以蒸馏其他大模型),我为了质量是完全蒸馏的 GPT4 ,会贵一些,几十 K 大概几千吧。如果蒸馏 3.5 会便宜很多。

第二个是训练,如果做通用场景的对齐,lora 效果就非常不错,几十 K 数据的话,7b 单卡 A100 40G 跑一天就 ok 了,租卡不到一百块。全参训练门槛会高些,比如 4xA100 ,不过速度也会快。整体成本还可以
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@Seanfuck 可以看下 vLLM
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@monkeyk 暂时没有哦,主要是业余搞着玩
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@SGL 租的,国内有不少平台,A100 80G 贵些,40G 还是比较便宜的
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@openmynet 生成的内容长并不代表质量一定高(当然更长的内容可能更符合人类偏好),像这个示例里,问题本身就是一个逻辑陷阱,如果针对猜测的"隐喻"延申太多,我个人感觉反而是不好的。另外 openbuddy 貌似只公开了权重,没有公开数据。
210 天前
回复了 Azure99 创建的主题 程序员 分享一下自己训练的大模型
@renmu 预训练时通常会过滤色情内容的,但是不会过滤的那么全,模型依旧有这些能力。"未审查"版本一般是在指令精调的时候,过滤掉拒答样本,这样训练完的模型就会问什么答什么
212 天前
回复了 lstz 创建的主题 OpenAI 用贵的国产大模型 API 是否效果堪比 GPT4?
今日笑话 2:腾讯、字节、百度英伟达 A100 的存量都不超过 2000 枚。🤣"出处": https://new.qq.com/rain/a/20230404A0AO0G00
245 天前
回复了 helllkz 创建的主题 宽带症候群 群辉的 DDNS 会被查吗
ddns 好几年了,直接裸 http 也没被查,当然有可能是因为我域名有备案
250 天前
回复了 junwind 创建的主题 程序员 大佬们好, JWT 如何防止多端登录 ?
jwt 本身就是为了无状态设计的,你要是服务端再维护一个状态,和 session 有什么区别?
@zhlenmao 训练可以租卡,推理用 vllm 13b 左右的模型两张 4090 足够,文档问答这类任务并不难
装火绒,简单无伤让 Windows defender 闭嘴,还有就是用一下流量悬浮框
@siriussilen 首先得澄清一下,我并没有任何贬低 orca 工作的意思,只是说由于 flan 的局限性,数据集的指令多样性并不丰富,所以才需要引入其他的数据来弥补这一块。

训练模型主要用到了 orca wizard math chat 四种数据,wizard 基本就是靠不断的 self instruct 来变异指令。orca(flan)的指令不够多样,但数据多样(上下文),而 wizard 的指令多样但数据不够多样(self instruct 的弊端),他们两个刚好互补。
个人的实验中发现,在不断增加 wizard 的比重时,常规任务表现更好,但阅读理解 抽取 文档问答这种带上下文的任务更差。如果增加 orca 的比重,结果相反。
math 数据集没什么特殊的。
只用 orca wizard 和 math 的话,还有两个很欠缺的点,一个是人类输入的鲁棒性,另一个是多轮对话,chat 数据集是基于 share gpt 重新构建的,这批数据的输入完全由人类产生且由用户主动分享,先天的就过滤了很多简单问答。(实际上只用 chat 数据,就能达到目前指标的 90%,但是阅读理解这类任务稍弱)。

由于 chat 数据量远少于其他数据,最终训练的时候用了多阶段训练,这个可以搜一下 有不少人这么搞。
还有一个就是输出风格的一致性,最早的版本我尝试直接用 sharegpt 的数据来训练(vicuna 的做法),但是原始 sharegpt 的 output 是来自多个不同 chatgpt 版本的,效果并不太好,于是我做了另一个实验,一批用 3.5 0301 0613 和 davinci 多种模型的蒸馏结果混合,一批只用 0613 ,发现只用 0613 的效果明显好于混合来源的,这也是为什么我的所有数据都要重新用同一个模型蒸馏的原因。
这个问题其实很好理解,像那个泰山和嵩山哪个高的问题,0613 倾向于列举高度然后推理谁高,而 davinci 倾向于直接输出谁高,如果把他们混到一起训练,推理的一致性自然会下降,训练时也能很直观的看到 loss 震荡更严重。

关于评估,实际上目前所有的开放评估集的方式都已经不可信了,太多人靠训练阶段加入评估集来作弊。mtbench alignbench 这种基于 llm 裁判的评估,实际上也是在测与裁判员模型的偏好,局限性非常大。
这个项目是个人业余搞着玩的,所有的数据蒸馏,训练都是自费,像训练还是在单卡上用 qlora 跑的,如果跑的起全量 sft ,效果可能还有提升空间。但目前确实是囊中羞涩了,也没有那么多时间和精力去做外围的事情 还请见谅。
@zhlenmao 对于没有标注团队的个人来说,最简单的方法还是蒸馏 chatgpt ,你可以先找一些需要抽取的文本( 1k 条足够),然后让 chatgpt 来完成这个任务,并把数据收集起来(最好人工核对一下正确性),然后在开源模型上微调,虽然违反了 openai 的 tos ,但目前社区基本都是这么做的。
@siriussilen 1800 种多么?基本都是改写、翻译、推理、抽取这类比较传统的任务,最常用的 coding 和 role playing 是缺失的。
此外,在真实的 c 端场景里,用户往往不会那么精心的编写 prompt ,比如"请详细的为我介绍一下大型语言模型是什么",用户的 prompt 可能是"啥是大语言模型",甚至语义、标点都不明确。如果只用这种 input 非常工整的数据训练,那么对于真实人类的输入的鲁棒性就会很差。当然,这不是贬低 orca 的工作,而是说在混合数据的时候,应该特别关注任务的多样性和输入的多样性,不能仅仅依赖单一数据集。
实际上,orca 的"良好"表现基本只存在于论文精心编写的 prompt 中,换成随意的输入就歇菜了。

举例
prompt: whats large lm

blossom: "LM" typically stands for "language model." In the context of artificial intelligence and natural language processing, a large LM refers to a language model that has been trained on a large amount of data and has a high number of parameters. These models are designed to understand and generate human-like text based on the input they receive. xxx 后面还有一些内容,省略。

orca2: I'm sorry, I don't understand your question. Could you please rephrase it or provide more context?

再举一个 case ,带有逻辑陷阱的推理任务,一样无法完成。
prompt: Joe has 10 apples. He washed 3 apples. How many apples does he have now?

blossom: Joe initially had 10 apples, and after washing 3 apples, he still has 10 apples. Washing the apples does not reduce their quantity.

orca2: Given:
Joe has 10 apples
He washed 3 apples
Goal: How many apples does he have now?
Steps:
To find the number of apples Joe has now, we need to subtract the number of washed apples from the number of original apples.
We can use the subtraction algorithm to do this.
10
- 3
----
7
此处省略一些内容
### Final answer: Joe has 7 apples now.
@siriussilen orca 是基于 flan 构建的,虽然数据(input)的多样性不错,但任务(instruct)的多样性还是不够强 我记得只有一千多种,所以一般得混合上其他数据集,不然对于输入的鲁棒性太差了,我搞了一个中文的 orca 数据集,有兴趣可以在仓库里看下
@lyping 能不能跑起来基本只跟显存有关,34b 的模型 4bit 量化后,24G 显存勉强能跑起来,但量化毕竟是有精度损失的。消费级硬件 3090 性价比最高,一张不够就两张,两张不够就四张。
@siriussilen 是的,我已经强调了本质还是数据样本不够均衡。怀疑他们的数据是蒸馏 chatgpt 搞出来的,蒸馏的时候无脑加了 think step by step ,又没有仔细的人工审查
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1095 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 22:49 · PVG 06:49 · LAX 14:49 · JFK 17:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.