QLoRA——如何在单个GPU上微调LLM
developer.chat
3 March 2024
Python示例代码介绍(ft.Mistral-7b)
本文是关于在实践中使用大型语言模型(LLM)的更大系列文章的一部分。在上一篇文章中,我们看到了如何使用OpenAI对LLM进行微调。然而,这种方法的主要限制是,OpenAI的模型隐藏在其API后面,这限制了我们可以使用它们构建什么以及如何构建。在这里,我将讨论一种使用开源模型和QLoRA来微调LLM的替代方法。
微调是指我们采用现有的模型,并根据特定的用例对其进行调整。这是最近人工智能创新爆发的关键部分,催生了ChatGPT等。
尽管微调是一个简单(强大)的想法,但将其应用于LLM并不总是那么简单。关键的挑战是LLM在计算上(非常)昂贵(即它们不能在典型的笔记本电脑上进行训练)。
例如,70B参数模型的标准微调需要超过1TB的内存[1]。就上下文而言,A100 GPU具有高达80GB的内存,所以你(最多)需要十几张这样的20000美元的卡!
虽然这可能会让你构建自定义人工智能的梦想破灭,但现在还不要放弃。开源社区一直在努力使使用这些模型的建筑更容易访问。从这些努力中产生的一种流行方法是QLoRA(量化低秩自适应),这是一种在不牺牲性能的情况下微调模型的有效方法。