热点资讯
现金九游体育app平台也不太会作念约略的数学题-九游体育(Nine Game Sports)官方网站 登录入口
发布日期:2025-11-07 06:09 点击次数:71
100好意思元本钱、8000行代码纯手搓克隆ChatGPT!现金九游体育app平台
特斯拉前AI总监、OpenAI独创成员、文书全职搞汲引的AI大神Andrej Karpathy(卡帕西)千里寂了好久,终于终于终于来上新课了!
新作nanochat,被其本东谈主称作是写得最"精神庞大"放飞自我的作品之一。
它是一个极简的、从零启动构建的全栈搜检/推理pipeline,用最一丝依赖的单一代码库完竣了约略版ChatGPT。
惟有你启动一台云GPU就业器,运行一个剧本,最快惟有4小时,就能在访佛ChatGPT的网页界面与我方搜检的大言语模子对话。

通盘款式约8000行代码,可完竣以下功能:
基于全新Rust言语完竣,搜检分词器(tokenizer)
在FineWeb数据集上预搜检Transformer架构大言语模子,并通过多项方针评估CORE得分
在SmolTalk用户-助手对话数据集、多项选拔题数据集、器用使用数据集上进行中期搜检(Midtrain)
推论指示微调(SFT),并辞天下常识多项选拔题数据集(ARC-E/C)、数学数据集(GSM8K)、代码数据集(HumanEval)上评估对话模子性能
可选在GSM8K数据集上通过"GRPO"算法对模子进行强化学习(RL)搜检
在推理引擎中完竣高效模子推理,复旧KV缓存、约略预填充/解码经过、器用使用(轻量级沙箱环境中的Python评释器),可通过CLI或类ChatGPT的WebUI与模子交互
生成单个Markdown阵势讲明卡,对通盘搜检推理经过进行总结,并加入"游戏化"呈现(如用评分、程度等阵势直不雅展示收尾)
全体本钱只需约100好意思元(在8×H100上搜检4小时),就能搜检复刻出一个可进行基础对话、创作故事诗歌、回复约略问题的约略版ChatGPT模子。

全体进展方针如下:

搜检约12小时后,模子在CORE方针上的进展即可卓越GPT-2。
若进一步将本钱晋升至约1000好意思元(搜检约41.6小时),模子进展显耀晋升,能管制约略的数学/代码问题,还能作念多项选拔题。
举个具体的例子:一个深度为30的模子搜检24小时后(非常于GPT-3 Small 125M的算力蹧跶,仅为GPT-3的千分之一),在MMLU数据集上可达到40多分,在ARC-Easy数据集上达70多分,在GSM8K数据集上达20多分。
卡帕西示意,他的标的是将这套完整的"强基线"本领栈整合为谐和、极简、易读、可修改、易分发的代码库。
nanochat将成为LLM101n课程的压轴款式(该课程仍在开发中)。
我认为它还有后劲发展为一个有计划器用框架或基准测试的器用,就像之前的nanoGPT一样。面前该款式远未统统优化(推行上存在大宗可考订空间),但全体框架已充足完整,可以发布到GitHub上,后续系数模块王人能在社区中进一步优化。
等来新作的网友也已绝对跋扈。款式刚发出来,GitHub Star数已飙到4.8k:

太酷了!跑一次这个款式,就把"机器学习工程师(ML Engineer)"放在我的简历上!

你发布的不仅仅代码,更是可被汇注的智谋,价值爆炸,栓Q。

在评述区,卡帕西还评释了nanochat基本架构与Llama访佛,但更简化一些,也模仿了部分modded-nanoGPT的联想,全体是为此范围的模子找到一个闲隙的基础架构。

以及这个款式基本上是统统手写的。
我如实尝试过用Claude或Codex之类的Agent来襄理,但效果相当晦气,简直毫无匡助。可能是因为这个repo的结构偏离了它们搜检数据的散播,是以它们根底"对不上号"。

话未几说,底下来看nanochat快速上手的详备指南。
100好意思元本钱,能抓出的最佳的ChatGPT
从比如Lambda GPU Cloud上启动了一台8卡H100的就业器,每小时要花大致24好意思元,是以接下来得分秒必争了。
环境搭建
克隆款式:

标的是用100好意思元的本钱搜检出一个最佳的类ChatGPT模子,称之为一次"速通(speedrun)",可参考speedrun.sh这个剧本,它被联想成能在一台全新的就业器上顺利重新到尾运行。
但接下来,卡帕西会迟缓素养其中的每一步。
当先需要确保装配了当下热点的uv款式管制器。装配uv,在.venv目次下创建一个新的凭空环境,获取系数依赖项,然后激该死环境,这样当输入python时,使用的是凭空环境中的Python,而不是系统自带的Python:

