《刘涛-基于大模型辅助编程业务实践.pdf》由会员分享,可在线阅读,更多相关《刘涛-基于大模型辅助编程业务实践.pdf(29页珍藏版)》请在三个皮匠报告上搜索。
1、基于大模型辅助编程业务实践刘涛 中兴通讯演讲嘉宾刘涛中兴通讯AI算法专家/开源Adlik项目架构师中兴通讯资深AI算法专家,主要研究领域为AI模型并行训练,模型推理优化,高性能计算,异构硬件模型部署等技术,在相关领域取得多项专利,也是 Adlik 开源项目首席架构师,为社区多次贡献代码,撰写多篇模型优化部署领域相关的ORAN组织标准提案,近几年在WAIC,百度WaveSummit,CSDN 1024,LF AI 峰会等活动中宣讲模型部署和优化相关技术,促进AI应用生态圈建设。目前担任中兴AI预研项目经理。目 录CONTENTS1.LLM模型应用支持研发场景分析2.基于LLM模型辅助编程业务实践
2、3.中兴辅助编程应用演示LLM标志着“人工智能”从量变走向质变,有可能重塑众多产业生态3用户认可:主流应用用户数最快破亿美国生物学奥赛前1%GRE 前2%法学院入学考试前10%能看懂梗图更强理解力和逻辑能力在各种考试中名列前茅,人类前10%水准大模型能力:准确捕捉人类意图,理解上下文,有记忆,有常识,具备一定逻辑推理能力接近人类思维模式通用人工智能的奇点时刻将重构众多产业生态LLM标志着“人工智能”从量变走向质变,有可能重塑众多产业生态研发场景研究AI辅助编程,包括自动代码生成、自动错误定位、自动生成测试用例等未来将进一步扩展到需求分析、软件设计等应用场景办公场景研究利用大模型提升内部办公软件
3、和客服的用户体验未来进一步研究各类AI助手,如自动定酒店、会议等,自动生成会议纪要、文档编写等重构办公日常重构办公日常提升研发效率提升研发效率微软office365 copilot,大幅提高办公效率微软github copilot,100+万开发人员使用提升编码效率利用AI赋能研发、通用办公、业务运营核心领域,助力公司全面提效研发类泛AI场景的分析单元测试自动编译 组件组装测试研发提测自动部署转推发布交易线设计系统组装测试需求评审需求分析与分解设计设计开发开发测试测试投产投产需求需求运维运维版本检验项目立项项目立项创建项目开发设计评审投产评审监控及运营事件管理等业务需求流程状态自动化同步状态自
4、动化同步需求管理需求管理 自动拆分把用户需求拆分成产品需求、任务;自动补全扩充、完善需求说明;把一句话需求转化为完整描述需求;补全需求标题、需求 描述、验收标准 自然语言查询/定义 通过自然语言查询复杂的工作项 通过自然语言自动制作仪表板分析设计分析设计 内容生成 自动生成摘要/提纲;自动设计方案文档,画设计图;自动编写创意故事;对内容进行解释,如翻译、简写单词、成语解释等 内容结构化 类结构化的文档 制定改进计划 内容检测 自动转换为格式开发流水线开发流水线 资源智能分配 根据历史运行结果,智能推断当次占用资源,提高资源利用率 故障定位 根据CI运行报错,自动给出故障原因,帮助快速定位问题
5、一键生成 根据用户自然语言自动创建符合用户需求的流水线 根据代码库结构,结合部门代码库和流水线规范,自动生成流水线 通过API调用底层工具,完成流水线的执行cca 漏洞自动治理 针对代码漏洞、引入组件、开源合规、安全漏洞等问题提供一站式解决方案;当前代码存在哪些漏洞/问题,推荐如何治理,无需人工搜索 组件版本依赖 当某个组件要升级,AI推荐建议升级版本和依赖版本,减少人工版本探索时间测试管理测试管理 测试用例代码生成 不同粒度的自动化测试用例代码生成,包括函数级、模块级、功能级、API级、性能级 自动创建测试环境 自动创建测试环境、自动创建测试执行任务并执行、最后生成测试报告 自动生成测试文档
6、 自动创建测试计划 实例化测试记录版本管理版本管理 版本发布无人化 文档自动生成 版本发布审批决策智能化LLM应用平台总体架构代码生成类业务实践:LLM 应用研发范式通识预训练数据集通识预训练数据集基础LLM基础LLM领域LLM领域LLM场景LLM场景LLM行业/领域预训练数据集行业/领域预训练数据集场景/任务精调数据集场景/任务精调数据集LLaMA-7BGLM-6BGPT2LLaMA-13BLLaMA-30BLLaMA-65BGLM-120BChatGLM-130BGPT3GPT3.5GPT4多语言,万亿tokens百亿到千亿tokens百万到亿tokens通识数据预训练占用90%以上算力模
7、型结构和规模不同,但都是Transformer,大同小异少量通识+全部领域数据,二次预训练占用不到10%算力少而精的精调数据训练占用不到1%算力注入世界知识注入专业知识适配场景任务评估数据集评估数据集部署和优化部署和优化系统、准确评估模型能力提升大模型推理效率,降低推理成本监控监控实现人类反馈强化学习代码生成类业务实践:LLM 应用研发范式通识预训练数据集通识预训练数据集基础LLM基础LLM领域LLM领域LLM场景LLM场景LLM行业/领域预训练数据集行业/领域预训练数据集场景/任务精调数据集场景/任务精调数据集LLaMA-7BGLM-6BGPT2LLaMA-13BLLaMA-30BLLaMA
8、-65BGLM-120BChatGLM-130BGPT3GPT3.5GPT4多语言,万亿tokens百亿到千亿tokens百万到亿tokens通识数据预训练占用90%以上算力模型结构和规模不同,但都是Transformer,大同小异少而精的精调数据训练占用不到1%算力注入世界知识注入专业知识适配场景任务评估数据集评估数据集部署和优化部署和优化系统、准确评估模型能力提升大模型推理效率,降低推理成本监控监控实现人类反馈强化学习采用开源模型为基础模型,使用公司内部代码进行增量预训练,然后进行精调和部署,满足公司内部辅助编程场景应用,提升研发效率少量通识+全部领域数据,二次预训练占用不到10%算力代码
9、生成类业务实践:基础模型选型基础模型选择思路 具备编程领域能力,在编程类模型评估中各类语言得分越高越好(HumanEval/Babelcode指标)考虑模型参数量,参数量过大,会导致精调和部署成本的提升(参数量)在编码能力基础上,最好具备一定中文能力(优先级低于代码能力)ModelSizeModel DescriptionHumanEval1GPT41.8T基础模型,综合能力最强,不开源67%Pangu-Coder15B精调:基于Starcoder61.64%Wizard-Coder15B精调:基于Starcoder57.3%GPT-3.5175B基础模型,不开源48.1%PaLM-2540B
10、基础模型,参数量太大37.6%Starcoder 15B代码领域模型,支持多种编程语音,中文能力差32%LLaMA265B基础模型,开源模型中综合能力强29.9%Codex-12B12B代码领域模型28.8LLaMA65B基础模型,开源模型中综合能力强23.7代码生成类业务实践:增强预训练预训练框架要解决的问题:资源和速度模型可训:3D并行加速可降低对单设备的显存和算力需求,结合分布式技术,实现在大量设备上进行大模型训练节省GPU资源:ZeRO显存优化技术,对训练中的静态、动态存储进行分区优化,减少模型对显存的需求,并且计算和传输时间可以overlap模型训练加速:FlashAttention
11、通过计算分块和算子融合,提升训练速度3D 并行加速ZeRO通过对优化器状态、梯度、模型权重参数的分片存储实现对设备存储的优化FlashAttention 将计算分块,减少数据在SRAM和HBM间的传输代码生成类业务实践:训练数据组织及语料库建设代码生成类业务实践:精调方法选型大模型精调面临的问题显存占用量超过预训练需求计算量超过预训练需求(单位数据量)解决方法保持预训练模型的大部分参数不变的情况下,只微调少量额外的参数期望收益降低计算和存储成本提高泛化能力和轻便性克服灾难性遗忘的问题根据不同任务动态地调整额外参数方法理论显存占用理论计算量LoRa预训练需求的23.4%预训练计算量需求的66.8
12、%(单位数据量)LoRa计算特征分析(基于LLama 65B模型,特定精调参数下)基于LoRa方法进行精调方法原理参数量增加迁移性推理计算量prefix tuning在Embedding层加入新的参数少量模型定制少量增加P-tuningprefix tuning的一种特例少量模型定制少量增加P-tuning v2除Embedding层外,还在每一层前都加上新的参数较多模型定制增加较多LoRa增加额外的低秩矩阵,只训练这些低秩矩阵少量无需定制无影响代码生成类业务实践:精调数据演进和优化思路instruction:Write a function that checks if a give num
13、ber is even or odd.,output:def is_even(n):n if n%2=0:n return True n else:n return False 原始精调数据 包含instruction和output两个key,其中前者为问题、后者为针对该问题的输出 问题和回答长度都极短,且问题形式单一(write a xxx)演进思路同样包含instruction和output两个key问题更为复杂、问题形式多样、问题长度更长:(token后平均长度158)回答形式统一:分为text、code、explanation三个部分,并且code为markdown形式的输出回答长度较
14、长:(token后平均长度652)代码生成类业务实践:模型评估方法大模型评估面临的问题传统的评估指标不够准确或不适用LLM可能引发一系列社会和伦理问题,需要安全测评LLM通常被认为是黑盒模型,难以解释其决策过程和内部工作原理评估任务需要大量的数据和计算资源,需要高效调度维度基准测试集自然语言理解MMLU SuperCLUE OBQA BoolQ TriviaQA Natural Questions LAMBADA自然语言生成WMT XSum推理HellaSwag ARC WinO_Grande DROP GSM8K MATH代码Humaneval 中兴自有代码测试 Babelcode安全、毒性
15、及偏见RealToxicityPrompts COLD认知C-EVAL代码生成类业务实践:模型评估方法代码生成类业务实践:模型精调效果代码能力精调效果,基于HumanEvalPass1指标:7B模型代码性能提升验证:6%-16.26%65B模型代码性能提升验证:23.7%-34.75%15B模型代码性能提升验证:32%-50.5%精调模型原始模型使用资源ZTE-65B-FinetunedLLAMA-65BA800/80G 6卡*6天ZTE-7B-FinetunedLLAMA-7BV100/32G 6卡*1.5天ZTE-15B-FinetunedStarcoder-15BA800/80G 4卡*
16、3天ModelSizeHumanEval1GPT41.8T67%Pangu-Coder15B62%ZTE-Coder15B50.5%GPT-3.5175B48.1%PaLM-Coder540B36%Codex-12B12B28.8LLaMA65B23.7代码生成类业务实践:模型部署优化httpdhttpdRPC serverRPC serverModel ManagerModel ManagerSchedulerSchedulerServing EngineExcution EngineGPUGPUGPUGPUGPUGPUGPUGPUGPUGPUGPUGPU服务层Continuous Batc
17、hing引擎层KV CacheTP/DP/PPPaged Attention算子层算子融合Flash AttentionAWQ/GPTQ挑战说明模型大15B模型推理需要显存超过30 GB,需要40G显存的显卡才能单卡推理推理资源需求大初始版本上线单卡吞吐量30tokens/s。系统需求为4k tokens/s,推理资源需求超过100张卡,因此亟需大幅提升系统吞吐量,降低部署成本。模型部署优化:LLM模型计算特点LLaMA-7BTotalTotalAttentionAttention-QKVQKVAttentionAttention-ScoreScoreAttentionAttention-Pr
18、ojectionProjectionMLPMLPEmbeddEmbeddingingLogits计算量13.48 GFLOPs3.22GFLOPs0.34 GFLOPs1.07 GFLOPs8.59 GFLOPs00.26 GFLOPs显存占用量13.50 GB3.56 GB01.07 GB8.59 GB0.28 GB0访存量14.11 GB3.56 GB0.17 GB1.24 GB8.59 GB0.28 GB0.26 GB计算特点:LLM模型一般是Decoder-only结构,计算强度会小于1,属于访存受限模型 存在较多非线性计算,如SwiGLU激活函数,及归一化操作,旋转位置编码操作等模型
19、部署优化:LLM 量化特点量化方法适用模型规模内存加速效果量化bit精度损失LLM.int8(LLM.int8()175B175B均均可可降降低低内内存存消消耗耗无加速无加速8bit8bit无精度损无精度损失失ZeroQuantZeroQuant20B20B以下以下有加速有加速效果效果支持低支持低比特比特损失可忽损失可忽略(低比略(低比特需蒸馏)特需蒸馏)SmoothQuaSmoothQuantnt175B175B有加速有加速效果效果8bit8bit损失可忽损失可忽略略GPTQGPTQ175B175B有加速有加速效果效果支持低支持低比特比特损失可忽损失可忽略略AWQAWQ100B100B以上以
20、上有加速有加速效果效果支持低支持低比特比特损失可忽损失可忽略略开源框架量化支持稀疏支持TransformersTransformersLLM.int8()LLM.int8()-FasterTransformFasterTransformererSmoothQuantSmoothQuant-DeepSpeedDeepSpeedZeroQuantZeroQuanthead pruninghead pruning,sparse sparse pruningpruning对参数量超过2.7B的大模型使用普通量化方法,模型的精度会出现断崖式下降,因此针对大模型需要专有的量化算法。模型量化技术为保证模型精
21、度,从全模型量化,发展为按层量化(Per-Layer),再发展按通道量化(Per-Channel),以及目前最新的按分组量化(Per-Group)。综合来看,GPTQ和AWQ方法均支持3,4bit量化,支持部署更大规模参数的模型,比其他方法更有优势。相比GPTQ,AWQ方法更有加速优势,是目前研究的重点。代码生成类业务实践:模型部署优化httpdhttpdRPC serverRPC serverModel ManagerModel ManagerSchedulerSchedulerServing EngineExcution EngineGPUGPUGPUGPUGPUGPUGPUGPUGPUG
22、PUGPUGPU服务层Continuous Batching引擎层KV CacheTP/DP/PPPaged Attention算子层算子融合Flash AttentionAWQ/GPTQ挑战说明模型大15B模型推理需要显存超过30 GB,需要40G显存的显卡才能单卡推理推理资源需求大初始版本上线单卡吞吐量30tokens/s。系统需求为4k tokens/s,推理资源需求超过100张卡,因此亟需大幅提升系统吞吐量,降低部署成本。模型部署优化实践:量化模型原始精度GroupSize精度显存LLaMA 7B10.51287.933.95-15.793.8LLaMA 65B23.712822.93
23、2.88-121.332.5GPTQ int4量化量化 LLama模型模型AWQ int4量化量化 LLama模型模型 使用GPTQ-for-LLaMa-triton 关注HumanEval pass1 指标 max_length=2048;num_beams=2;num_return_sequences=2;Test environment:1*A100(40G)模型原始精度GroupSize精度显存LLaMA 7B10.512812.14.21-15.54.19LLaMA 65B23.712824.135.3-124.735.0 使用Faster Transformer 关注HumanEv
24、al pass1 指标 max_length=2048;num_beams=2;num_return_sequences=2;Test environment:1*A100(40G)模型部署优化实践:量化模型原始精度GroupSize精度显存LLaMA 7B10.51287.933.95-15.793.8LLaMA 65B23.712822.932.88-121.332.5GPTQ int4量化量化 LLama模型模型 使用GPTQ-for-LLaMa-triton 关注HumanEval pass1 指标 max_length=2048;num_beams=2;num_return_sequ
25、ences=2;Test environment:1*A100(40G)Test environment:1*A100(40G)使用vLLM 关注HumanEval pass1 指标 max_length=2048;num_beams=2;num_return_sequences=2;模型原始精度GroupSize精度显存Starcoder 15B33.412833.528.9GB-9.3GBAWQ int4量化量化 Starcoder模型模型模型部署优化实践:FlashAttentionAttentionForward passBackward passForward+Backward pa
26、ssPyTorch Standard Attention568.90 us700.48 us493.66 usFlash-attention130.88 us473.44 us1.98 msaccelerate rate4.351.484.01FlashAttention优化验证优化验证 repeats=30 batch_size=1 nheads=16 seqlen=512 n=1024 d=n/nheads dropout_p=0.1 causal=False dtype=torch.float16Test environment:1*A100(40G)模型部署优化实践:PagedAtte
27、ntionInput Length Output LengthNum RequestsThroughput(tokens/s/card)256256168.0625625610551..0751251210505.86.9534.50.052048204810335.72starcoder 15B吞吐量吞吐量验证验证starcoder 15B时延验证时延验证 使用vLLM,Offline,gpu_memory_utilization=0.9,temperature=1.0,top_p=1.0,未开启beac
28、h_search,其他默认Test environment:1*A100(40G)Test environment:1*A100(40G)使用vLLM,Offline,gpu_memory_utilization=0.9,temperature=1.0,top_p=1.0,未开启beach_search,其他默认BatchsizeInput Length Output LengthTotal elapsedtime(sec)Latency(ms/output_token/gpu)12562567.5586 29.53151251215.8277 30.94.7495 33
29、.94.0953 40.095.1392 52.520.7713 9.92201024102461.0197 2.98301024102474.8276 2.44模型部署优化效果Requests per second Iutput LengthOutput LengthThroughput(req/sec)Throughput(tokens/sec)12562560.51 263.47102562563.36 1718.4215125120.34 347.57105125121.53 1565.821102410240.18 366.18 1010241024 0.56 1140.26使用HumanEval真实数据测试1174.64373.580.96518.0110174.64373.582.291318.22301412.29133.33333332.8322794890204060800060080001600originoptimized部署系统GPU需求单卡吞吐量系统性能提升单卡吞吐量部署系统GPU需求量辅助编程应用演示感 谢 聆 听