来自人工智能领域的重大新闻!OpenAI的著名深度学习专家Andrej Karpathy进行了一项令人兴奋的周末项目,可能会彻底改变我们在资源受限设备上运行复杂模型的方式。通过他创建的“Baby Llama”,这是Llama 2模型的简化版本,Karpathy展示了纯C代码的强大能力,以及它在小型设备上实现高度互动速率的潜力。让我们深入探讨这个具有颠覆性的发展!
还阅读:OpenAI将发布AI模型的开源版本,加入开源竞赛
追求互动速率 – Baby Llama的诞生
受到探索新可能性的好奇心驱使,深度学习领域的先驱Andrej Karpathy开始了一个使开源Llama 2潜力得以释放的任务。尽管他能够在一个周末内构建出GPT-5,但Karpathy将时间投入到了对Llama 2的实验中,展示了他对推动人工智能边界的热情。
还阅读:Meta的Llama 2:面向商业用途的开源
将GPT-2转换为Llama 2:周末实验
在他的GitHub存储库Llama2.c中,Karpathy分享了他的创作过程。他巧妙地将nanoGPT框架转换为C编程语言中的Llama 2架构。结果,他的存储库引起了极大的关注,在短时间内获得了超过2.2K的星标。
在资源受限模型上实现互动速率
Karpathy实验最令人惊讶的成就之一是他能够在相对较小的模型上实现高度互动速率。尽管使用了一个包含数百万参数的模型,但在一个包含1500万参数的TinyStories数据集上训练,Karpathy的方法取得了显著的成功。
还阅读:新的AI模型仅使用30B参数就超越了GPT-3
低功耗设备上的惊人速度
在他的M1 MacBook Air上,Karpathy取得了令人印象深刻的结果。拥有约1500万参数的Llama 2模型,在fp32(单精度浮点)计算中展示出每秒约100个令牌的惊人推理速度。这一令人惊讶的结果凸显了在资源受限设备上轻松运行复杂模型的潜力。
还阅读:从GPT-3到未来的语言模型
突破极限 – 更大更好
在初步成功的鼓舞下,Karpathy继续推动边界。他积极更新存储库,并尝试测试一个更大的4400万参数模型,比之前的模型大三倍。令他惊讶的是,他可以在4个A100 GPU上以批量大小为32进行20万次迭代训练,仅用了约8小时。
还阅读:DeepMind的AI大师玩家:在2小时内学会了26个游戏
从LLaMA.cpp和PyTorch连接中获得灵感
Karpathy承认他的项目受到了Georgi Gerganov的“llama.cpp”的极大启发,该项目也旨在使用C和C++在MacBook上使用LLaMA。Karpathy的方法始于使用PyTorch从头开始训练Llama 2 LLM架构。然后,他使用一个500行的C文件“run.c”来执行推理,最小化内存使用,而不需要外部库。
优化性能的微调
为了进一步优化C代码,Karpathy尝试了各种技术,包括不同的编译标志,如-O3、-Ofast、-march=native等。这些标志有助于实现向量化、循环展开和其他硬件特定的调优,从而在特定系统上实现更快的推理。
尚未准备好部署 – 展望未来
尽管Karpathy的周末实验取得了突破性的成功,但他明确指出,Baby Llama并不适用于生产级部署。主要目标是展示在低功耗设备上运行Llama 2模型的可行性。这个实验挑战了机器学习需要GPU的普遍观念。
塑造AI在较小设备上的未来
Karpathy的实验影响超越了周末项目的范畴。它为在较小的本地设备上集成模型树立了先例,无需GPU。这一突破有可能为微软通过与Meta的合作,推出一系列基于Llama 2的小型LLM铺平道路,开启AI可访问性的新时代。
还可以阅读:微软推出LLM的自动提示优化框架
我们的观点
Andrej Karpathy推出Baby Llama作为Llama 2模型的简化版本。它的开发展示了在低功耗设备上使用纯C代码运行AI模型的巨大潜力。模型具有惊人的交互速度和闪电般的推理能力,为未来带来了巨大的希望。这一开创性实验为复杂的AI应用在资源受限的设备上蓬勃发展奠定了基础。毫无疑问,AI领域正在经历一次范式转变,而Baby Llama可能只是个开始!