查询 : 在用于代码生成的自定义库上训练 LLM?

Query : Training LLM on custom library for code generation?

提问人:Anuj Mehta 提问时间:10/31/2023 更新时间:11/14/2023 访问量:35

问:

我想用一个包含大量函数的自定义库来训练 LLM。目的是能够生成给定在此自定义库上训练的 LLM 的代码。由于该库非常庞大,因此在将其添加到 LLM 的上下文时,我的令牌用完了(我使用的是 gpt-4-32k)。

代码生成 大语言模型

评论


答:

0赞 Cem 11/14/2023 #1

如果您希望在不花费数百万美元微调模型的情况下实现高质量的生成,请考虑使用 PEFT(参数高效微调)。

PEFT 是 Hugging Face 的开源库,无需修改模型的所有参数即可对预训练语言模型 (PLM) 进行微调。PEFT 目前包括 QLoRA、LoRa、P-Tuning 等技术。

让我们来看看有关 PEFT 和 QLoRA 的更多详细信息:

PEFT 或 Parameter-Efficient Fine-Tuning(来自 Hugging Face)是一个开源库,可帮助您在不修改模型的所有参数的情况下微调预训练语言模型 (PLM)。

另一方面,QLoRA 是一种高效的微调技术,它首先将 PLM 量化为 4 位(量化)并附加“低级适配器”(LoRA、PEFT)。这使您能够在单个 GPU 上微调具有数百亿个参数的模型。

通过集成这些技术,您可以更高效地微调大型模型,从而充分利用您的计算资源。

--

我不确定您的批量大小,但您甚至可以轻松地在您的设备上运行微调的 LLM。您可以进行推测抽样以提高代币生成速度,同时仍将生成质量保持在 SOTA 级别。

--

为了提高生成质量,您甚至可以进行 RL。您可以首先从代码中提供一个块,并要求完成,然后 backprop 来调整权重。