阿里云大模型课程

认识大模型

因为国外的AI相较于国内的AI逐渐性价比降低,所以我尝试看看国内的大模型。当我打开阿里云,正好看到了首页的学生优惠的大模型课程。根据我的经验,这种课程都会赠送一些资源。我觉得既然要用,还是系统性地学习下吧,毕竟我也有打算自己创作模型。

人工智能按照技术实现可以分成三类人工智能(Artificial Intelligence, AI)机器学习(Machine Learning, ML)深度学习。机器学习中可以分成监督学习、无监督学习、强化学习。监督学习和无监督学习都需要明确地告诉机器数据对象的类别。强化学习是一种利用奖励机制学习到如何更准确地判断的方式。

深度学习是机器学习的一个分支。主要是用神经网络模型(由多个隐藏层组成)。其灵感来源于神经生物学。它通过对大量数据的学习,自动提取出数据的高层次特征和模式,从而使先图像识别、语音识别、自然语言处理等任务。按架构的不同,神经网络可以分为:卷积神经网络(CNNs)、循环神经网络(RNNs)、Transformer 网络等等。

大模型的训练整体上分为三个阶段预训练监督微调(SFT)以及对其偏好(如RLHF)

预训练阶段,大模型灰掌握语言的统计规律、事实性知识以及上下文关联能力。但它本质上只是学会了“预测下一个词”。例如如果你问它:“埃菲尔铁塔在哪个国家?”,它就可能回答:“东方明珠塔在哪个国家?”。还没学“什么该答”。

监督微调阶段,它会学习大量人类精心构造的“指令-回答”样本,能够根据指令给出针对性回答。但它可能会输出偏见、虚假信息、不安全言论等,因为它只学会了“怎么答”,还没学会“什么该答”。

对其偏好阶段,它会针对同一个问题生成多个不同的答案,由人类评估者根据有用性、安全性、礼貌性、事实准确性等标准进行比较和选择。模型通过学习这些“人类更喜欢哪个回答”的信号,逐渐调整自己的输出方式,使得回答不仅正确,而且更符合人类的价值观和交流习惯。实现对其的方式有很多,例如:基于人类反馈的强化学习(RLHE, Reinforcement Learning from Human Feedback) 和DPO(Direct Preference Optimization,直接根据人类偏好数据优化模型本身)。

用户的文本就是“提示词”。大模型处理提示词的工作流程可以分为两部分,第一部分是分词化和词表映射,第二部分为生成文本。

分词化(Tokenization)是自然语言处理(NLP)中的重要概念。它是将段落和句子分割成更小的分词(Token)的过程。举个例子,"I want to study ACA."。为了让机器理解这个句子,对字符串执行分词化,将其分解为独立的单元。使用分词化,我们会得到这样的结果:['I', 'want', 'to, 'study', 'ACA', '.'。将一个句子分解成更小的、独立的部分可以帮助计算机理解句子的各个部分,以及它们在上下文中的作用,这对于进行大量上下文的分析尤其重要。分词化有不同的粒度分类:

      词粒度(Word-Level Tokenization)分词化,适用于大多数西方语言,如英语。
      字符粒度(Character-Level)是分词化是中文最直接的分词方法,它是以单个汉字为单位进行分词化。
      子词粒度(Subword-Level)分词化,它将单词分解成更小的单位比如词根、词缀等。这种办法对于处理新词特别有效。因为即使是新词,它的组成部分(子词)很可能已经存在于表中。

每一个token都会通过预先设置好的词表,映射为一个token id,这是token 的“身份证”。一句话最终被表示为一个元素为token id的列表,供计算机进行下一步处理。

大模型的工作概括来说是根据给定的文本预测下一个token。对我们来说,看似像在对大模型提问,但实际上是给了大模型一串提示文本,让它可以对后续的文本进行推理。

大模型的推理不是一步到位的,当大模型进行推理时,它会基于现有的token,根据概率最大原则预测出下一个最有可能的token,然后将该预测的token,然后将该预测的token加入到输入序列中,并将更新后的输入序列继续输入大模型预测下一个token,这个过程叫作自回归。直到输出特殊的token(如<EOS>,end of sentence,专门用来控制推理何时结束)或输出长度达到阈值。

大模型使用场景

提示词(Prompt)是用户发送给模型的问题、指令或请求。对于大语言模型来说,提示词就是用户输入给大语言模型的文本信息。

常见的使用场景有文本生成、创作,影视剧脚本创作,广告生成,代码生成,润色,翻译,分析等等

用好大模型

使用API