微软研究人员展示了phi-1,这是一个仅有十亿参数的全新代码生成模型。
微软还发布了ZeRO++,这是一种改进的GPU通信方式,可以提升人工智能训练和微调的效果。
微软的AI研究人员发布了一款名为phi-1的新代码生成模型,它被设计成轻量级的,并且在性能上超越了ChatGPT背后的大型语言模型GPT-3.5。
这个基于Transformer的模型仅拥有13亿个参数——相比之下,OpenAI的Codex模型,也就是GitHub Copilot的基础,有120亿个参数。
微软的研究人员仅用了四天时间,利用来自Nvidia的八个A100芯片对phi-1进行训练。该模型使用了来自网络的60亿个标记,以及使用GPT-3.5生成的另外10亿个标记。GPT-3.5是构建OpenAI的ChatGPT的底层模型之一。
在性能方面,phi-1在HumanEval基准测试中取得了50.6%的一次通过准确率。尽管phi-1的体积要小得多,但它击败了Hugging Face和ServiceNow的StarCoder(33.6%),OpenAI的GPT-3.5(47%)和Google的PaLM 2-S(37.6%)。
在MBPP pass@1测试中,phi-1表现更好,取得了55.5%的分数。很多上述模型尚未公布此基准测试的结果,但是WizardLM的WizardCoder在本月早些时候进行的一次测试中得分为51.5%。与phi-1的13亿参数相比,WizardCoder是一个拥有150亿参数的模型。
高质量的数据能够产生巨大的影响
微软的研究人员认为,正是“高质量数据的力量”使得phi-1表现出色。为了强调这一点,研究人员将他们的模型论文命名为“只需教科书”。
他们写道:“就像一本全面、精心制作的教科书可以为学生提供掌握新科目所需的知识一样,我们的工作展示了高质量数据在提高语言模型在代码生成任务中的熟练程度方面的显著影响。”
通过精心打造“教科书级别”的数据,我们能够训练出一个模型,在编码基准测试(如HumanEval和MBPP)中超越几乎所有开源模型,尽管模型大小只有它们的十分之一,数据集大小只有它们的百分之一。
Phi-1在Python编码方面存在一些限制,与其他可用的编码模型相比。他们说这个模型的局限性还在于它缺乏像使用特定API进行编程这样的更大型模型所具备的领域特定知识。
为了扩展他们的工作,微软的研究人员建议使用GPT-4而不是GPT-3.5来生成模型训练所需的合成数据。
研究人员还将努力改善数据集的多样性和非重复性,尽管团队表示他们必须找到方法来“在数据生成过程中注入随机性和创造力,同时仍保持示例的质量和连贯性。”
ZeRO++:加速大型模型微调
微软的研究人员本周还宣布了一种名为ZeRO++的新方法,旨在改进大型模型的预训练和微调。
像ChatGPT和GPT-4这样的大型AI模型需要大量的内存和计算资源来进行训练和优化。
有时候在相对于批次大小而言使用大量的GPU进行训练时,会导致每个GPU的批次大小较小,需要频繁的通信。
为了解决这个问题,微软推出了ZeRO++系统,它利用量化技术,将连续无限的值映射到一个较小的离散有限值集合上,结合数据和通信重映射,将总通信量与ZeRO相比减少了4倍,而不会影响模型质量。
实际上,ZeRO++ 的设计目的是在您使用的硬件相对于模型的大小太小的情况下,提高您尝试训练的模型与 GPU 之间的通信效率。
根据微软的研究人员所说,ZeRO++使得带宽较低的集群能够达到与带宽高4倍的集群相似的吞吐量。
该系统的团队声称,与微软早期的训练优化系统ZeRO相比,它的吞吐量高达2.2倍。
ZeRO++对AI社区中的任何人都是可用的,并且可以通过GitHub进行访问。研究人员宣布将在“未来几周内”发布一个用于聊天的版本。
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除