基础知识篇:大语言模型核心原理解析

1️⃣人工智能基础概念全景图 💡

🧠人工智能与机器学习

人工智能(AI)是计算机科学的一个分支,旨在模拟人类的智能来解决问题。而机器学习(ML)是AI的一个子集,它的魅力在于不需要显式编程。也就是说,我们不需要手动编写函数来告诉计算机如何执行任务,而是让计算机自行学习和迭代,从数据中识别模式,并做出预测和决策。

🌱机器学习(ML)

机器学习领域下有多个分支,包括监督学习无监督学习强化学习

  • 监督学习 👨‍🏫:学习带有标签的原始数据。目标是发现原始数据与标签之间的映射关系,从而预测新数据。
  • 无监督学习 🧭:处理没有标签的数据,让计算机自主发现数据中的模式。
  • 强化学习 🎮:让模型在环境中采取行动,并根据奖励或惩罚来调整策略,以找到最佳行动方案。
🌀深度学习 (DL)
🤔思考:深度学习属于监督学习、无监督学习还是强化学习嘞? 

深度学习是机器学习的一个方法,它使用神经网络来模拟人脑处理信息的方式。神经网络由许多计算和存储单元(神经元)组成,这些神经元通过连接来处理数据。深度学习模型的“深度”指的是其层次化的结构,通过多层提取和表示数据的特征。

重要的是,神经网络可以用于监督学习、无监督学习和强化学习,因此深度学习并不属于这三者中的任何一个子集。相反,它们都是深度学习的应用领域。

🗨️生成式AI与大语言模型(LLM)
🤔思考:生成式AI与大语言模型是啥关系?谁包含谁?还是互相有交集?🧐 
  • 生成式AI 🎨:能够生成新的数据,如图像、文本等。它不仅限于文本生成,还包括其他媒体形式。
  • 大语言模型 📚:处理大量文本数据,具备深度理解和生成文本的能力。但并非所有大语言模型都擅长文本生成,有些更侧重于文本理解和分析。

例如,BERT模型是一个典型的大语言模型,它擅长理解上下文,因此被广泛应用于搜索、情感分析和文本分类等任务。然而,BERT并不擅长生成连贯的长文本

2️⃣大语言模型与Transformer基础🗨️

📅 2022年11月30日,OpenAi发布了ChaGPT,这一产品迅速成为史上最快达到100万用户的线上产品之一。继下围棋的alphago后,它成为又一轮人工智能热潮的引爆者。如今,AI聊天助手如雨后春笋般出现在我们的视野里。

🌟 大语言模型(LLM, Large Language Model) 是用于执行自然语言相关任务的深度学习模型。简单来说,给模型输入一些文本内容,它就能返回相应的输出。这些任务可以是续写、分类、总结、改写、翻译等等。

🔑大语言模型的“大”体现在哪里?

  • 训练数据巨大📚:大语言模型首先需要通过大量文本进行无监督学习。以GPT3为例,它的训练数据来自广泛的互联网文本语料,如电子书、新闻文章、博文、论文、百科、社交媒体帖子等。这些文本数据没有人工标签,模型主要学习单词与上下文之间的关系,以更好地理解文本并生成准确预测。
  • 参数量巨大🔬:参数在模型中用于刻画从庞大训练数据集中学习到的规律,决定模型如何响应输入数据。随着参数增加,模型能力增强,甚至能创造出全新的内容。例如,GPT系列的参数从GPT1的1.17亿增长到GPT3的1750亿。

🔑为什么Transformer是关键?

在Transformer架构出现之前,语言模型主要使用循环神经网络(RNN)。但RNN存在顺序处理、无法并行计算和难以处理长序列的问题。

💨RNN的劣势

  • 📏**顺序处理:**无法并行计算。

  • 🎯**难以处理长序列的文本:**容易造成遗忘。

Transformer通过自注意力机制和位置编码解决了这些问题,实现了对所有输入词的同时关注和理解,以及长距离依赖性的捕获。

🎉 Transformer的优势

  • 📏位置编码:通过位置编码理解词之间的顺序关系,允许并行计算,提高训练效率。
  • 🎯自注意力机制:能够学习输入序列中所有词的相关性,赋予每个词不同的注意力权重,专注于真正重要的部分。
🤔思考:Transformer的下一代,是怎样的技术呢?和Transformer较之RNN的劣势,Transformer有哪些劣势呢?大家可以大胆思考!

3️⃣Transformer实现过程剖析🔍

