最近ChatGPT大火,2023有可能就是AGI元年了。近两个月使用下来,ChatGPT给我最深刻的感觉就是它所具备的理解和思维能力,第一次体验时真的是非常震撼,完全是之前各种『人工智障』智能助理所不能比拟的,第一次感觉这才是真正的『人工智能』,项目组里小伙伴也各个都玩的乐此不疲,连百度的弱智吧也跟着大火了一把,各种ChatGPT相关的自媒体文章视频纷纷出来,都要蹭上这波热度。然后各种AI创业公司也纷纷诞生,各大IT公司的AI竞争进入白热化阶段,颇有当年移动互联网大潮时的军备竞赛百花齐放的感觉。
紧随时代的热点,下面总结一下自己这段时间对ChatGPT的学习与使用。
ChatGPT 是 OpenAI 发布的基于 GPT(Generative Pre-training Transformer)模型的生成式AI聊天机器人,意在实现通用人工智能。
B站的这个科普视频很不错,推荐看看:
大语言模型为什么这么厉害?涌现?思维链?万字科普GPT-4
GPT(Generative Pre-training Transformer) 是一种类型的大型语言模型(LLM),也是一个优秀的生成人工智能的框架,由OpenAI在2018年提出,基于Transformer架构。发展历程:
GPT 采用的半监督方法使得大规模生成系统成为可能,并且是首个使用Transformer模型实现这一方法。该方法包括两个阶段:
Transformer 架构由Google 2017年提出,通过在大规模无标签文本数据集上进行预训练,能够生成类似人类输出的文本。与之前NLP常用的循环神经网络(RNN)不同,具有下面的优势:
基于RLHF(Reinforcement Learning from Human Feedback)从人类反馈中进行强化学习方法进行训练的InstructGPT,使其能够遵循人类指示并生成相应的输出。在泛化到新的指令时也显示出良好的性能。
还有下面一些概念要简单了解一下,然后才好理解什么是ChatGPT说的Token:
概念 | 介绍 |
---|---|
Embedding | Embedding, 是一种将离散变量(如词、图片等)转化为连续向量表示的技术。具体来说,Embedding通过将离散变量映射到一个低维稠密向量空间中,能够意义化处理数据,提高数据的表达能力,使得机器学习等领域中的任务(如分类、聚类、推荐等)更加精准和高效。 |
Few-shot | Few-shot, 是指在模型只经过少量特定任务的训练,就能够对新任务进行预测或生成结果的能力。这种能力通常是通过在训练阶段使用少量的训练样本和元学习技术来实现的。 |
Zero-shot | Zero-shot, 是指在模型未经过特定任务的训练,却能够对该任务进行预测或生成结果的能力。这种能力通常是通过在训练阶段暴露模型于各种语言和任务来实现的。例如直接向ChatGPT提问,不给示例。 |
ChatGPT使用一种基于字节对编码(Byte Pair Encoding,BPE)的 tokenization method,可以有效处理罕见单词和超出词汇表的tokens。这种 tokenization 过程将输入文本切分成文本片段,每个片段被表示为一个token,token是文本的数值表示形式,用于在模型中进行后续处理。ChatGPT将每个单词都会转换为相应的token,然后转换成 embedding representations,embedding 是表示文本语义和上下文信息的向量。
LLM(Large Language Model)是NLP领域一种重要模型,于2018年左右出现,并在各种任务上表现出色,这使得自然语言处理研究的重点从以前专门针对特定任务训练专用模型的范式转变过来到通用模型上。LLM能够在已知文本的多个层面上找出规律,如识别单个词语在段落中的上下文联系,以及辨识句子在文本框架中如何承上启下等。LLM具有以下特点:
ChatGPT的文章介绍中,很多能力是随着模型规模的扩大而涌现出来的,业界也有很多研究涌现的文章,比如:Emergent Abilities of Large Language Models。微软介绍GP4的论文也提到了这些涌向的能力,比如:
In-context learning
, 上下文学习学习能力,一种说法是OpenAI 训练的 GPT-3时,比 GPT-2 整整用了 15倍的语料,同时模型参数量扩展了 100 多倍,使其涌现了In-context learning 能力,可以说有很大程度来自于其庞大的参数量和训练数据,但是具体能力来源仍然难以溯源。Chain-of-Thought
, 思维链能力,没有确定性的结论说明 CoT 特性来自于具体哪些迭代优化, 没有确定性的结论说明 COT 特性来自于具体哪些迭代优化:有些观点说是通过引入强化学习;有些观点说是通过引入了指令微调的训练方式;有些观点说是通过引入庞大的代码预训练语料;推测的方式则是根据不同时间节点上的模型版本能力差进行排除法。深度学习从一开始就有不可解释性的特点,再加上ChatGPT很多能力说是涌现出来的,好奇宝宝就更多了,知乎还看到了一个这样的问题:
大语言模型中的涌现现象是不是伪科学?
不光是涌现,关于复杂系统的很多研究都经常被诟病是伪科学。之所以被说伪科学是因为它无法用科学里流行的还原论来解释,还原论是说“如果你理解了整体的各个部分,以及把这些部分‘整合’起来的机制,你就能够理解这个整体”。
只要数据量足够且真实,且模型没有硬错误的前提下,不断的训练说不定真的能够产生一些意想不到的效果。
总之,模型增大,是有可能产生意想不到的能力,但是现在还不可解释。
作为一名程序员,用ChatGPT查资料和写一些短程序片段是我近阶段最常用到的场景,只要你把问题描述的足够清晰,尤其要用结构化的语言来描述你的需求或者问题效果会更好,那么ChatGPT基本会给你很满意的答案。说几个场景:
还有就是一些文案的生成,比如根据主题来生成一些场景的文案,通过不断的反馈来调整具体的内容,最后再自己润色,效率比自己从头写高出很多。
B站UP主使用GPT4开发的AI: 格斗之王!AI写出来的AI竟然这么强!
这个真的是太强了,后面如果想学一下机器学习入门,网上看资料+练习+ChatGPT指导,效率直接起飞啊。当然,作为意在实现AGI通用人工智能,在很多领域都是如此,真是给每个人配一个超级顾问,答疑解惑,还能辅助搬砖。
这个是我自己突发奇想,自己现编的一个题目。使用ChatGPT 3.5, 就能5min完成这个小demo,自己一行代码不修改, 全部用AI生成的。
过程全纪录,7个Prompt就完成了这个project:
1. 编写一个留言板网站,使用python flask框架,代码尽量短,不用数据库,使用一个文本文件做后台持久化数据存储,不需要用户注册
#ChatGPT: AI 给出了一个 app.py 的源代码,里面引用了一个 index.html 文件
2. index.html 内容呢
#ChatGPT: AI 给出了一个 index.html 的源代码
3. 如何部署,工程的文件结构是什么
#ChatGPT: AI 给出了工程文件结构
4. 如何启动?
#ChatGPT: AI 给出网站启动命令
5. 我在本机访问,网址是多少呢?
#ChatGPT: AI 给出了本机访问的URL网址
6. 上面的app.py运行报错了 // 注意:我空了一行,然后用 > 这种 Markdown 引用格式写了报错内容
> return redirect('/')
> NameError: name 'redirect' is not defined
#ChatGPT: 给出了bug原因
7. 修改app.py的这个bug
#ChatGPT: 给出了bug修复方法
效果显著,我这个还是使用的免费版的ChatGPT3.5,如果是GPT4,估计效果会更好,一把就是正确的了。不过这也隐藏了一个点,你必须有一定的经验,才能把你要做的需求描述清楚,GPT4让有厉害的程序员效率翻好几倍,尤其是在平时的一些小的常见的场景上的编程。
自从ChatGPT开放了API,各种应用和浏览器插件层出不穷,这里就只推荐两个我用的最多的:
还有更多的,大家可以慢慢探索。
ChatGPT爆火后,网上相关资料文章也是铺天盖地,有时候资料太多反而不好筛选了。下面是我搜集的一些比较好的资料:
也许ChatGPT就是AI时代的iPhone4时刻,技术的革新不知不觉就会带来社会的变革,保持一颗好奇心,感受科技带来的美好!