接下来,需要装配Rust/Cargo,以便编译自界说的Rust分词器。引入一个全新/自界说的分词器如实有点折腾,但缺憾的是,卡帕西合计早期minbpe款式中的Python版块速率太慢,而huggingface的分词器又过于肥胖且令东谈主困惑。
因此要专诚为搜检打造了我方的新分词器(经测试与Python版块效果一致),不外在推理时仍会使用OpenAI的tiktoken来保证效力。
当今就启动编译分词器吧:

搜检分词器
接下来,需要获取预搜检数据,这样材干:1)搜检分词器;2)对模子进行预搜检。
预搜检数据即是大宗网页的文本内容,这里将使用FineWeb-EDU数据集。
频频来说,可以顺利用huggingface datasets.load_dataset(),但卡帕西不可爱它过于肥胖贫寒且遮蔽了本应约略的逻辑,是以把通盘数据集再行打包成了约略、统统打乱的分片,这样就能收缩高效地简陋打听,何况把它的sample-100B版块再行上传为karpathy/fineweb-edu-100b-shuffle。
在这个页面上,你还可以预览数据蚁集的示例文本。每个分片是一个约0.25M个字符的约略parquet文献,压缩后(gzip阵势)在磁盘上大致占100MB。悉数有1822个分片,但搜检深度为20的模子只需要其中240个。

搜检算法与OpenAI使用的统谐和致(regex splitting, byte-level BPE)。思了解更多信息,可以看卡帕西对于tokenization本领的视频素养。
搜检完成后可以评估这个分词器:

评估收尾显现,完竣了约4.8的压缩比(即原始文本中平均4.8个字符压缩为1个token),还可以看到与GPT-2、GPT-4分词器的对比收尾。
比拟GPT-2(领有50257个tokens),在压缩文本方面全面更优,仅在数学内容上略逊一筹:

与GPT-4比拟,进展并不隆起,但需要探究到GPT-4领有更大的词汇表范围(100,277个tokens)。绝顶是在多言语处理方面GPT-4上风明显(由于FineWeb数据集高度侧重英语内容,这个收尾很合理),同期在代码和数学界限也更胜一筹:

尽管如斯,即使在词汇量较小的条目下,咱们在FineWeb数据集上仍以隐微上风卓越了GPT-4——因为这恰是咱们搜检所用的数据集,是以咱们的分词器能完好契合该文档散播(举例在英语文本压缩方面可能更具上风)。
预搜检
在预搜检过程中,剧本会按期评估CORE方针。你可以在DCLM论文中看到一些细节,内容上,它是一个很好的、表率化的、平日的方针,用于估量模子在大宗自动补全数据集上的进展厉害。
这些数据集包括HellaSwag、jeopardy、bigbench QA wikidata、ARC-Easy/Challenge、copa、commonsense qa、piqa、lambada、winograd、boolq等等(共22个)。

还提倡(尽管这是可选的)再作念一项成立:
建树wandb,以便在搜检过程中搜检好意思不雅的图表。前边uv照旧装配好了wandb,但你仍需创建账户并登录:

当今咱们可以启动预搜检了!这是打算量最大的部分,要搜检大言语模子(LLM),通过瞻望序列中的下一个token来压缩互联网网页文本,在此过程中,大言语模子会获取大宗对于天下的常识:

在这里,通过scripts/base_train.py剧本在8块GPU上启动搜检。咱们正在搜检一个有20层的Transformer。默许情况下,每块GPU在每次前向/反向传播时处理32行、每行2048个tokens的数据,优化器每一步悉数处理32×2048=2¹⁹=524,288≈0.5M个tokens。
淌若照旧成立好了wandb,可以添加—run=speedrun(系数搜检剧本王人复旧该参数)来成立运行称号并纪录相关数据。
当你启动搜检后,会看到访佛这样的输出(为粗略起见,不详了大宗内容):

