LLM Prompt Technique 论文精读-2

下面为笔者最近看的一些prompt technique领域的新兴论文以及对应的总结,分享给大家一起学习。

持续更新中...

QLoRA: Efficient Finetuning of Quantized LLMs

链接:https://arxiv.org/abs/2305.14314

标题:QLoRA: 高效量化LLM的微调方法

摘要:我们提出了QLoRA,一种高效的微调方法,可以在单个48GB GPU上减少内存使用量,同时保持完整的16位微调任务性能,从而对一个65B参数模型进行微调。QLoRA通过将梯度反向传播到一个冻结的、4位量化的预训练语言模型中,进而传播到低秩适配器(LoRA)。我们最好的模型系列,命名为Guanaco,在Vicuna基准测试中表现优于所有先前公开发布的模型,达到ChatGPT性能水平的99.3%,仅需要在单个GPU上进行24小时的微调。QLoRA引入了一些创新来节省内存而不损失性能:(a)4位NormalFloat(NF4),这是一种对于正态分布权重来说在信息理论上是最优的新数据类型;(b)双重量化,通过量化量化常数来减少平均内存占用;(c)分页优化器来管理内存峰值。我们使用QLoRA对1000多个模型进行微调,并对8个指令数据集、多个模型类型(LLaMA、T5)和模型规模进行了详细的指令跟踪和聊天机器人性能分析,这在常规微调下是不可行的(例如33B和65B参数模型)。我们的结果表明,QLoRA在一个小型高质量数据集上进行微调可以达到最先进的结果,即使使用比之前的最先进模型更小的模型。我们基于人类和GPT-4评估对聊天机器人性能进行了详细分析,结果显示GPT-4评估是一种廉价且合理的人类评估替代方法。此外,我们发现当前的聊天机器人基准测试不能准确评估聊天机器人的性能水平。通过柠檬挑选的分析展示了Guanaco相对于ChatGPT的失败之处。我们发布了所有模型和代码,包括用于4位训练的CUDA内核。

关键词:QLoRA, finetuning, memory usage, Low Rank Adapters, Guanaco, Vicuna benchmark, ChatGPT, 24 hours of finetuning, memory saving innovations, instruction datasets.

关键见解:

  • QLoRA是一种高效的微调方法,可以在单个48GB GPU上减少内存使用量,同时保持完整的16位微调任务性能。
  • QLoRA通过将梯度反向传播到一个冻结的4位量化预训练语言模型中,进而传递到Low Rank Adapters(LoRA)。
  • Guanaco是最佳模型系列,它在Vicuna基准测试中表现优于所有先前公开发布的模型,仅需在单个GPU上进行24小时的微调即可达到ChatGPT性能的99.3%。
  • QLoRA引入了一些创新来节省内存,而不牺牲性能,包括:(a)4位NormalFloat(NF4),这是一种对于正态分布权重来说在信息论上是最优的新数据类型;(b)双重量化,通过量化量化常数来减少平均内存占用;(c)分页优化器来管理内存峰值。
  • 使用QLoRA微调超过1,000个模型,对8个指令数据集、多个模型类型(LLaMA、T5)和模型规模进行了详细分析,这些分析在常规微调下是不可行的(例如33B和65B参数模型)。
  • 我们的结果表明,使用高质量的小型数据集进行QLoRA微调可以获得最先进的结果,即使使用比先前最先进模型更小的模型。
  • 我们基于人类评估和GPT-4评估对聊天机器人性能进行了详细分析,结果显示GPT-4评估是一种廉价且合理的替代人类评估的方法。

经验教训:

  • 使用4位量化和其他内存优化技术可以在有限的硬件资源下实现大规模语言模型的高效微调。
  • 高质量的小型数据集可以在微调过程中取得最先进的结果。
  • GPT-4评估可以作为一种廉价且合理的替代人类评估的方法。
  • 当前的聊天机器人基准测试需要进一步改进,以准确评估聊天机器人的性能水平。

