机器之心报道
机器之心编辑部
OpenAI 花几个月完结的事,现在用它直接给你自动化了。
最近一段时刻,不论大公司仍是开发者都在造大言语模型(LLM),但有人认为,大模型应用的速度有点落后。
为了构建能实际运用的 AI 东西,我们需求依据根底模型构建定制化模型,中心的进程包含微调(Fine-tuning),这是一个杂乱且耗时的进程,关于很多人来说,简便易行的调试是不存在的。
这个问题现在或许得到了处理:本周六,来自斯坦福的一群开发者发布了 Lamini,声称可认为每个开发人员供给从 GPT-3 带到 ChatGPT 的超能力。
链接:lamini.ai/
Lamini 是一个 LLM 引擎,供开发人员运用很多公司、机构的根底模型快速构建定制化模型:你能够用 OpenAI、EleutherAI、Cerebras、Databricks、HuggingFace、Meta 等公司的技能做自己的,只要他们开源就能够。
将根底模型构建成强壮的言语模型是一个极具挑战性的进程,需求花费很多的时刻和成本。首先,在特定数据集上进行微调的迭代周期以月为单位,需求花费很多时刻找出微调模型失败的原因。虽然运用 prompt 调整迭代以秒计时,但微调之后的模型性能只能安稳几个小时,并且能融入 prompt 的数据量十分有限。
OpenAI 的机器学习团队花了几个月的时刻在其基本模型 GPT-3 上进行微调,并运用 RLHF(依据人类反馈的强化学习方法)才构建出强壮的 ChatGPT。这个进程需求耗费很多的核算资源,还要求团队具有专业的技能知识。
在 ChatGPT 开放 API 之后,很多公司都测验运用 OpenAI 供给的微调 API,但结果却不尽如人意,一些根底模型经过微调之后,性能变得更差,无法投入运用。还有一些公司表示不知道怎么充分利用数据。
现在,名为「Lamini」的新东西处理了这些问题。Lamini 将微调封装成一种服务,使开发人员能够轻松将 GPT-3 微调成 ChatGPT。
简略来说,Lamini 供给了一种保管化的数据生成器,只需履行 Lamini 库中的几行代码,用户就能训练自己的大型言语模型(LLM)及其权重,而无需运用任何 GPU。
速成强壮的 LLM
Lamini 是一个 LLM 引擎,它答应开发人员只运用 Lamini 库中的几行代码,就能在大型数据集上训练出高性能的 LLM。Lamini 库包含对机器学习模型的多种优化,包含简略的优化(例如消除模型「幻觉」)和更具挑战性的优化(例如 RLHF)。
那么,Lamini 库在构建 ChatGPT 般强壮的 LLM 时能起到哪些效果?依照 OpenAI 构建 ChatGPT 的流程,Lamini 的效果详细包含以下几点:
-
对 ChatGPT 或其他模型进行 prompt 调整。Lamini 库的 API 供给快速调优功用,只需一行代码即可在 OpenAI 的模型和其他开源模型之间切换。Lamini 库还供给了优化之后的正确 prompt,以便于用户依据模型设置不同格局的 prompt。
-
构建一个输入输出对的大型数据集。该数据集将让模型了解它应怎么呼应其输入。运用 Lamini 引擎,用户能够仅用几行代码就快速从 100 个数据点生成 50k 数据点,而无需启动任何 GPU。Lamini 也供给了一个 50k 的开源数据集。
-
在数据集上微调根底模型。Lamini 的研讨团队在其 50k 的开源数据集上微调出一个 LLM,后续他们将发布履行此操作的功用和代码。
-
在经过微调的模型上运转 RLHF。Lamini 库让用户不再需求大型 ML 和人工符号团队来运转 RLHF。
-
便利用户将模型布置到云端。
数据生成器
ChatGPT 风行全球是因为它能够遵从用户的指令生成高质量内容,但其根底模型 GPT-3 却不总是能做到这一点。例如,向 GPT-3 提出一个问题,它可能会生成另一个问题而不是答复它。
ChatGPT 能做到这一点的原因是它运用了很多的「指令 – 履行」数据。但关于普通的开发人员来说,这些数据是难以获得的。
依据此,Lamini 供给了一个保管数据生成器,只需几行代码即可将 100 个样本变成超过 50k 个样本,而不需求启动任何 GPU,并且生成的数据是商业可用的。用户能够自界说最初的 100 多条指令,以便生成的 5 万条符合要求的指令,最终得到一个大型指令遵从数据集。
Lamini 的数据生成器是一个 LLM pipeline,其创意来自斯坦福的开源模型 Alpaca。这个生成 pipeline 运用 Lamini 库来界说和调用 LLM,以生成不同但类似的指令 – 呼应对。
保管数据生成器生成的数据质量良莠不齐,有的数据很好,有的则很差。因而,Lamini 下一步将生成的数据过滤为高质量数据,这个进程只需求运转一个如下的简略脚本。
importjsonlines
defmain():
dataset=list(load_dataset("data/lamini_dataset.jsonl"))
questions=set()
filtered_dataset=[]
forexampleindataset:
ifexample["question"]inquestions:
continue
filtered_dataset.append(example)
questions.add(example["question"])
print(f"Removed{len(dataset)-len(filtered_dataset)}duplicatequestions")
save_dataset("data/filtered_lamini_dataset.jsonl",filtered_dataset)
defload_dataset(path):
withopen(path)asdataset_file:
reader=jsonlines.Reader(dataset_file)
forexampleinreader:
yieldexample
defsave_dataset(path,dataset):
withopen(path,"w")asdataset_file:
writer=jsonlines.Writer(dataset_file)
forexampleindataset:
writer.write(example)
main()
然后,Lamini 经过在过滤后的高质量数据集上训练根底模型为用户创建自界说 LLM。
总的来说,Lamini 把微调模型封装成一种服务,让开发者们只用十分简略的步骤就能把根底模型微调成性能良好的垂类模型,这大幅降低了构建 LLM 的技能门槛。
在交际网络上,Lamini 获得了不少人的欢迎。
不知在此类东西出现后,调大模型会不会变成一件容易的事。
参考链接:
lamini.ai/blog/introd…