可以看到,这个Transformer有1280个channels,注眼力机制中有10个注眼力头,每个头的dim=128。它大致有560M参数。为了合适Chinchilla scaling law的提倡,这意味着咱们需要用560M×20≈11.2B tokens来进行搜检。
由于优化器的每一步处理524,288个tokens,这意味着11.2B/0.5M≈21400次迭代。
通过对每个token的臆想FLOPs与总tokens数相乘,咱们可以知谈这将是一个打算量达约4e19 FLOPs的模子。
学习率会自动按1/sqrt(dim)自动缩放,因为更大的模子更偏好更小的学习率。
咱们使用Muon来优化矩阵,使用AdamW来优化镶嵌和反镶嵌。在这个模子中,莫得其他可搜检的参数(比如偏置、rmsnorm参数等)。搜检过程会按期讲明"考据集bpb",即考据数据集上每字节的位数。
每字节位数(bits per byte)是一个比典型的交叉熵蚀本更好的估量方针,因为它通过每个token的字节数进一步归一化了每个token的蚀本,使得该方针与分词器无关。
是以,不管你使用的是词汇量小的分词器照旧词汇量大的分词器,这个数值王人是可比较的,而原始的交叉熵蚀本则否则。
注目,每一步大致耗时0.5秒,lrm是学习率衰减乘数(在搜检接近尾声时,它会线性下落到0),讲明的MFU(模子flops诳骗率)看起来很可以,简直达到了一半,这意味着咱们充分诳骗了可用的bfloat16打算智商。
当今,要恭候大致3小时,直到4e19 FLOPs的打算量完成……在你的wandb图表中,你应该会看到访佛这样的内容:

随着时候的推移,bpb下落是好的迹象(阐述模子能更准确地瞻望下一个token)。此外,CORE分数在飞腾。
除了这些近似的方针,还可以更全面地评估模子:

可以看到,搜检集/考据集的bpb达到了约0.81,CORE方针飞腾到了0.22。
动作对比,评估包中包含了GPT-2模子的CORE分数。具体来说,0.22的CORE分数略高于GPT-2 large(0.21),但略低于GPT-2 xl(即"表率"的GPT-2,为0.26)。
此时,这个模子就像一个高档的自动补全器用,是以咱们可以运行一些领导词,来感受模子中存储的常识。base_loss.py文献会运行这些领导词。这些领导词包括:

补全后的文本如下:

是以,模子知谈巴黎是法国的王人门、Au代表金、星期六在星期五之后、"冷"是"热"的反义词,甚而还知谈太阳系的行星。
不外,它对天外的情态还不太细则,也不太会作念约略的数学题。
对于一个破耗72好意思元搜检出来的模子来说,照旧不算太差了。推理过程使用了一个自界说的Engine class,诳骗KV缓存来完竣高效推理,同期还约略完竣了两种常见的推理阶段:预填充妥协码。
咱们的Engine class还复旧器用使用(比如Python评释器),这在GSM8K数据集上搜检时会很灵验(之后会详备先容)。
搜检中期
接下来是中期搜检,这一步会在smol-SmolTalk数据集上进一步微调模子。
算法层面和预搜检统谐和致,但数据集造成了对话内容,而且模子会去顺应那些用于构建多轮对话结构的新特殊token。当今,每次对话大致是这样的,大致罢免OpenAI的Harmony聊天阵势:

像这样显现的token是特殊token,罢免OpenAI特殊token的阵势。中期搜检阶段对模子的多种适配相当灵验:
模子学习与多轮对话相关的特殊token(除了用于分隔文档的token,基础模子预搜检期间莫得这些token)。
模子适打法话的数据散播,而非互联网文档的数据散播。
对咱们来说相当攻击的一丝是,必须教养模子作念多项选拔题,因为在这样小的模子范围下,模子无法从就地的互联网数据中学会这一丝。具体而言,模子必须学会将几个选项与几个字母(如ABCD)关联起来,然后输出正确选项的算法。通过羼杂10万谈来自MMLU支持搜检集的多项选拔题来完竣这一丝。需要明确的是,问题不在于模子莫得相关常识,而在于它不睬解多项选拔题的运作方式,无法将常识展现出来。这很攻击,因为许多常见的模子评估(如MMLU)王人选用多项选拔题的阵势。
你可以教养模子使用各式器用。对咱们来说,需要通过在特殊token 和之间放入Python呐喊,来教养模子使用Python评释器。这对之后管制GSM8K问题会很灵验。
在中期搜检期间,你还可以针对许多其他适配进行搜检,举例高下文长度膨大(尚未探索)。
中期搜检羼杂数据默许是这样的:

然后按如下方式启动它:

此次运行只需要大致8分钟,比预搜检的约3小时短得多。当今,模子照旧是一个信得过的聊天模子,能够上演助手的扮装回复用户的问题,可以对其进行评估:

