GPT-4里套娃LLaMA 2!OpenAI创始成员周末爆改「羊驼宝宝」,GitHub一日千星

本文主要是介绍GPT-4里套娃LLaMA 2!OpenAI创始成员周末爆改「羊驼宝宝」,GitHub一日千星,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

梦晨 发自 凹非寺
量子位 | 公众号 QbitAI

大神仅花一个周末训练微型LLaMA 2,并移植到C语言

推理代码只有500行,在苹果M1笔记本上做到每秒输出98个token

作者是OpenAI创始成员Andrej Karpathy,他把这个项目叫做Baby LLaMA 2(羊驼宝宝)。

7eaba5f02aef1e7cd7cae587875d543b.png

虽然它只有1500万参数,下载下来也只有58MB,但是已经能流畅讲故事。

f4544c73130d8290a0487af80e421842.png

所有推理代码可以放在C语言单文件上,没有任何依赖,除了能在笔记本CPU上跑,还迅速被网友接力开发出了各种玩法。

llama.cpp的作者Georgi Gerganov搞出了直接在浏览器里运行的版本。

a83ed72d8bff24e7f90625ca02ceb7d4.png

提示工程师Alex Volkov甚至做到了在GPT-4代码解释器里跑Baby LLaMA 2。

f67bf040d4d4ccc1bb8fadad691eb138.png

大模型套娃小模型,成了。

羊驼宝宝诞生记

据Karpathy分享,做这个项目的灵感正是来自llama.cpp。

训练代码来自之前他自己开发的nanoGPT,并修改成LLaMA 2架构。

推理代码直接开源在GitHub上了,不到24小时就狂揽1500+星。

6ea195c1e74fd33afbf7ca7939865eb3.png

训练数据集TinyStories则来自微软前一阵的研究。

2023新视野数学奖得主Ronen Eldan、2023斯隆研究奖得主李远志联手,验证了1000万参数以下的小模型,在垂直数据上训练也可以学会正确的语法、生成流畅的故事、甚至获得推理能力。

4f6118e6e69da17f3d06e2da8bda3ef9.png

此外,开发过程中还有一个插曲。

Karpathy很久不写C语言已经生疏了,但是在GPT-4的帮助下,还是只用一个周末就完成了全部工作。

71fa62a857f7ad50e1d000ecccf0a7d5.png

对此,英伟达科学家Jim Fan评价为:现象级

5bb39fd2039417fa2456c712ce5a8c66.png

最初,在CPU单线程运行、fp32推理精度下,Baby LLaMA 2每秒只能生成18个token。

在编译上使用一些优化技巧以后,直接提升到每秒98个token。

13273b6bddf2441f011e632b4377eb98.png

优化之路还未停止。

有人提出,可以通过GCC编译器的-funsafe-math-optimizations模式再次提速6倍

985e566749d6a7f793533d9d4662e8bc.png

除了编译方面外,也有人提议下一步增加LoRA、Flash Attention等模型层面流行的优化方法。

742709ce8fab8a9a9b967d22ee2db571.png

Baby LLaMA 2一路火到Hacker News社区,也引发了更多的讨论。

f16729c2b34b0337ebc3aca187d4bb46.png

有人提出,现在虽然只是一个概念验证,但本地运行的语言模型真的很令人兴奋。

虽然无法达到在云端GPU集群上托管的大模型的相同功能,但可以实现的玩法太多了。

68cfaa4e56c256b58bfedbf7705a3a34.png

在各种优化方法加持下,karpathy也透露已经开始尝试训练更大的模型,并表示:

70亿参数也许触手可及。

cef220d7ff69551fbe88b569f254e23d.png

GitHub:
https://github.com/karpathy/llama2.c

在浏览器运行Baby LLaMA 2:
https://ggerganov.com/llama2.c

参考链接:
[1]https://twitter.com/karpathy/status/1683143097604243456
[2]https://twitter.com/ggerganov/status/1683174252990660610
[3]https://twitter.com/altryne/status/1683222517719384065
[4]https://news.ycombinator.com/item?id=36838051

这篇关于GPT-4里套娃LLaMA 2!OpenAI创始成员周末爆改「羊驼宝宝」,GitHub一日千星的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/470183

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

如何提高 GitHub 的下载速度

如何提高 GitHub 的下载速度 文章目录 如何提高 GitHub 的下载速度1. 注册账号2. 准备好链接3. 创建仓库4. 在码云上下载代码5. 仓库更新了怎么办 一般来说,国内的朋友从 GitHub 上面下载代码,速度最大是 20KB/s,这种龟速,谁能忍受呢? 本文介绍一种方法——利用“码云”,可以大大提高下载速度,亲测有效。 1. 注册账号 去“码云”注册一

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

没睡够,周末补觉好不好

中国睡眠研究会调查显示,中国成年人失眠的发生率高达38.2%。此外,40%的成年人在最近一个月内出现白天打盹。中国睡眠研究会还发现,1900年以来,人们的日睡眠时间以每年0.71分钟的速度递减。即我们当前的日睡眠时间比1900年减少了1.5小时。睡不够,怎么办? 周末补觉有助健康 失眠症对生活质量的负面影响很大。失眠者中的抑郁症发病率比非失眠者高3到4倍。但调查结果显示,我国失眠患

Github连接方式

打开Linux中git的配置文件: /home/username/git/MyRepository/.git/config [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = true[remote "origin"]fetch = +refs/heads/*:refs/remot

GitHub每周最火火火项目(9.2-9.8)

项目名称:polarsource / polar 项目介绍:polar 是一个开源项目,它是 Lemon Squeezy 的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用 polar,开发者可以享受到更实惠的价格,同时也能够更自由地发挥自己的创造力和技能。 项目地址:https://github.

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是