Press "Enter" to skip to content

如何在没有GPT4数据的情况下对代码LLM进行指令调整? 遇见OctoPack:一组用于指令调整代码大语言模型的AI模型

<img src=”https://www.marktechpost.com/wp-content/uploads/2023/08/Screenshot-2023-08-17-at-2.47.58-AM-1024×671.png”/><img src=”https://www.marktechpost.com/wp-content/uploads/2023/08/Screenshot-2023-08-17-at-2.47.58-AM-150×150.png”/><p>已经证明,通过指令(指令调整)提供的各种语言任务的微调可以提高大型语言模型(LLM)的可用性和整体性能。通过视觉、听觉和多语言数据训练的模型都在指令调整范式中表现良好。

<p>研究人员通过教授研究人员如何编码来教授代码学习机器。间接指导代码LLM通过代码注释生成所需的代码是可能的,但这个过程是脆弱的,并且在期望的结果是自然语言时会失败。通过明确的指导调整可以提高代码LLM的可操控性,并拓宽其适用范围。

<p>研究人员更倾向于使用开源模型来生成合成数据,并避免使用限制性许可的数据。他们比较了四个常见的代码指令数据库:

<ul>
<li>xP3x,它汇编了广泛使用的代码基准的结果</li>
<li>松散的代码LLM使学者能够生成独立的数据。</li>
<li>OASST主要是一个具有最少编码示例的语言信息库。</li>
<li>全新的4TB Git提交宝库,被称为COMMITPACK。</li>
</ul><p><strong>研究人员的贡献</strong></p><ul>
<li>对于预训练,您可以访问350种不同编程语言下以宽松许可证发布的4TB代码提交;调整使您可以访问包含高质量代码指令的COMMITPACK的筛选变体。</li>
<li>六种编程语言(Python、JavaScript、Java、Go、C++和Rust)和三种场景(代码修复、代码解释和代码合成)的代码LLM泛化基准(HUMANEVALPACK)。</li>
<li>最宽松的代码LLM是OCTOCODER和OCTOGEEX。 </li>
</ul><p>研究人员使用GitHub提交的操作转储作为数据集的基础。为了确保提交消息非常具体,并避免处理许多文件带来的额外复杂性,他们使用了多个质量过滤器,过滤了商业友好的许可证,并删除了影响多个文件的所有提交。在提交之前和之后使用过滤信息提取受影响的GitHub源代码文件。

<p>对于需要自然语言(NL)响应的任务,指令调整LLM的输入是一个带有可选NL上下文的NL指令。当使用代码数据进行调整指令时,代码可以仅包含在输入中,仅包含在输出中,或同时包含在输入和输出中,与NL指令一起。尽管大多数现有基准重点关注代码合成变体,但客户可能希望在所有三种情况下使用模型。因此,六种语言的三个输入输出排列现在包含在代码合成基准HumanEval中。

<p>在所有三种评估情况下,OCTOCODER在所有其他宽松模型中表现出显著的优势。OCTOGEEX是经过基准测试的模型中参数最少的,仅有60亿个,但在与其他宽松代码LLM进行比较时仍然表现出最佳结果。与其他模型相比,GPT-4具有最高的性能。尽管它可能是较其他模型更大的模型,但GPT-4是闭源的。

<p>可以在https://github.com/bigcode-project/octopack找到所需的所有内容,包括代码、模型和数据。 

<p>总之,大型语言模型(LLMs)通过在指令上进行微调,可以在各种自然语言任务上表现更好。研究人员使用编码来对人类指导进行微调,利用Git提交的固有结构将代码更改与人类指导相匹配。350种不同语言的4TB Git提交被编译到COMMITPACK中。对于具有16B参数的StarCoder模型,他们将COMMITPACK与其他自然和合成代码指令进行了比较。在HumanEval Python测试中,他们在没有训练OpenAI输出的模型中达到了最先进的性能。此外,他们还提供了HUMANEVALPACK,它为六种额外的编程语言(Python、JavaScript、Java、Go、C++和Rust)和三个新的编码任务(代码修复、代码解释和代码合成)添加了支持,以扩展HumanEval基准的功能。模型OCTOCODER和OCTOGEEX在HUMANEVALPACK中的所有可允许模型中都表现出了COMMITPACK的优势。</p>

Leave a Reply

Your email address will not be published. Required fields are marked *