相关建议:

  • 进一步研究4位量化预训练语言模型的性能优化方法,以提高模型的精度和效率。
  • 探索更多的数据类型和量化方法,以减少内存占用并保持模型的性能。
  • 研究如何在多GPU环境下进行高效的模型微调,以进一步提高训练速度和规模。
  • 对于聊天机器人性能评估,研究更准确和可靠的评估指标和基准,以确保评估结果的可信度。
  • 进一步研究聊天机器人的指令跟随和对话能力,以提高其实际应用价值。

Reflexion: Language Agents with Verbal Reinforcement Learning 具有语言强化学习的语言代理

链接:https://arxiv.org/abs/2303.11366

摘要:大型语言模型(LLMs)越来越多地被用作与外部环境(例如游戏、编译器、API)交互的目标驱动代理。然而,对于这些语言代理来说,通过传统的强化学习方法进行试错学习仍然具有挑战性,因为这些方法需要大量的训练样本和昂贵的模型微调。我们提出了一种新颖的框架 Reflexion,通过语言反馈而不是权重更新来强化语言代理。具体而言,Reflexion 代理通过语言反思任务反馈信号,然后将其自己的反思文本存储在一个情节性记忆缓冲区中,以在后续试验中促进更好的决策。Reflexion 足够灵活,可以整合各种类型(标量值或自由形式语言)和来源(外部或内部模拟)的反馈信号,并在不同任务(顺序决策、编码、语言推理)中相比基准代理取得显著改进。例如,Reflexion 在 HumanEval 编码基准测试中达到了91%的一次通过准确率,超过了之前的最先进模型 GPT-4 的80%。我们还使用不同的反馈信号、反馈整合方法和代理类型进行了消融和分析研究,并提供了对它们如何影响性能的见解。

关键词:Reflexion, language agents, verbal reinforcement learning, large language models, trial-and-error learning, linguistic feedback, episodic memory buffer

关键见解:

  • 传统的强化学习方法在语言代理中学习需要大量的训练样本和昂贵的模型微调,这对于大型语言模型(LLMs)来说是具有挑战性的。
  • Reflexion是一种通过语言反馈而不是权重更新来加强语言代理的新颖框架。
  • Reflexion代理通过对任务反馈信号进行语言反思,然后将其自己的反思文本存储在一个情节性记忆缓冲区中,以在后续试验中促进更好的决策制定。
  • Reflexion可以灵活地结合各种类型(标量值或自由形式语言)和来源(外部或内部模拟)的反馈信号,并在各种任务(顺序决策制定、编码、语言推理)中取得显著改进。

经验教训:

  • 通过语言反馈来加强语言代理是一种有效的方法,可以避免传统强化学习方法中的训练样本和模型微调的限制。
  • Reflexion代理在人类评估编码基准测试中取得了91%的一次通过准确率,超过了之前的最先进模型GPT-4的80%。
  • 不同类型的反馈信号、反馈整合方法和代理类型对性能有不同的影响,通过深入分析和消融研究可以获得有关它们如何影响性能的洞察。

相关建议:

  • 进一步研究不同类型的反馈信号对于语言代理的影响:在该论文中,作者提到了可以使用标量值或自由形式语言作为反馈信号。未来的研究可以探索不同类型的反馈信号对于语言代理学习效果的影响,比如情感反馈、语义反馈等。
  • 探索不同反馈信号的整合方法:作者提到了可以从外部或内部模拟的源获取反馈信号。进一步的研究可以探索如何有效地整合不同来源的反馈信号,以提高语言代理的学习效果。
  • 比较不同类型的语言代理:在该论文中,作者使用了 Reflexion 框架来强化语言代理。未来的研究可以比较不同类型的语言代理,如基于传统强化学习方法的代理和基于 Reflexion 框架的代理,以评估它们在不同任务上的性能差异。
  • 探索 Reflexion 框架在其他领域的应用:该论文中的实验结果表明 Reflexion 框架在顺序决策、编码和语言推理等任务上取得了显著改进。未来的研究可以探索 Reflexion 框架在其他领域的应用,如自然语言处理、机器翻译等,以评估其在不同领域的适用性和效果。
  • 进一步分析不同反馈信号、反馈整合方法和代理类型对性能的影响:作者在论文中进行了消融和分析研究,但未来的研究可以进一步深入分析不同因素对于语言代理性能的具体影响,并提供更深入的洞察和解释。

