山海经

 找回密码
 立即注册
查看: 234|回复: 13

Stanford Alpaca (羊驼):ChatGPT 学术版开源实现

[复制链接]

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-3-16 19:21:22 | 显示全部楼层 |阅读模式
前言介绍


  • Alpaca 在线体验

    • 查语病
    • 写代码
    • 连续对话能力

  • 原理简要分析
  • 一些有意思的观察
  • 总结
前言介绍

最近 ChatGPT 大热,让人惊叹其强大的对话、上下文理解、代码生成等等能力,3 月 15 日 OpenAI 又放出了能实现图像理解的多模态大模型 GPT-4,直让人感觉通用人工智能 (AGI)仿佛离自己不远了。有生之年看到人类命运共同体能有这样的进展我是由衷的高兴,并不自觉地给 OpenAI 点了一个赞:


但另一方面由于 GPT 系列模型 & ChatGPT 均未开源,再加上高昂的训练成本所构成的坚不可摧的护城河,让普通人 & 公司望而却步,说实话,还是挺让人焦虑的。当然焦虑的不止国内的研发人员,今天惊喜的发现斯坦福大学开源了学术版的 ChatGPT, 他们命名为 Alpaca (羊驼,没错,说的就是神兽),目前放出了在线体验网址、数据生成代码、训练过程和超参,不久就会放出模型权重参数以及完整的训练代码。详情如下:

  • 在线体验网址:https://alpaca-ai-custom2.ngrok.io/
  • 模型介绍文章:https://crfm.stanford.edu/2023/03/13/alpaca.html Alpaca: A Strong Instruction-Following Model
  • Github 代码地址:https://github.com/tatsu-lab/stanford_alpaca
代码刚放出来不久,我先 mark 一下,趁代码量还比较少的时候赶紧看看,否则后面代码越多看不过来 。简单看了下这个开源库,发现一些挺有意思的现象,待会分享,先说下 Alpaca 的体验。
Alpaca 在线体验

查语病

比如写这篇文章的时候,突然不清楚上文写的 “再加上高昂的训练成本所构成的坚不可摧的护城河” 一句是否有语病,我就尝试把它扔给 Alpaca 替我检查一下,测试其智能程度,此外再验证下它是否能识别中文,效果如下:


第一个红框中输入我的问题,第二个红框是 Alpaca 的回答,它不仅指出 “坚不可摧的护城河” 没有语病,还把这句话翻译了一下。保险起见我还到 Google 中搜了一下,确认有句子是这样用的,那我只能默认它是对的  。
另外注意到第二个红框下还有 “Upvote response” 和 “Downvote response” 两个按钮,用来给回答进行反馈。
写代码

给它出了一道简单的编程题,LeetCode 中的链表反转问题,让它用 Python 实现一下:


居然写对了,能运行 !算是一个小惊喜。说明这个模型虽然轻便,但也有足够强的能力。
连续对话能力

为了测试 Alpaca 的连续对话能力,我仍然从代码的角度进行提问;我首先让它写非常简单的 python 代码,可能 5 ~ 10 行的样子,它顺利的完成了:


之后我让它将代码写复杂一些,我在提问的时候说的是 “make it more complex”, 其中 “it” 需要它理解了上下文,才能知道我指的是它前面所写的简单代码:


我表扬它 “Good”,它还回我一句 “Perfect”,商业互吹这是... 但是回复的时候偷懒,只给了思路,但是没有具体的 code, 因此我决定 CPU 它一下:“Talk is cheap, show me the code”:


果然,它给了一个稍微复杂的 code... 还挺好玩。
功能体验就介绍到这。
原理简要分析

Alpaca 本身的介绍 blog:https://crfm.stanford.edu/2023/03/13/alpaca.html 其实说的非常清晰了,模型的训练流程基本可以用下图来概括:


它使用 52K 个 intruction-following examples 来微调 Meta 的大语言模型 LLaMA 7B (Meta 开放了模型权重以及 Inference 代码,详见 https://github.com/facebookresearch/llama),从而生成了 Alpaca 7B。
但是这 52K 个 intruction-following examples 是如何生成的呢?Alpaca 团队使用  https://github.com/yizhongw/self-instruct 提供的 175 个 seed tasks,这些 seed tasks 长这样:


调用 OpenAI 的 text-davinci-003 模型,利用 OpenAI 的模型来产生有价值的 instructions!
不得不说,有点机智,这种方式很像蒸馏训练啊。将 OpenAI 性能完备的模型作为 Teacher,来指导参数更少的 Alpaca 模型进行训练,大幅降低了训练成本 。其中调用 OpenAI API 的成本不到 500 美刀,另外微调 7B 参数的 LLaMA 模型,使用云服务商提供的 8 块 80GB A100 显卡,训练 3 小时,消费不到 100 美刀。因此整体成本是小于 600 美刀。
相对来说,确实方便了独立的研究人员、学术机构以及大部分公司。
一些有意思的观察

在前言中曾说查看 https://github.com/tatsu-lab/stanford_alpaca 这个库时发现一些有意思的现象。那是因为我在 PR (https://github.com/tatsu-lab/stanford_alpaca/pull/24) 中发现,这些研发人员看东西都超细致....


比如上面小哥发现 prompt.txt 行号标错了:


这都能注意到,当时我就震惊了!也许是运行代码时发现的错误也说不定,but never mind。
总结

本文简要介绍了 Alpaca, 一个关于 ChatGPT 的学术版开源实现。最近想复现 ChatGPT 的工作有很多,我目前关注的几个除了 Alpaca, 还有:

  • OpenChatKit: https://github.com/togethercomputer/OpenChatKit
  • ChatRWKV: https://github.com/BlinkDL/ChatRWKV
好想自己有多个分身,以有涯随无涯,殆矣!
最后:可以在微信中搜索 “珍妮的算法之路” 或者 “world4458” 关注我的微信公众号, 可以及时获取最新原创技术文章更新.
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-16 19:22:18 | 显示全部楼层
请问有介绍怎么在自己电脑搭建的不
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-16 19:23:00 | 显示全部楼层
可以看看文中的 github 链接,应该有介绍本地运行的方法,不过可以再等等,模型参数和训练代码不久应该会放出来
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-16 19:23:39 | 显示全部楼层
这不就是self-instruct吗
回复

使用道具 举报

0

主题

30

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2023-3-20 07:15:08 | 显示全部楼层
沙发位出租,有意请联系电话:13838384381
回复

使用道具 举报

0

主题

44

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2023-3-28 19:57:03 | 显示全部楼层
LZ帖子不给力,勉强给回复下吧
回复

使用道具 举报

0

主题

42

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2023-4-3 15:07:49 | 显示全部楼层
传说中的沙发???哇卡卡
回复

使用道具 举报

0

主题

36

帖子

72

积分

注册会员

Rank: 2

积分
72
发表于 2023-4-19 19:51:11 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
回复

使用道具 举报

0

主题

44

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2023-4-22 11:03:58 | 显示全部楼层
为保住菊花,这个一定得回复!
回复

使用道具 举报

0

主题

39

帖子

78

积分

注册会员

Rank: 2

积分
78
发表于 2023-5-17 16:38:53 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|山海经

Powered by Discuz! X3.4 © 2001-2012 Comsenz Inc.

GMT+8, 2025-7-12 18:53 , Processed in 0.123649 second(s), 20 queries .

快速回复 返回顶部 返回列表