大语言模型,本质上通过预测概率最高的下一个词来实现惊艳的文本生成。这背后的功臣就是强大的Transformer架构。那么,Transformer是如何做到的呢?让我们一起轻松愉快地走进它的内部世界!📖

🔍Transformer心组件之: 编码器(Encoder)工作流程

  1. 🔢 输入TOKEN化
    • 将输入的文本拆分成计算机能处理的TOKEN,每个TOKEN被转换为一串整数,作为其在词汇表中的索引。
  2. 🖼️ 嵌入层(Embedding Layer)
    • 将TOKEN化的整数序列转换为向量表示,这些向量(通常称为词嵌入)捕获词汇之间的语法和语义关系。
  3. 📍 位置编码(Positional Encoding)
    • 向嵌入向量中添加位置信息,以确保模型能够理解词在句子中的顺序。位置编码是与嵌入向量具有相同维度的向量,并通过特定的数学函数生成。
  4. 💡 自注意力机制(Self-Attention Mechanism)
    • 编码器中的核心部分,用于捕捉输入序列中的关键特征。通过计算每个词与其他所有词之间的相关性来确定注意力权重。
  5. 👓 多头自注意力(Multi-Head Self-Attention)
    • 将自注意力机制应用于多个不同的“头”或子空间。每个头关注输入数据的不同方面,从而增强模型的表达能力。
  6. 🧠 前馈神经网络(Feed Forward Neural Network)
    • 对多头自注意力的输出进行进一步的数值变换,这有助于模型捕捉更复杂的模式和关系。
  7. 🏗️ 堆叠编码器(Stacked Encoders)
    • 通过将多个编码器堆叠在一起,模型能够在不同层级上理解输入数据。每个编码器都处理前一个编码器的输出,从而逐步提炼和抽象化信息。
🤔古人云“横看成岭侧成峰”,正是因为多头自注意力与堆叠编码器的作用,让模型可以多角度地全面捕捉信息各种特征,从而构建了对数据全貌的深度理解! 

🗣️ Transformer心组件之:解码器(Decoder)工作流程

  1. 🔔 接收特殊起始符号
    • 解码器接收一个表示输出序列开头的特殊符号作为初始输入。
  2. 🖼️ 嵌入层和位置编码
    • 与编码器类似,解码器也使用嵌入层将输入TOKEN转换为向量表示,并添加位置编码。
  3. 🎭 带掩码的自注意力机制(Masked Self-Attention Mechanism)
    • 解码器中的自注意力机制被修改为只关注当前位置之前的词,这是通过掩码实现的,确保模型在生成下一个词时只考虑已经生成的词。
  4. 🤝 编码器-解码器注意力(Encoder-Decoder Attention)
    • 解码器中的另一个注意力层用于捕捉编码器的输出和解码器当前状态之间的关系。这允许模型将输入序列的信息融合到输出序列的生成过程中。
  5. 🧠 前馈神经网络和堆叠解码器
    • 与编码器类似,解码器也使用前馈神经网络对注意力机制的输出进行进一步处理。通过堆叠多个解码器,模型能够更深入地理解输入与输出之间的关系,并生成更复杂的输出序列。
  6. 🎯 线性层和Softmax层
    • 解码器的最后阶段是将输出向量转换为词汇表的概率分布。线性层将输出向量的维度转换为词汇表的大小,而Softmax层则将这些数值转换为概率分布。
  7. 🎁 选择概率最高的TOKEN作为输出
    • 在大多数情况下,模型会选择概率最高的TOKEN作为下一个输出。这个过程会重复进行,直到生成一个表示输出序列结束的特殊TOKEN为止。
🤔思考:看上去,编码器和解码器结构有很大的相似啊,那能不能只保留一样呢?是否可以仅编码器或者仅解码器?答案是肯定的! 

🔧Transformer的变种与应用

  • 仅编码器模型(自编码器模型):适用于理解语言的任务,如BERT用于遮蔽词预测和情感分析。
  • 仅解码器模型(自回归模型):擅长文本生成,如GPT系列通过预测下一个词实现文本生成。
  • 编码器-解码器模型(序列到序列模型):适用于将一个序列转换成另一个序列的任务,如T5和BART用于翻译和总结等。
🤔思考:从这里也能看出,你是否已经看到生成式AI与大语言模型的关系哦!

  大语言模型不都是生成式AI,因为有的大模型,如BERT模型,仅有编码器,不做生成任务!

4️⃣ 大语言模型诞生过程剖析🤖