What Disease does this Patient Have? A Large-scale Open Domain Question Answering Dataset from Medical Exams 这个患者患有什么疾病?来自医学考试的大规模开放领域问答数据集

链接:https://arxiv.org/abs/2009.13081

摘要:开放领域问答(OpenQA)任务最近引起了自然语言处理(NLP)社区越来越多的关注。在这项工作中,我们提出了第一个解决医学问题的自由形式多项选择OpenQA数据集MedQA,该数据集是从专业医学考试中收集的。它涵盖了英语、简体中文和繁体中文三种语言,分别包含12,723、34,251和14,123个问题。我们通过顺序组合文档检索器和机器理解模型实现了基于规则和流行的神经方法。通过实验证明,即使是目前最好的方法,在英语、繁体中文和简体中文问题上的测试准确率也只能分别达到36.7%、42.0%和70.1%。我们期望MedQA能对现有的OpenQA系统提出巨大挑战,并希望它能成为未来促进NLP社区更强大OpenQA模型的平台。

关键词:Open domain question answering, OpenQA, natural language processing, NLP, MedQA, medical problems, multiple-choice

关键见解:

  • 本论文介绍了一个新的医学问题解答数据集MedQA,该数据集是从专业医学考试中收集而来的,涵盖了英语、简体中文和繁体中文三种语言,共包含12,723、34,251和14,123个问题。
  • 论文实现了基于规则和基于神经网络的方法,通过结合文档检索器和机器理解模型来解决问题。实验结果表明,目前最好的方法在英语、繁体中文和简体中文问题上的测试准确率分别为36.7%、42.0%和70.1%。
  • MedQA对现有的开放领域问题回答系统提出了巨大挑战,并希望它能成为未来自然语言处理领域更强大的开放领域问题回答模型的平台。

经验教训:

  • 医学问题解答是一个复杂的任务,目前的方法在解决这个问题上仍然存在很大的改进空间。
  • 多语言支持是一个重要的考虑因素,对于全球范围内的医学问题解答任务来说尤为重要。
  • 结合文档检索和机器理解模型可以提高问题解答的准确率,但仍然需要进一步的研究和改进。

相关建议:

  • 进一步改进机器阅读理解模型:当前最佳方法在解答医学问题方面的准确率仍然有限,因此可以尝试改进机器阅读理解模型的设计和训练方法,以提高解答准确率。
  • 引入领域知识和专业术语:医学问题涉及大量的领域知识和专业术语,可以考虑将这些知识和术语引入到模型中,以提高对医学问题的理解和解答能力。
  • 考虑多模态信息的融合:医学问题的解答可能需要结合文本、图像、视频等多种模态的信息,可以探索如何有效地融合这些多模态信息,以提高解答的准确性和全面性。
  • 扩大数据集规模:当前的MedQA数据集规模已经相对较大,但仍然可以考虑进一步扩大数据集规模,以提供更多的训练样本和测试样本,从而更全面地评估和改进OpenQA系统的性能。
  • 推动跨语言OpenQA研究:MedQA数据集涵盖了英语、简体中文和繁体中文三种语言,可以进一步推动跨语言OpenQA研究,探索如何在不同语言下构建更强大的OpenQA模型。

Prompt Sapper: A LLM-Empowered Production Tool for Building AI Chains 一种基于LLM的生产工具,用于构建AI链

链接:https://arxiv.org/abs/2306.12028

摘要:基础模型的出现,如大型语言模型(LLMs)GPT-4和文本到图像模型DALL-E,为各个领域带来了许多可能性。人们现在可以使用自然语言(即提示)与AI进行交流以执行任务。尽管人们可以通过聊天机器人(例如ChatGPT)使用基础模型,但聊天无论底层模型的能力如何,都不是构建可重用AI服务的生产工具。像LangChain这样的API允许基于LLM的应用程序开发,但需要相当多的编程知识,从而构成了一道障碍。为了缓解这个问题,我们提出了AI链的概念,并将软件工程领域几十年来积累的最佳原则和实践引入AI链工程中,以系统化AI链工程方法论。我们还开发了一个无代码集成开发环境,Prompt Sapper,在构建AI链的过程中自然地体现了这些AI链工程原则和模式,从而提高了AI链的性能和质量。通过Prompt Sapper,AI链工程师可以通过基于聊天的需求分析和可视化编程,在基础模型之上组合基于提示的AI服务。我们的用户研究评估和证明了Prompt Sapper的效率和正确性。