得到了该阶段模子的以下收尾:

可以看到:
天下常识:前三项(ARC-E/C和MMLU)王人是多项选拔题测试,用于估量模子在各个界限的天下常识。由于有4个选项(A、B、C、D),就地意象的正确率约为25%,是以模子照旧进展得比就地意象更好了。(对于这样小的模子来说,多项选拔题黑白常难的)
数学:GSM8K是小学水平的数学题。这里的基准性能是0%,因为模子必须写出推行的谜底数字。面前咱们的性能仍然不是很强,只管制了2%的问题。
代码:HumanEval是一个Python编码基准测试,通常,就地基准性能为0%。
ChatCORE:这是卡帕西尝试复制CORE分数对基础模子的评估方式,并将其膨大到聊天模子的恶果。也即是说,将上述系数方针王人减去基准性能,这样分数就在0到1之间(举例,就地模子得0分,而不是MMLU上的25%),然后讲明系数任务的平均值。它是对刻下模子实力的一个单一数字总结。
这些评估仍然非常不完整,还有许多其他可以估量但尚未估量的方面。
如实莫得一个很好的图表来展示这一步,但这里有一个之前对另一个更大的模子进行中期搜检的例子,仅仅为了让你了解在微调运行期间这些方针飞腾时的面目:

监督微调
中期搜检之后是监督微调(SFT)阶段。
这是在对话数据上独特进行的一轮微调,理思情况下,你会全心挑选最优质的好数据,而且也会在这里进行安全搜检(比如助手拒却欠妥肯求的搜检)。
咱们的模子甚而连天外的情态王人还不细则,是以面前在生物危害这类问题上可能照旧安全的。这里会进行的一项界限适配是,SFT会拉伸数据行并对其进行填充,统统模拟测试时的阵势。
换句话说,示例不再像预搜检/中期搜检时那样为了搜检效力而被就地拼接成长行。修正这种界限不匹配的问题,是另一个小小的"拧紧螺丝"式的晋升。咱们可以运行SFT并再行评估:

这个过程通常只需运行约7分钟,你应该能不雅察到各项方针均有小幅晋升:

终于,咱们可以以用户身份与模子对话了!
其真的中期搜检后就可以进行对话,但当今效果会更理思些。你可以通过末端窗口(方式1)或网页界面(方式2)与它疏导:

chat_web剧本会使用FastAPI来提供Engine就业。要确保正确打听它,比如在Lambda上,使用你场地节点的公网IP,背面加上端口,举例http://209.20.xxx.xxx:8000/等等。
那看起来会很棒,或者是这样的:

它短期内还无法在物理或诗歌比赛中获胜,但话说回首——用这样少的预算能作念到这个程度,看起来照旧很酷的,而且这个款式还远远没到充分调优的地步。
强化学习
"速通"的终末一个阶段是强化学习。
基于东谈主类响应的强化学习(RLHF)是一种可以的活动,能晋升几个百分点的性能,还能缓解许多因采样轮回自身带来的模子谬误——比如幻觉、无穷轮回等。
但以咱们的范围,这些王人不是主要探究成分。话虽如斯,在咱们面前使用的所罕有据蚁集,GSM8K是惟逐一个有明晰、客不雅奖励函数的(数学题的正确谜底)。
是以咱们可以运行RL(/GRPO)剧本,通过轮换进行采样和搜检的约略强化学习轮回,顺利在谜底上进行性能攀升:

在强化学习过程中,模子会遍历搜检蚁集系数的GSM8K题目,对完成情况进行采样,然后咱们会对这些采样收尾进行奖励,并针对得回高奖励的样本进行搜检。
咱们使用的是高度简化的GRPO搜检轮回,比如,不使用信任区域(铁心参考模子和KL正则化),选用在计策(铁心PPO的比率+编订),使用GAPO作风的归一化(基于token级,而非序列级归一化),上风函数仅通过均值进行约略的奖励平移(铁心用除以表率差的z分数归一化)。
是以终末得到的东西看起来更像是REINFORCE算法,但保留了GR("组相对")部分来打算奖励的上风值。在刻下范围和任务约略度下,这种活动效果尚可。更多细节请参阅剧本。
面前强化学习默许是注目掉的,因为它还莫得经过很好的调优,而且咱们也莫得完整通用的RLHF。
只针对GSM8K进行了强化学习,这亦然为什么用-a璀璨将评估也收尾在GSM8K上。由于强化学习就像通过吸管经受监督信号,这个过程会运行非常长的时候。
举例,默许成立下运行约1.5小时后,效果如下所示:

