开源Llama-34B经微调在HumanEval上击败GPT-4


昨天发布的 CodeLlama 模型在 HumanEval 上展示了令人印象深刻的性能。

  • CodeLlama-34B 在 HumanEval 上取得了 48.8% pass@1 的成绩
  • CodeLlama-34B-Python 在 HumanEval 上达到 53.7% pass@1

在内部 Phind 数据集上对 CodeLlama-34B 和 CodeLlama-34B-Python 进行了微调,在 HumanEval 上分别实现了 67.6% 和 69.5% pass@1。根据 3 月份的官方技术报告,GPT-4 达到了 67%。为了确保结果的有效性,我们将 OpenAI 的净化方法应用于我们的数据集。

在一个包含约 8 万个高质量编程问题和解决方案的专有数据集上对这两个模型进行了微调。该数据集以指令-答案对为特征,而不是代码完成示例,因此在结构上有别于 HumanEval。

对 Phind 模型进行了两次历时训练,共训练了约 16 万个示例。没有使用 LoRA,两个模型都进行了本地微调。

采用 DeepSpeed ZeRO 3 和 Flash Attention 2,使用 32 个 A100-80GB GPU,在序列长度为 4096 个 token 的情况下,用三个小时训练了这些模型。


此外,将 OpenAI 的去污方法应用于我们的数据集,以确保结果有效,并且没有发现受污染的示例。方法论是:

  • 对于每个评估示例,我们随机抽取了三个 50 个字符的子字符串,如果少于 50 个字符,则使用整个示例。
  • 如果任何采样的子字符串是已处理的训练示例的子字符串,则识别为匹配。

有关净化方法的更多见解,请参阅 OpenAI 技术报告的附录 C。下面列出了通过微调模型获得的 pass@1 分数:
  • Phind-CodeLlama-34B-v1在 HumanEval 上达到67.6% pass@1
  • Phind-CodeLlama-34B-Python-v1在 HumanEval 上达到69.5% pass@1

下载Phind-CodeLlama-34B-v1

下载Phind-CodeLlama-34B-Python-v1

质疑:HumanEval 作为当前基准测试模型的黄金标准是一种犯罪。数据集本身很小(大约 150 个)示例,所有问题本身并不能真正表明实际的软件工程问题。此外,截至几周前,我们已经能够在内部 GPT-4 上获得大约 85% 的 pass@1 率。但很难说他们是否用 RLHF 污染了模型。我们距离开源模型如此之近仍然令人兴奋,但我们仍然有大量的工作要做!