关键词:Prompt Sapper, LLM, AI chains, foundation models, natural language, reusable AI services, integrated development environment

关键见解:

  • 基于大型语言模型(LLM)的基础模型为各个领域带来了许多可能性。
  • 通过自然语言(即提示)与人工智能进行交流,可以执行各种任务。
  • 聊天机器人等方式可以使用基础模型,但不适合构建可重用的人工智能服务。
  • 使用LLM的API(如LangChain)需要大量的编程知识,对许多人来说是一种障碍。
  • 引入软件工程中积累的最佳原则和实践,将其应用于AI链工程,可以系统化AI链工程方法论。
  • 开发了一个无代码集成开发环境(Prompt Sapper),在构建AI链的过程中自然地体现了这些AI链工程原则和模式,从而提高了AI链的性能和质量。
  • 使用Prompt Sapper,AI链工程师可以通过基于聊天的需求分析和可视化编程,在基础模型之上组合基于提示的AI服务。
  • 用户研究评估和展示了Prompt Sapper的效率和正确性。

经验教训:

  • 基于大型语言模型的基础模型为各个领域带来了许多可能性,但需要解决构建可重用AI服务的问题。
  • 引入软件工程中的最佳原则和实践,可以帮助系统化AI链工程方法论。
  • 开发无代码集成开发环境可以提高AI链的性能和质量。
  • 基于聊天的需求分析和可视化编程是构建基于提示的AI服务的有效方法。
  • 用户研究是评估和展示工具效果的重要手段。

相关建议:

  • 进一步研究和改进AI链工程方法学:在论文中提到了将软件工程的原则和实践引入AI链工程的概念,但可以进一步深入研究和改进这一方法学,以提高AI链的性能和质量。
  • 探索更多的AI链应用场景:当前的研究主要集中在通过聊天进行需求分析和可视化编程来构建基于prompt的AI服务,可以进一步探索和拓展AI链在其他领域的应用场景,如自动化文本生成、图像处理等。
  • 提高Prompt Sapper的易用性和功能:论文中提到了Prompt Sapper作为一个无代码集成开发环境,可以在构建AI链的过程中自然地体现AI链工程原则和模式,但可以进一步提高其易用性和功能,以满足更多用户的需求。
  • 进行更多的用户研究和评估:虽然论文中提到了进行了用户研究来评估Prompt Sapper的效率和正确性,但可以进一步扩大用户规模,进行更多的用户研究和评估,以验证其在实际应用中的可行性和效果。
  • 推动AI链的标准化和规范化:随着AI链的发展和应用越来越广泛,可以推动制定AI链的标准和规范,以促进AI链的互操作性和可持续发展。
相关推荐
余炜yw4 分钟前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习
莫叫石榴姐21 分钟前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
如若12343 分钟前
利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
人工智能·opencv·matplotlib
YRr YRr1 小时前
深度学习:神经网络中的损失函数的使用
人工智能·深度学习·神经网络
ChaseDreamRunner1 小时前
迁移学习理论与应用
人工智能·机器学习·迁移学习
Guofu_Liao1 小时前
大语言模型---梯度的简单介绍;梯度的定义;梯度计算的方法
人工智能·语言模型·矩阵·llama
我爱学Python!1 小时前
大语言模型与图结构的融合: 推荐系统中的新兴范式
人工智能·语言模型·自然语言处理·langchain·llm·大语言模型·推荐系统
果冻人工智能1 小时前
OpenAI 是怎么“压力测试”大型语言模型的?
人工智能·语言模型·压力测试
日出等日落1 小时前
Windows电脑本地部署llamafile并接入Qwen大语言模型远程AI对话实战
人工智能·语言模型·自然语言处理
麦麦大数据1 小时前
Python棉花病虫害图谱系统CNN识别+AI问答知识neo4j vue+flask深度学习神经网络可视化
人工智能·python·深度学习