收货
终末卡帕西指出的是款式文献夹里出现的report.md文献。它包含了许多与运行相关的细节,终末还有一个可以的总结表格:
Characters:333,989
Lines:8,304
Files:44
Tokens(approx):83,497
Dependencies(uv.lock lines):2,004

总用时:3小时51分钟
需要注宗旨是,由于面前对强化学习(RL)的复旧还不太完善,在打算总耗通常把它摈斥了。到监督微调(SFT)阶段为止,通盘过程运行了3小时51分钟,总本钱为(3+51/60)×24=92.4好意思元(淌若加上强化学习,当今总时候会更接近5小时)。
甚而还剩下8好意思元可以买冰淇淋呢。
该你了
借助nanochat,你可以对任何部分进行调优。
更换分词器、修改淘气数据、援助超参数、考订优化过程……有许多思法可以去尝试。你未必还思搜检更大的模子。这个代码库的成立能让你收缩作念到这一丝。
只需使用—depth参数来更动层数,其他系数相关成立王人会基于这个参数动作复杂度的单一移动项而自动援助。比如,通谈数会加多,学习率会相应援助等。
原则上,仅通过蜕变深度,你就能探索出一整套nanochat的"迷你系列"模子。使用更大的深度并恭候更万古候,表面上你应该能得到明显更好的收尾。
你需要在base_train.py的预搜检阶段传入深度参数。举例,要得到一个CORE方针约为0.25、性能接近GPT-2的模子,尝试depth=26是个可以的选拔。
但搜检更大模子时,需要援助开辟最大宗处理大小,比如从32降至16:

代码会察觉到这一变化并自动进行抵偿,它和会过2次梯度积存轮回来达到标的批处理量0.5M。要搜检depth=30的模子,需要进一步裁汰成立:

以此类推。接待寰球去阅读代码,卡帕西起劲让代码保持易读性,添加了注目,代码整洁且易于汇注。
虽然,你也可以把系数内容打包,去筹商你可爱的大言语模子,或者更约略的是,使用Devin/Cognition的DeepWiki来对这个代码仓库发问。只需把代码仓库的URL从github.com改成deepwiki.com即可,比如 nanochat DeepWiki。
即是这样,调优通盘经过的淘气部分,再走运行,然后享受其中的乐趣吧!

AI界超能手气专注于汲引的大牛
卡帕西曾任特斯拉AI主宰,之后去了OpenAI,客岁2月从OpenAI下野。
他在通盘AI界领有超高的东谈主气,很大一部分来自于他的课程。
包括他我方的早期博客笔墨共享和自后的一系列Youtube视频教程,他还与李飞飞联结开设的的斯坦福大学首个深度学习课程CS231n《卷积神经网罗与视觉识别》。

今天的不少学者和创业者,王人是随着他初学的。
卡帕西对汲引的关注,甚而可以追念到学生时期在网上教寰球玩魔方。

客岁7月,从OpenAI下野的卡帕西一忽儿官宣创业,搞了一家AI原生的新式学校——Eureka Labs。
怎样汇注AI原生?
思象一下与费曼一齐学习高质地讲义,费曼会在每一步中1对1领导你。
不欢快的是,即使每个学科王人能找到一位像费曼这样的群众,他们也无法分身切身领导地球上的80亿东谈主。
但AI可以,而且AI有无穷的耐烦,精明天下上系数的言语。
是以卡帕西要打造"训练+东谈主工智能的共生",可以在一个通用平台上运行通盘课程。
淌若咱们奏效了,任何东谈主王人将易于学习任何东西,扩大汲引这个成见自身的"范围"和"程度"。
Eureka Labs首个居品,亦然首门课程LLM101n。
手把手带你构建一个访佛ChatGPT的故事生成大模子,以及配套的Web应用门径。

GitHub repo:https://github.com/karpathy/nanochat
详备指南:https://github.com/karpathy/nanochat/discussions/1
参考相接:https://x.com/karpathy/status/1977755427569111362
一键三连「点赞」「转发」「防御心」
接待在评述区留住你的思法!
— 完 —
🏆 年度科技风向标「2025东谈主工智能年度榜单」评比报名开启啦!咱们正在寻找AI+期间领航者
❤️🔥 企业、居品、东谈主物3大维度,共开辟了5类奖项,接待企业报名参与 👇
一键关注 👇 点亮星标
科技前沿进展逐日见现金九游体育app平台
