首页 > 其他分享 >【LLM】A Survey of Techniques for Maximizing LLM Performance

【LLM】A Survey of Techniques for Maximizing LLM Performance

时间:2023-11-30 13:47:14浏览次数:44  
标签:RAG 模型 知识 tokens Survey LLM Performance 优化

本文成文于11月底,openai devday之后

背景:OpenAI最近放出了Devday的闭门会视频,其中"A Survey of Techniques for Maximizing LLM Performance"(精进大型语言模型性能的各种技巧)是非常有价值的,本文对这次分享做摘要。
视频https://www.youtube.com/watch?v=ahnGLM-RC1Y&ab_channel=OpenAI

一、LLM的优化不是线性的

  1. 误区:线性的尝试多种优化策略
    image

  2. 优化为有两个轴线方向考虑,

    • 一个是Context优化,即模型需要了解什么信息才能解决你的问题。
    • 一个是LLM优化,即模型需要以何种方式行动才能解决你的问题
      image

二、多种优化方法比较

擅长 不擅长 最佳实践 示例
Prompt Enginner
很好的起点,也可能是很好的终点
- 早期尝试,厘清需求
- 与评估相结合,提供基准线,并为进一步优化做好准备
- 引入新知识
- 可靠的复制复杂样式(如学习新的编程语言)
- 使用较少的tokens
详见 OpenAI tutorial
- 编写清晰的指令
- 将复杂任务拆解为小任务
- 给GPT时间“思考”
- Few shot
- 使用外部工具……
image
RAG
如果你想让LLM掌握领域知识,用RAG
- 向模型引入新信息,更新知识
- 通过控制内容减少幻觉
- 掌握对泛领域的理解
- 让模型掌握新语言、按某种格式输出
- 使用较少的tokens
客户场景:多个domain的知识
- ✅ 余弦相似度计算
- ❎ HyDE 检索
- ❎ Finetune Embedding
- ✅ 优化chunk策略
- ✅ re-ranking
- ✅ classification (工程化)
- ✅ tool use
- ✅ query explanation
image
Fine-Tuning
如果Prompt不起作用,finetune大概率也不行
- 激发模型中已有的知识,强化其在bad case上表现
- 定制输出的语气或结构
- 教模型认识一个复杂指令
- 提高正在特定任务上的表现、减少tokens消耗
- Base model中注入知识
- 快速在新领域尝试
客户场景:类NL2JSON
- 数据准备(买 人标 大模型标)
- 训练(要进一步理解loss func,代码训练可能不能使用交叉熵)
- evalution (rank多个模型表现)
- inference (部署优化)
image
All of all - 微调模型来认识复杂指令
- 减少tokens消耗
- 使用RAG来注入知识
1. 先从Prompt优化开始 (使用低成本快速验证用户场景)
2. 获取baseline(确保有一个性能baseline来衡量微调后的模型)
3. 小步快跑、关注评测(先使用少量高质量数据)

补充

  1. image
  2. RAG的评测框架非常重要:ragas
Generation Retrival
Faithfulness
生成答案的准确率如何
上下文精确度
检索文档中的噪声比例
Answer relevancy
生成答案跟问题的相关度如何
上下文召回率
问题相关的文档是否全部找到了

标签:RAG,模型,知识,tokens,Survey,LLM,Performance,优化
From: https://www.cnblogs.com/hithongming/p/MaximizingLLMPerformance.html

相关文章

  • 论文:Predicting the performance of green stormwater infrastructure using multivar
    题目“Predictingtheperformanceofgreenstormwaterinfrastructureusingmultivariatelongshort-termmemory(LSTM)neuralnetwork”(AlMehedi等,2023,p.1)(pdf)“基于多元长短期记忆(LSTM)神经网络的绿色雨水基础设施性能预测”(AlMehedi等,2023,pp.-)......
  • LLM面面观之Prefix LM vs Causal LM
    1.背景关于PrefixLM和CausalLM的区别,本qiang在网上逛了一翻,发现多数客官只给出了结论,但对于懵懵的本qiang,结果仍是懵懵...因此,消遣了多半天,从原理及出处,交出了PrefixLM和CausalLM两者区别的更为清楚的说明。2.PrefixLMPrefixLM,即前缀语言模型,该结构是Google的T5模型论......
  • 检索增强生成 (RAG)的原理——传统检索+LLM生成相结合
    RAG是一种检索增强生成模型,由信息检索系统和seq2seq生成器组成。它的内部知识可以轻松地随时更改或补充,而无需浪费时间或算力重新训练整个模型。举个例子,假设你正在写一篇关于猫的文章,但你不确定如何描述猫的行为。你可以使用RAG来检索与猫行为相关的文档,然后将这些文档作为上下文......
  • LLM模型参数助力多模态大模型高效训练
    随着人工智能技术的快速发展,多模态大模型在各种应用领域展现出了巨大的潜力。然而,其训练过程存在着计算资源消耗大、训练时间漫长等问题,这限制了其在实际场景中的应用。为了解决这些问题,salesforce提出了一个新的训练方法,即基于冻结视觉编码器和LLM模型参数的高效训练多模态大模型(B......
  • 使用Accelerate库在多GPU上进行LLM推理
    大型语言模型(llm)已经彻底改变了自然语言处理领域。随着这些模型在规模和复杂性上的增长,推理的计算需求也显著增加。为了应对这一挑战利用多个gpu变得至关重要。所以本文将在多个gpu上并行执行推理,主要包括:Accelerate库介绍,简单的方法与工作代码示例和使用多个gpu的性能基准测......
  • MySQL8.x 中 performance_schema 下 processlist表的说明
    MySQL8.x中performance_schema下processlist表的说明最近在研究一个MySQL数据库的监控相关功能的系统的实现,因此专门研究了一下processlist表。processlist表为MySQL的核心表之一。MySQLprocesslist表示当前由服务器内执行的线程集执行的操作。进程列表表是进程信息的来......
  • LLMLingua:集成LlamaIndex,对提示进行压缩,提供大语言模型的高效推理
    大型语言模型(llm)的出现刺激了多个领域的创新。但是在思维链(CoT)提示和情境学习(ICL)等策略的驱动下,提示的复杂性不断增加,这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理,因此需要高效的解决方案,本文将介绍LLMLingua与专有的LlamaIndex的进行集成执行高效推理。LL......
  • 学习笔记:A Survey on Large Language Model basedAutonomous Agents
    挑选了自己感兴趣的部分整理了一下。目录ASurveyonLargeLanguageModelbasedAutonomousAgents1LLM-AAConstruction1.1ArchitectureDesign2LLM-AAApplication3LLM-AAEvaluation4ChallengeASurveyonLargeLanguageModelbasedAutonomousAgents北大高林学院的......
  • 如何赋予 GPT/LLM 自我意识1
    引子这个周末OpenAI搞了一个大新闻,围绕SamAltman和IlyaSutskever的各种讨论遍地开花,而其中一个关注点就是他们对于AGI降临态度上的偏差。本文不打算讨论公司治理和办公室政治,而是用一些思维实验和大家都公认的现象来分析纯理论而言AGI会如何降临。一个基本的结论就是:如......
  • 全新近似注意力机制HyperAttention:对长上下文友好、LLM推理提速50%
    前言 本文介绍了一项近似注意力机制新研究,耶鲁大学、谷歌研究院等机构提出了HyperAttention,使ChatGLM2在32k上下文长度上的推理时间快了50%。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典......