想要得到一个功能强大的大语言模型?跟着下面的步骤,一起走一遍!📖

📚 第一步:海量文本的无监督学习 得到基座大模型🎉

🔍 原料:首先,我们需要海量的文本数据,这些数据可以来自互联网上的各种语料库,包括书籍、新闻、科学论文、社交媒体帖子等等。这些文本将作为模型的“原料”,供模型学习。

🎯 目标:通过无监督学习,让模型能够基于上下文预测下一个token。这里用到了Transformer技术,它可以根据上下文预测被掩码的token。

💡 技术过程:无监督学习让模型在没有标签的数据上进行训练,通过比较正确答案和模型的预测结果,计算交叉熵损失,并使用优化算法更新模型的权重。随着见过的文本越来越多,模型生成的能力也会越来越好。

🔧 第二步:有监督微调➡️得到可以对话的大模型🎉

🔍 原料:虽然基座模型已经能够根据上下文生成文本,但它并不擅长对话。为了解决这个问题,我们需要使用人类撰写的高质量对话数据对基座模型进行有监督微调。

🎯 目标:通过微调,让模型更加适应对话任务,具备更好的对话能力。

💡 过程:微调的成本相对较低,因为需要的训练数据规模更小,训练时长更短。在这一阶段,模型从人类高质量的对话中学习如何回答问题,这个过程被称为监督微调(supervised fine tuning)。

🤔思考:为啥是“微调”而不叫“中调”或者“大调”?

  因为相比于基座模型所用到的巨量数据,这个过程里的大部分有监督学习,其所用到的数据,都像是冰山之一角,九牛之一毛!

💡点击查看提示

🏆 第三步:奖励模型的训练➡️得到可以评价回答的模型🎉

🔍 原料:为了让模型的回答更加优质且符合人类道德与价值观,我们需要让模型一次性给出多个回答结果,并由人工对这些回答结果进行打分和排序。

🎯 目标:基于这些以评分作为标签的训练数据,训练出一个能对回答进行评分预测的奖励模型。

💡 过程:奖励模型能够对模型的回答进行评分,从而引导模型生成更符合人类期望的回答。这个过程也常被称为对齐(alignment)。

🎈 第四步:强化学习训练➡️得到更符合人类价值观的优秀模型🎉

🔍 原料:使用第二步得到的模型和第三步的奖励模型进行强化学习训练。

🎯 目标:让模型的回答不断被奖励模型评价,并通过优化策略获取更高的评分,从而改进自身的结构。

💡 过程:强化学习训练利用奖励模型的评分作为反馈信号,引导模型生成更高质量的回答。同时,C端用户的点赞或倒赞也为模型的升级提供了宝贵的评价数据。

🤔思考:能不能让普通用户也为模型打分?

  看看文心一言的输出结果里,右下就有一个点赞或者倒赞!有更多用户对结果的反馈,大模型能力就会持续增强哦!模型能力增强➡️用户变多➡️反馈变多➡️模型能力增强➡️……这,就是数据飞轮的奇妙!
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Netty是一个高性能的、异步的、事件驱动的网络应用程序框架。它使用NIO(Java非阻塞IO)技术实现高效的网络通讯,因此在高并发、大数据量、网络负载大的场景下表现优异。《Netty原理解析与开发实战》一书详细地介绍了Netty框架的原理和使用方法。 该书主要分为两部分。第一部分介绍了Netty的基础知识,先是NIO的介绍,然后再分别介绍了Netty的核心组件、线程模型、数据编解码、Pipeline和ChannelHandler等知识点。第二部分则是Netty的实际开发实践,包括服务端和客户端的开发、消息的发送和接收、心跳检测、HTTP协议的实现等。 具体来说,本书的核心内容包括:第一、介绍了Netty的核心架构——Reactor模型、多线程模型、EventLoop机制;第二、详细讲解了Netty中IO线程、TaskQueue、BossGroup、WorkerGroup等核心组件的作用;第三、深入探讨了Netty中的传输协议——TCP协议的实现、消息的编解码等;第四、详细介绍了Pipeline的实现机制以及ChannelHandle的分类和使用;第五、丰富的实践案例为读者提供了丰富的实战经验,包括Netty在HTTP、UDP等协议中的应用、心跳检测、应用层协议使用等。 近年来,随着大数据、物联网、云计算等技术的发展,对高性能、高可靠性的网络通信需求越来越迫切。本书的出版,将Netty框架的应用知识和实践经验系统地呈现在读者面前,对需要进行网络开发的开发工程师具有重要的参考价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值