网站链接做app,沂南县建设局网站,外贸网站建设团队,企业推广软件从图灵测试到ChatGPT
1950年#xff0c;艾伦•图灵(Alan Turing)发表论文《计算机器与智能》#xff08; Computing Machinery and Intelligence#xff09;#xff0c;提出并尝试回答“机器能否思考”这一关键问题。在论文中#xff0c;图灵提出了“模仿游戏”#xff…从图灵测试到ChatGPT
1950年艾伦•图灵(Alan Turing)发表论文《计算机器与智能》 Computing Machinery and Intelligence提出并尝试回答“机器能否思考”这一关键问题。在论文中图灵提出了“模仿游戏”即图灵测试的概念用来检测机器智能水平。图灵测试的核心思想是如果一个人代号C使用测试对象皆理解的语言去询问两个他不能看见的对象任意一串问题其中一个是正常思维的人代号B另一个是机器代号A。如果经过若干询问以后C不能得出实质的区别来分辨A与B的不同则此机器A通过图灵测试。 1956年人工智能正式成为了一个科学上的概念而后涌现了很多新的研究目标与方向。虽然图灵测试只是一个启发性的思想实验而非可以具体执行的判断方法但他却通过这个假设阐明了“智能”判断的模糊性与主观性。从此图灵测试成为了 自然语言处理Natural Language ProcessingNLP 任务的一个重要评测标准。图灵测试提供了一个客观和直观的方式来评估机器是否具有智能即通过让机器与人类进行对话来判断其智能水平。这种方式可以避免对智能本质的哲学争论也可以避免对智能具体表现形式的技术细节。因此很多自然语言处理任务都可以用图灵测试来进行评测例如对话系统、问答系统、文本生成等。
自然语言处理Natural Language ProcessingNLP是计算机科学人工智能语言学关注计算机和人类自然语言之间的相互作用的领域。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理包括很多不同的任务如分词、词性标注、句法分析、语义分析、信息抽取、文本分类、文本摘要、机器翻译、问答系统、对话系统等。
图灵测试与自然语言处理任务有着密切而复杂的关系可以从以下两个方面来概括
一方面图灵测试是自然语言处理任务的一个重要驱动力。图灵测试提出了一个具有挑战性和吸引力的目标即让机器能够用自然语言与人类进行流畅、智能、多样化的对话。为了达到这个目标自然语言处理领域不断地发展和创新各种技术和方法以提高机器对自然语言的理解和生成能力。例如为了让机器能够回答用户提出的问题就需要研究问答系统这一自然语言处理任务为了让机器能够根据用户提供的信息生成合适的文本就需要研究文本生成这一自然语言处理任务为了让机器能够适应不同领域和场景的对话就需要研究领域适应和情境感知这一自然语言处理任务等等。另一方面图灵测试是自然语言处理任务的一个重要目标。图灵测试提出了一个具有前瞻性和理想性的愿景即让机器能够达到与人类相同或者超越人类的智能水平。这个愿景激发了很多自然语言处理领域的研究者和开发者使他们不断地探索和创新以期实现真正意义上的自然语言理解和生成。例如为了让机器能够理解用户提出的问题就需要研究语义分析、知识表示、逻辑推理为了让机器能够生成符合用户需求的文本就需要研究文本规划、文本风格、文本评价为了让机器能够与用户建立信任和情感的联系就需要研究情感分析、情感生成、情感对话等等。
自然语言处理与人工智能发展历史有着密切而复杂的关系。它们相互促进、相互影响、相互依存、相互目标。自然语言处理在人工智能发展历史上有很多里程碑式的成果比如
1954年IBM实现了世界上第一个机器翻译系统将俄语翻译成英语。1966年约瑟夫·韦伊岑鲍姆开发了ELIZA一种模拟心理治疗师的对话系统。1972年特里·温诺格拉德开发了SHRDLU一种能够理解和生成自然语言的程序用于控制一个虚拟的机器人在一个虚拟的世界中进行操作。1988年杰拉尔德·萨斯曼和詹姆斯·马丁创建了Text Retrieval ConferenceTREC一个旨在推动信息检索和自然语言处理技术发展的国际评测活动。2011年苹果公司推出了Siri一种基于自然语言处理技术的智能个人助理。同年IBM的Watson战胜了《危险边缘》节目的冠军选手展示了自然语言处理技术在问答领域的强大能力。2013年谷歌公司推出了Word2Vec一种基于神经网络的词向量表示方法开启了自然语言处理领域的深度学习时代。2016年Facebook发布了FastText的文本分类算法它可以在处理大规模文本分类任务时取得很好的效果。2017年Google发布了一篇很可能是AI历史上最重要的一篇论文《Attention is all you need》在论文中作者提出了Transformer——一个具有多头注意力机制的模型在文本特征提取方面取得了优异的效果。2018年Google发布了BERT预训练模型它在多项NLP任务上取得了最佳效果引领自然语言处理进入了预训练时代。2020年OpenAI发布的GPT-3模型有多达1750亿的参数可以在提供少量样本或不提供样本的前提下完成大多数NLP任务。
以上这些能力成果依赖于自然语言处理技术NLP的不断发展。NLP领域涉及到的技术非常广泛但其中最基础的就是——词嵌入也叫词向量Word Embedding以及与此相关的文本表征技术。它本质上是找到一种编码方式实现从自然语言中到数学空间的映射。
我们为什么需要词向量呢当我对计算机说出“我爱你。”的时候计算机无法真正理解我说了什么。要想让计算机理解我说的话必须要对“我爱你。”这句话进行编码Encoding——比如我们可以让数字“1”代表“我”数字“2”代表“爱”数字“3”代表“你”数字“0”代表“句号”。经过编码之后计算机才能理解这句话然后再进行计算和处理。词向量就是以单词为为单位进行编码那么如何进行编码才是最优的方式呢从1940年代开始人们就希望寻找解决这个问题的模型和方法下面选择最经典的词袋模型和神经网络概率模型做一些简单一点的介绍。
词袋模型Bag of Words,BOW从名字来看词袋模型就像是一个大袋子把所有的词都装进来。文本中的每个单词都看作是独立的忽略单词之间的顺序和语法只关注单词出现的次数。在词袋模型中每个文本可以表示为一个向量向量的每个维度对应一个单词维度的值表示该单词在文本中出现的次数。神经概率语言模型Neural Probabilistic Language ModelNPLM它可以通过学习大量的文本数据来预测下一个单词或字符的概率。其中最早的神经网络语言模型是由Yoshua Bengio等人于2003年发表的《A Neural Probabilistic Language Model》提出的它在得到语言模型的同时也产生了副产品词向量。
早期的词向量都是静态的一旦训练完就固定不变了。随着NLP技术的不断发展词向量技术逐渐演变成基于语言模型的动态表征。语言模型不仅可以表征词还可以表征任意文本。
时间来到了2022年终于轮到我们的主角要隆重登场了。2022年11月30日OpenAI发布了一款真正的智能聊天机器人ChatGPT一经发布立刻就点燃了AI圈。仅仅五天就达到了100万用户。OpenAI不得不紧急扩容用户发现ChatGPT不仅仅只会插科打诨和人类聊天它还能写论文讲笑话编段子生成演讲稿写请假条模仿导师写推荐信甚至帮你写代码写营销策划案等等。拥有了ChatGPT就像你身边配备了一个功能强大的秘书。到了2023年1月大量用户开始涌入仅仅两个月的时间ChatGPT成为了史上最快达到1亿用户的应用。 无论是ChatGPT还是其他后来的模仿者它们其实都是语言模型准确来说——大语言模型。使用时无论是调用API还是开源项目总有一些参数可能需要调整。对大部分内行人士来说应该都不成问题但对外行就有点玄乎了。基于此本文将简要介绍ChatGPT相关技术基本原理行文将站在外行人角度尝试将内容尽量平民化。虽然不能深入细节但知晓原理足以很好使用了。
LM
LMLanguage Model语言模型简单来说就是利用自然语言构建的模型。这个自然语言就是人常说的话或者记录的文字等等只要是人生产出来的文字都可以看做语言。你现在看到的文字也是。模型就是根据特定输入通过一定计算输出相应结果的一个东西可以把它当做人的大脑输入就是你的耳、眼听或看到的文字输出就是嘴巴说出来或手写出来的文字。总结一下语言模型就是利用自然语言文本构建的根据输入的文字输出相应文字的模型。
在深度学习的初期最著名的语言模型是RNNRecurrent Neural Network中文叫循环神经网络。RNN 模型与其他神经网络不同的地方在于它的节点之间存在循环连接这使得它能够记住之前的信息并将它们应用于当前的输入。这种记忆能力使得 RNN 在处理时间序列数据时特别有用例如预测未来的时间序列数据、自然语言处理等。通俗地说RNN 就像一个具有记忆功能的人可以根据之前的经验和知识对当前的情况做出反应并预测未来的发展趋势。如下图所示 来自https://colah.github.io/posts/2015-08-Understanding-LSTMs/
右边是左边的展开A就是参数X是输入h就是输出由于自然语言是Token by Token的所以就组成了一个序列。那这个参数怎么学习呢这就要稍微解释一下学习过程请看下面的图
RNN的演示代码
import torch.nn as nnrnn nn.RNN(32, 64)
input torch.randn(4, 32)
h0 torch.randn(1, 64)
output, hn rnn(input, h0)
output.shape, hn.shape
# (torch.Size([4, 64]), torch.Size([1, 64]))
上面nn.RNN就是RNN模型输入是一个4×32的向量换句话说4个Token维度d32h0就是初始化的输出也就是output4个里面的第一个这里output的四个64维的向量就分别表示4个输出hn就是最后一个Token的输出也可以看成是整个句子的表示。如果要输出词的概率需要先扩充到词表大小再进行归一化
wo torch.randn(64, 1000) # 假设词表大小N1000
logits output wo # 4×1000
probs nn.Softmax(dim1)(logits) # 4×1000每一行概率和为1
这里的probs每一行就是词表大小的概率分布和为1意思是这个Token到词表每个Token的概率。
Transformer
一个刚开始在NLP领域后来横跨到语音和图像领域并最终统一几乎所有模态的架构。这是Google2017年发的一篇论文标题叫《Attention Is All You Need》其最重要的核心就是提出来的Self-Attention机制中文也叫自注意力。简单来说就是在语言模型建模过程中把注意力放在那些重要的Token上。想来Google在发表论文之初也没有料想到今天吧。
Transformer是一种Encoder-Decoder架构简单来说就是先把输入映射到Encoder这里大家可以把Encoder先想象成上面介绍的RNNDecoder也可以想象成RNN。这样左边负责编码右边则负责解码。这里面不同的是左边因为我们是知道数据的所以建模时可以同时利用当前Token的历史Token和未来前面的Token但解码时因为是一个Token一个Token输出来的所以只能根据历史Token以及Encoder的Token表示进行建模而不能利用未来的Token。
Transformer的这种架构从更普遍的角度来看其实是Seq2Seq架构大家别慌这简单来说就是序列到序列模型也就是输入是一个文本序列输出是另一个文本序列。翻译就是个很好的例子我们看下面这个来自Google的GNMTGoogle Neutral Machine Translation的经典图片 GNMT图示来自GNMT GitHubhttps://github.com/belvo/Google-Neural-Machine-Translation-GNMT-
Transformer的结构 Transformer来自Transformer论文
这个图更多的是体现了内部结构。左边是Encoder的一个Block一共N个右边是Decoder的一个Block一共N个简单起见我们可以假设N1那左边这个结构就是一个Encoder右边的就是Decoder。也可以把它们就想象成一个RNN这样有助于从宏观上把握。现在想象完了我们回到现实Transformer 用到的东西和RNN并没有关系通过上图也可以看出来它主要用了两个模块Multi-Head Attention和Feed Forward。对于前者我们不妨回顾一下GNMT的Attention它是Decoder中的Token和Encoder中每一个Token的重要性权重。Multi-Head Attention中用到一个东西叫SelfAttention和刚刚说的Attention非常类似只不过它是自己的每一个Token和自己的每一个Token的重要性权重。简单来说就是“一句话到底哪里重要”。这玩意儿可以说是非常精髓了无论是ChatGPT还是其他非文本的模型几乎都用到了它可以说是真正的一统江湖。Multi-Head是啥意思呢简单来说就是把刚刚的这种自己注意自己重复Multi次Multi个Head每个注意到的信息不一样这样就可以捕获到更多信息。比如我们前面提过的这句话「我喜欢在深夜的星空下伴随着月亮轻轻地想你」有的Head「我」注意到「喜欢」有的Head「我」注意到「深夜」有的Head「我」注意到「想你」……这样看起来是不是更加Make Sense。对于Feed Forward大家可以把它当做「记忆层」大模型的大部分知识都存在这里面Multi-Head Attention则根据不同权重的注意提取知识。
GPT
GPTGenerative Pre-trained Transformer没错了就是ChatGPT的那个GPT中文叫「生成式预训练Transformer」。生成式的意思就是类似语言模型那样Token by Token生成文本也就是上面提到的Decoder。预训练刚刚也提过了就是在大量语料上训练的语言模型。GPT模型从1到4一共经历了5个版本中间有个ChatGPT是3.5版
GPT的基本结构 GPT基本结构来自GPT论文
关于左边我们上面已经介绍过了用的就是Transformer的架构GPT中是Decoder具体里面的子模块可以不用关注。重点看看右边这里有一个值得注意的地方就是针对不同的任务输入都拼接成文本序列然后丢给Transformer Decoder再通过一个LinearSoftMax输出结果。Linear是一种最基础的网络结构SoftMax我们前面介绍过主要用来把输出映射到概率分布和为1。这种拼接输入的方法在当时那个大模型时代非常流行的紧跟其后的BERT也是类似的方式。这样统一的处理方法能够减少不同任务对模型的改动。反正不管什么任务都想方设法搞成一个序列就行。
RLHF
RLHFReinforcement Learning from Human Feedback从人类反馈中学习听起来怎么平平无奇。确实它的思想非常朴素简单但却有着不可忽视的效果。刚刚我们已经提到了GPT-3说未来要找新的方法这其中就包括从人类中学习、强化学习微调、多模态等。时至今日从InstructGPT到ChatGPT再到GPT-4它一步一步在实现这些新的方法。这里有一点需要提醒这些方向并不是一开始就清晰地摆在那里的中间还是有非常多的探索和阶段性成果既有他们自己的研究也有其他从业人员的研究。千万不要看到结果觉得平平无奇尤其是作为非行业人士特别是有些媒体这中间的艰难探索永远值得尊敬。另外有时候即便知道了方法要做出来还做出效果来这也是非常有难度的。而且本文由于科普性质只能介绍一丢丢内容虽然整体结构比较完整但总体还是比较浅显所以标题是「一点所以然」。总的来说要做出来很有难度不过我们只是用的话如前面所言有手就行。
好了言归正传RLHF被人熟知应该主要是源自OpenAI的InstructGPT这篇论文当然更大范围的熟知就是ChatGPT的发布。因为后者没有论文也没有开源所以我们也只能拿InstructGPT的管窥一窥ChatGPT的豹。当然如果按照ChatGPT官方页面的说法这个「管」可能还比较粗。如果用简单的语言来描述InstructGPT其实就是用强化学习的算法微调一个根据人类反馈改进的语言模型。重要的是它调出了效果——1.3B的InstructGPT堪比175B的GPT-3如下图所示 不同策略不同模型效果对比来自InstructGPT论文
LLM
我们正在经历并进入一个新的时代LLM作为一个外部「最强大脑」未来一定会非常容易被每个人获取至于用来做什么Depends Your Imagination。无论哪个行业相信这都是一个令人振奋的信号笔者本人就经常激动到夜不能寐。对于这种大变革我们能做什么呢我不知道未来太多可能但我相信最好的办法就是拥抱它。让我们HuggingLLM一起创造时代、创造未来。我们相信世界必将会因此而变得更美好。
国内LLM介绍
阿里巴巴 千问Qwen
官方GITHUB
QwenLM/Qwen: The official repo of Qwen (通义千问) chat pretrained large language model proposed by Alibaba Cloud. (github.com)
智谱 ChatGLM-6B
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型基于General Language Model (GLM)架构具有 62 亿参数。结合模型量化技术用户可以在消费级的显卡上进行本地部署INT4 量化级别下最低只需 6GB 显存。 ChatGLM-6B 使用了和 ChatGPT 相似的技术针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练辅以监督微调、反馈自助、人类反馈强化学习等技术的加持62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答更多信息请参考我们的博客。欢迎通过chatglm.cn体验更大规模的 ChatGLM 模型。
官方GITHUB
THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型 (github.com)
书生.浦语
InternLM 是在过万亿 token 数据上训练的多语千亿参数基座模型。通过多阶段的渐进式训练InternLM 基座模型具有较高的知识水平在中英文阅读理解、推理任务等需要较强思维能力的场景下性能优秀在多种面向人类设计的综合性考试中表现突出。在此基础上通过高质量的人类标注对话数据结合 RLHF 等技术使得 InternLM 可以在与人类对话时响应复杂指令并且表现出符合人类道德与价值观的回复
InternLM2 系列模型具有如下特性
有效支持20万字超长上下文模型在 20 万字长输入中几乎完美地实现长文“大海捞针”而且在 LongBench 和 L-Eval 等长文任务中的表现也达到开源模型中的领先水平。 可以通过 LMDeploy 尝试20万字超长上下文推理。综合性能全面提升各能力维度相比上一代模型全面进步在推理、数学、代码、对话体验、指令遵循和创意写作等方面的能力提升尤为显著综合性能达到同量级开源模型的领先水平在重点能力评测上 InternLM2-Chat-20B 能比肩甚至超越 ChatGPT GPT-3.5。代码解释器与数据分析在配合代码解释器code-interpreter的条件下InternLM2-Chat-20B 在 GSM8K 和 MATH 上可以达到和 GPT-4 相仿的水平。基于在数理和工具方面强大的基础能力InternLM2-Chat 提供了实用的数据分析能力。工具调用能力整体升级基于更强和更具有泛化性的指令理解、工具筛选与结果反思等能力新版模型可以更可靠地支持复杂智能体的搭建支持对工具进行有效的多轮调用完成较复杂的任务。可以查看更多样例。
官方GITHUB
InternLM/InternLM: Official release of InternLM2 7B and 20B base and chat models. 200K context support (github.com)
最后插播一则广告最近书生·浦语大模型实战营第二期正式启动两周时间带你玩转大模型微调部署和评测从零搭建多模态、RAG智能体应用。课程还有免费的A100算力使用 参考文档
hugging-llm/content/chapter1/ChatGPT基础科普——知其一点所以然.md at main · datawhalechina/hugging-llm (github.com)