服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

小破本也能炼GPT!300行代码搞定,GitHub获6k星,来自特斯拉前AI总监

日期: 来源:数据派THU收集编辑:数据派THU
来源:量子位

本文约1800,建议阅读5分钟

本文将围绕 ScienceAdvances 的一篇论文,介绍如何利用机器学习,对燃煤电厂的胺排放量进行预测。


MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。

社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。



训练/微调中型GPT,最简单最快的库来了!


其名为:NanoGPT。


从名字就能看出是个“纳米武器”,据作者介绍,该库代码简单易读,2个仅300行代码的文件。


现已基于OpenWebText重现 GPT-2 (124M),在单个8XA100 40GB节点上,训练时间为38小时。


值得一提的是,该库发布者是前特斯拉AI总监,李飞飞高徒,Andrej Karpathy。此次发布的NanoGPT,正是他2年前MinGPT的升级版。



目前,此项目在GitHub所获star已超6k,HackerNews上points也破千。



毫无意外地,评论区一片“喜大普奔”。


有网友表示,这才是咱独立开发者喜闻乐见的AI工具。



还有人对其一直开放传授分享知识的做法,表示感谢。



那么,这个最简单最快的NanoGPT怎么用?


下面展开讲讲。


NanoGPT的打开方式


发布文件里面包含一个约300行的GPT模型定义(文件名:model.py),可以选择从OpenAI加载GPT-2权重。


还有一个训练模型PyTorch样板(文件名:train.py),同样也是300多行。


作者补充道,代码并不难,很容易就能满足大家需求——无论是从头开始训练新模型,还是基于预训练进行微调(目前可用的最大模型为1.3B参数的GPT-2)。


 一个训练实例展示

上手前,需要提前准备好依赖项:


  • pytorch <3

  • numpy <3

  • pip install datasets for huggingface datasets <3 (如果你需要下载和预处理OpenWebText)

  • pip install tiktoken for OpenAI’s fast BPE code <3

  • pip install wandb for optional logging <3

  • pip install tqdm


先下载并标记OpenWebText数据集。


$ cd data/openwebtext $ python prepare.py

这将创建一个train.bin和val.bin文件,将 GPT2 BPE token id放入一个序列中。


然后准备训练,目前脚本默认是尝试重现GPT-2,124M参数版本,但作者更鼓励大家阅读代码查看文件顶部的设置及路径。


$ python train.py

如需使用 PyTorch 分布式数据并行 (DDP) 进行训练,请使用 torchrun 运行脚本。

比如,要在4个GPU节点上运行,代码如下:


$ torchrun --standalone --nproc_per_node=4 train.py

要从模型节点中采样,就需将一些检查点写入输入目录中。


$ python sample.py

据作者目前自己的测试,他在1 个 A100 40GB GPU 上训练一晚,损失约为 3.74。如果是在4个GPU上训练损失约为3.60。


如果在8个A100 40GB节点上进行约50万次迭代,时长约为1天,atim的训练降至约3.1,init随机概率是10.82,已将结果带到了baseline范围。


观察不同参数下训练/验证loss值如下:



至于如何基于新文本微调GPT,作者也简介了方法。


先访问data/shakespeare,查看prepare.py。


下载小型shakespeare数据集并将其呈现为train.bin和val.bin文件(方法前文已介绍),几秒即可搞定。


运行一个微调示例,如下:


$ python train.py config/finetune_shakespeare.py

该操作将加载配置参数,覆盖config/finetune_shakespeare.py文件。


作者指出,一般情况下,基本操作就是从GPT-2检查点初始化init_from,再正常训练。


此外,如果手里只有macbook或一些“力量”不足的小破本,作者建议使用shakespeare数据集,然后在一个很小的网络上运行。


先渲染数据;


$ cd data/shakespeare $ python prepare.py

再用一个较小的网络来运行训练脚本。


比如下面就创建了一个小得多的Transformer(4层,4个head,64嵌入大小),只在CPU运行,在作者自己的苹果AIR M1本上,每次迭代大约需要400毫秒。


$ cd ../.. $ python train.py --dataset=shakespeare --n_layer=4 --n_head=4 --n_embd=64--device=cpu --compile=False --eval_iters=1 --block_size=64 --batch_size=8

关于NanoGPT的后续计划,Andrej Karpathy也在网上有所分享。


他将试图让NanoGPT更快复现其他GPT-2模型,然后将预训练扩展至更大规模的模型/数据集中,此外,他还计划改进下微调部分的文档。


转战教育和开源的特斯拉前AI总监


熟悉Karpathy的圈内人肯定知道,他此前是李飞飞高徒,也长期致力于让更多人接触了解神经网络和相关数据集。


2020年8月,他就曾发布NanoGPT前一代,MinGPT,同样旨在让GPT做到小巧、简洁、可解释,同样主打300行代码搞定。


Karpathy另一大身份是前特斯拉AI核心人物。


在马斯克麾下,他历任特斯拉高级AI主管、特斯拉自动驾驶AutoPilot负责人、特斯拉超算Dojo负责人、特斯拉擎天柱人形机器人负责人…



2022年7月,Karpathy Andrej离职,在业内引发不小讨论。他表示,未来将花更多时间在AI、开源技术教育上,比如他做了一档AI课程,现还在更新中。


此番发布NanoGPT同时,Karpathy还下场安抚了下催更党——新视频正从0开始构建,计划2周内发布。



最后附上:


NanoGPT项目:
https://github.com/karpathy/nanoGPT
Andrej Karpathy课程:https://karpathy.ai/zero-to-hero.html


编辑:王菁

校对:林亦霖

相关阅读

  • 2023年会是AIGC的产业大年吗?

  • 经济观察网 记者 邹永勤 它的问世,有可能带来一场新的工业革命;如果搭不上这班车,就有可能被淘汰。这两个“可能”,是360创始人周鸿祎于2月9日下午在与搜狐CEO张朝阳的直播对话
  • 浪潮信息从算力上布局AIGC 赋能生成式AI产业创新

  • 文/杨剑勇因ChatGPT所驱动的人工智能浪潮席卷而来,从而使得人工智能概念得到大幅上涨,相关公司纷纷发布股票交易严重异常波动公告。其中,六个交易日股价实现翻倍的云从科技在异
  • ChatGPT会是大模型商业化的火炬吗?

  • ChatGPT走红的速度,显然超过了许多人的预期。即使是在中文互联网上,和ChatGPT有关的报道、讨论,早已超过了其他科技概念,甚至萌生出了“ChatGPT概念股”的说法,不少与AI、大模型
  • 特斯拉又涨价了,股价一个月翻倍

  • 据财联社2月12日消息,特斯拉(TSLA)美国官网显示,将Model Y高性能版价格再度上调500美元至5.849万美元,长续航版本价格无变化。本月初在美国本土已将Model Y长续航版上调了1500美
  • 被玩坏的ChatGPT,商业巨幕拉开仍有隐忧

  • 能写论文、编写代码,还能写诗,近日,ChatGPT火爆全球,也刷屏了许多人的朋友圈。根据UBS发布的研究报告显示,ChatGPT在1月份的月活跃用户数已达1亿,成为史上用户数增长最快的消费者

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章