当前位置: 首页 > article >正文

LLama3技术报告笔记(垂直能力)

3.4.1 代码能力

典型应用:Copilot; Codex;

多任务:代码生成;写文档;debug;code review;

多语种:Python, Java, JavaScript, C/C++,... , HTML/CSS, SQL, bash/shell

1. Code专家模型

从预训练模型分支出来,加入1T token的混合数据(code占比85%),做continue-pretraining;

使用CodeLlama的配方;最后数千个steps改用long-context微调(16K窗口);最后,使用code占比高的数据,做SFT+DPO对齐训练;

用途:为主模型,做rejection-sampling;

2. 数据生成

痛点:follow指令;代码语法错误;生成错误的代码;fix bug;

自动生成了270万个样本,用来作SFT;

2.1 带feedback的代码生成

研究表明,用自己模型生成的代码,再训练自己模型,效果不变好反变差;因此,这里引入feedback,让模型从自己的错误中学到东西,回到正轨;

- 生成题目描述:从代码数据中,随机摘取代码片断,输入大模型做内容描述;

- 生成代码:将以上题目描述输入大模型,使用多种编程语言,生成代码;有提升:在prompt里加上良好变成规范的描述,在prompt里加上把代码解释放在注释里;

- 正确性分析:静态:用代码parser、linter来给出错误提示信息;动态:让大模型生成单元测试代码,放在container里运行,收集报错信息;

- 错误修正:将<题目描述,代码,单元测试用例,报错信息>输入大模型,让其生成正确的代码/单元测试用例;多迭代几次直到静态+动态分析通过;初始报错的题目里有20%可以通过这步生成通过测试;

- 多轮迭代:多迭代几轮,逐步增强大模型能力;

2.2 小语种

痛点:小语种数据量少;

解决:用大语种的代码做为输入,让模型翻译成小语种代码,结果喂给代码parser、执行等筛出正确的;

2.3 增强文档和注释能力

痛点:无法借助自动执行等工具;

解决:1. 将代码输入模型,让其生成注释、文档、代码解释;2. 将上步生成的注释或文档(去掉代码本身),输入模型,让其生成代码;3. 将原始代码和生成的代码,输入大模型,让其裁判生成代码的质量,分高的就说明注释、文档是好数据,加入训练样本中;

2.4 调优system prompt

system prompt里,让代码follow标准代码规范,注意性能(算法时间复杂度、空间复杂度)等;

2.5 增强伪码生成正确性

痛点:有些数据、任务,本身题目就是让给出伪码或代码片段,无法用执行来得到feedback

解决:用大模型来做裁判;分多个维度(正确性,风格)给出打分;分高的才通过;

遇到问题:本身就很难的代码,不容易通过;解决:人工修正了这些题目的代码,让其挤过去通过模型裁判;


http://www.kler.cn/a/282155.html

相关文章:

  • (一)- DRM架构
  • 爬虫——Requests库的使用
  • 工厂模式-简单工厂模式
  • git本地分支推送到远程和远程pull到本地
  • Git 中的 patch 功能
  • IDC 报告:百度智能云 VectorDB 优势数量 TOP 1
  • js逆向——异步栈分析(上)
  • Faiss入门心得---向量数据库Faiss的搭建与使用
  • C#/WinForm实现炸弹人游戏
  • PaddleNLP 3.0 支持大语言模型开发
  • 新手学习打怪之编译安装LAMP和LNMP
  • 力扣850.矩形面积 II
  • Python的requests库详细介绍
  • 【持续更新】Mχ Plaayer Pro 1.86.0安卓知名播放器最新免费高级修改版
  • 深入浅出LangChain:从模型调用到Agents开发的全流程指南
  • 【React】跨域问题详解及解决方案
  • 手机三网状态实时查询分享
  • 软件设计模式 - 汇总
  • MyBatis的学习————下篇
  • SQL部分一
  • 【Docker】Docker学习01 | 什么是docker?
  • 【给女朋友讲C++】C++的调试之gdb
  • Wordpress 6.x 修改文件上传大小限制
  • 数学建模---论文写作
  • C# 数组,List,Stack,Dictionary,Queue,LinkedList 如何选择
  • java图片转pdf