OpenAI的Karpathy创造了Baby Llama,而不是GPT-5

2023年07月25日 由 Samoyed 发表 6658 0
能够在周末轻松构建GPT-5的人,竟然花时间测试开源的Llama 2的功能。为了在单台计算机上运行LLM,OpenAI的Andrej Karpathy(他因在深度学习领域的贡献而闻名)开始了一个周末项目,创建了一个简化版的Llama 2模型。



为此,Karpathy在Llama2.c GitHub存储库中解释说:“我采用了nanoGPT,对其进行了调优,以实现Llama 2架构而非GPT-2,其核心是在run.c中编写C语言推理引擎。”他的目标是在Llama 2架构中实现nanoGPT,而不是在C编程语言中实现GPT。该仓库已经获得了2.2K颗星。

Karpathy方法的成功之处在于它能够实现很高的交互率,即使使用包含几百万参数的相对较小的模型,并且在TinyStories数据集的1500万个参数模型上进行训练。他报告说,在他的M1 MacBook Air上,拥有约1500万个参数的Llama 2模型可以在fp32中以每秒100个token的速度进行推断,所有这些都是通过他开发的C代码完成的。这个结果令人惊讶,因为它证明了在资源受限的设备上实现运行复杂模型的可行性,而且实现起来非常简单。



此外,在HackerNews的讨论中,Karpathy解释了他是如何惊讶地发现MacBook Air M1上的编译速度比预期的要快得多,每秒可以达到100个token。受到这个结果的鼓舞,Karpathy一直在积极地更新存储库,并开始在一个4400万个参数的模型上进行测试,这个模型比原来大了三倍。令人惊讶的是,他能够在大约8小时内在4个A100 GPU上以32的批量大小训练20万次迭代。

Karpathy说:“有了这一进展,7BLlama模型似乎有望实现。”

什么是Baby Llama方法?


Karpathy说,这种方法在很大程度上受到Georgi Gerganov的项目llama.cpp的启发,该项目几乎与使用C和C++在MacBook上使用LLaMA的第一个版本的项目相同。

Karpathy的方法是使用PyTorch从头开始训练Llama 2 LLM架构。训练后,他将模型权重保存在原始二进制文件中。接下来是有趣的部分:他编写了一个名为“run.c”的500行C语言文件,该文件用于加载保存的模型,并使用单精度浮点(fp32)计算执行推断。这种极简的方法确保了低内存占用,并且不需要外部库,还允许在一台M1笔记本电脑上高效执行,而不需要GPU。

Karpathy还探讨了几种提高C代码性能的技术,包括不同的编译标志,如-O3、-Ofast、-march=native等。这些标志通过启用向量化、循环展开和其他特定于硬件的调优来优化代码。通过尝试这些标志,用户可以在他们的特定系统上实现更快的推断速度。

要在自己的设备上试用baby Llama 2模型,可以从Karpathy的存储库下载预训练的模型检查点。提供的代码将使您能够在系统上编译和运行C代码,让您了解在极简环境中运行深度学习模型的魔力。

值得注意的是,Karpathy的项目只是一个周末实验,并不打算用于生产级部署,他也承认这一点。这一努力的主要目的是证明使用纯C代码在低功耗设备上运行Llama 2模型的可行性,这种语言长期以来一直被认为对机器学习没有用,因为它不涉及GPU。

微型LLM的崛起


模型变得越来越小的最大原因是在更小的本地设备上训练和集成它们。除了不需要GPU之外,有可能通过Meta的合作,微软将发布一堆基于Llama 2的小型LLM。

与此类似,Meta发布的Llama 2也与芯片制造商Qualcomm达成了惊人的合作。这次合作是为了让Llama 2在本地硬件上运行。苹果也有一个庞大的开发者生态系统,为此,该公司最近发布了针对苹果硅优化的Transformer架构。Karpathy已经表明,很多事情都是有可能的。

 

来源:https://analyticsindiamag.com/openais-karpathy-creates-baby-llama-instead-of-gpt-5/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消