一、引言(DataWhale大模型理论基础)

引言

一、什么是语言模型

  • 语言模型(LM:language model)

  • 定义:一种对令牌序列(token)的概率分布

  • 说明:

    • 假设我们有一个令牌集的词汇表 V 。语言模型p为每个令牌序列 x1, …,xL ∈ V 分配一个概率(介于0和1之间的数字):
      p ( x 1 , . . . , x L ) p(x_1,...,x_L ) p(x1,...,xL)

    • 概率的大小

  • example:

    • 我们有一个词汇表为{ate, ball, cheese, mouse, the},语言模型可能会分配以下概率:
      p ( t h e , m o u s e , a t e , t h e , c h e e s e ) = 0.02 p ( t h e , c h e e s e a t e , t h e , m o u s e ) = 0.01 p ( m o u s e , t h e , t h e , c h e e s e , a t e ) = 0.0001 p(the, mouse, ate, the, cheese)=0.02\\ p(the, cheese ate, the, mouse)=0.01\\ p(mouse, the, the, cheese, ate)=0.0001 p(the,mouse,ate,the,cheese)=0.02p(the,cheeseate,the,mouse)=0.01p(mouse,the,the,cheese,ate)=0.0001
  • 注意:由于各种知识(如语法知识、语义知识等)的存在,要尽量使序列出现的概率是建立在各种知识的基础上(简而言之,就是不合常理的概率低,符合常理的概率高)

  • 也可以做生成任务(根据语言模型生成一个序列)

1. 自回归语言模型(Autoregressive language models)

  • 理论储备:

    • 联合分布 p ( x 1 : L ) p(x_{1:L}) p(x1:L)的常见写法是使用概率的链式法则:
      p ( x 1 : L ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 1 , x 2 ) ⋯ p ( x L ∣ x 1 : L − 1 ) = ∏ i = 1 L p ( x i ∣ x 1 : i − 1 ) . p(x_{1:L}) = p(x_1) p(x_2 \mid x_1) p(x_3 \mid x_1, x_2) \cdots p(x_L \mid x_{1:L-1}) = \prod_{i=1}^L p(x_i \mid x_{1:i-1}). p(x1:L)=p(x1)p(x2x1)p(x3x1,x2)p(xLx1:L1)=i=1Lp(xix1:i1).

    • p ( x i ∣ x 1 : i − 1 ) p(x_{i}∣x_{1:i−1}) p(xix1:i1)是指给定前面记号 x 1 : i − 1 x_{1:i−1} x1:i1后下一个记号 x i x_i xi的条件概率分布

    • example:

p ( t h e , m o u s e , a t e , t h e , c h e e s e ) = p ( t h e ) p ( m o u s e ∣ t h e ) p ( a t e ∣ t h e , m o u s e ) p ( t h e ∣ t h e , m o u s e , a t e ) p ( c h e e s e ∣ t h e , m o u s e , a t e , t h e ) . \begin{align*} p({the}, {mouse}, {ate}, {the}, {cheese}) = \, & p({the}) \\ & p({mouse} \mid {the}) \\ & p({ate} \mid {the}, {mouse}) \\ & p({the} \mid {the}, {mouse}, {ate}) \\ & p({cheese} \mid {the}, {mouse}, {ate}, {the}). \end{align*} p(the,mouse,ate,the,cheese)=p(the)p(mousethe)p(atethe,mouse)p(thethe,mouse,ate)p(cheesethe,mouse,ate,the).

  • 自回归语言模型

    • 特点:可以利用例如前馈神经网络等方法有效计算出每个条件概率分布 p ( x i ∣ x 1 : i − 1 ) p(x_{i}∣x_{1:i−1}) p(xix1:i1)

    • 生成序列 x 1 : L x_{1:L} x1:L的过程:

      • 一次生成一个令牌(token),该令牌基于之前生成的令牌进行计算获得
        for  i = 1 , … , L : x i ∼ p ( x i ∣ x 1 : i − 1 ) 1 / T , \begin{aligned} \text { for } i & =1, \ldots, L: \\ x_i & \sim p\left(x_i \mid x_{1: i-1}\right)^{1 / T}, \end{aligned}  for ixi=1,,L:p(xix1:i1)1/T,

        • T >=0 是一个控制我们希望从语言模型中得到多少随机性的温度参数

          • T=0:确定性地在每个位置 i 选择最可能的令牌

          • T=1:从纯语言模型“正常(normally)”采样

          • T=∞:从整个词汇表上的均匀分布中采样

          • 然而,如果我们仅将概率提高到 1 / T 1/T 1/T 的次方,概率分布可能不会加和到 1。我们可以通过重新标准化分布来解决这个问题。我们将标准化版本 p T ( x i ∣ x 1 : i − 1 ) ∝ p ( x i ∣ x 1 : i − 1 ) 1 / T p_{T}(x_{i}∣x_{1:i−1})∝p(x_{i}∣x_{1:i−1})^{1/T} pT(xix1:i1)p(xix1:i1)1/T 称为退火条件概率分布。

          • 具体来说,这个温度参数会应用于每一步的条件概率分布 p ( x i ∣ x 1 : i − 1 ) p(x_{i}∣x_{1:i−1}) p(xix1:i1) ,将其幂变为 1 / T 1/T 1/T 。这意味着当 T T T 值较高时,我们会获得更平均的概率分布,生成的结果更具随机性;反之,当 T T T 值较低时,模型会更倾向于生成概率较高的令牌。

            • example:
              p ( cheese  ) = 0.4 , p ( mouse  ) = 0.6 p T = 0.5 ( cheese  ) = 0.31 , p T = 0.5 (mouse  ) = 0.69 p T = 0.2 (cheese  ) = 0.12 , p T = 0.2 (mouse)  = 0.88 p T = 0 (cheese  ) = 0 , p T = 0 (mouse  ) = 1 \begin{array}{cl} p(\text { cheese })=0.4, & p(\text { mouse })=0.6 \\ p_{T=0.5}(\text { cheese })=0.31, & \left.p_{T=0.5} \text { (mouse }\right)=0.69 \\ \left.p_{T=0.2} \text { (cheese }\right)=0.12, & p_{T=0.2} \text { (mouse) }=0.88 \\ \left.p_{T=0} \text { (cheese }\right)=0, & \left.p_{T=0} \text { (mouse }\right)=1 \end{array} p( cheese )=0.4,pT=0.5( cheese )=0.31,pT=0.2 (cheese )=0.12,pT=0 (cheese )=0,p( mouse )=0.6pT=0.5 (mouse )=0.69pT=0.2 (mouse) =0.88pT=0 (mouse )=1
  • 也有非自回归的条件生成,更一般地,我们可以通过指定某个前缀序列 x 1 : i x_{1:i} x1:i (称为提示)并采样其余的 x i + 1 : L x_{i+1:L} xi+1:L (称为补全)来进行条件生成

二、大模型相关历史回顾

1 信息理论

  • 熵:度量概率分布的概念,由克劳德·香农在1948年《通信的数学理论》中提出
    H ( p ) = ∑ x p ( x ) log ⁡ 1 p ( x ) . H(p) = \sum_x p(x) \log \frac{1}{p(x)}. H(p)=xp(x)logp(x)1.

    • 实际上是一个衡量将样本 x ∼ p x∼p xp 编码(即压缩)成比特串所需要的预期比特数的度量(数量)
    • 熵的值越小,表明序列的结构性越强,编码的长度就越短。

2 英语的熵

  • 将英语表示为一系列的字母

  • 交叉熵
    H ( p , q ) = − ∑ x p ( x ) log ⁡ q ( x ) H(p, q)=-\sum_x p(x) \log q(x) H(p,q)=xp(x)logq(x)
    测量需要多少比特来编码样本x~p,使用由模型q给出的压缩方案

  • 印象里数学之美中也有相关的描述,之后记得去看看

3 用于下游应用的N-gram模型

  • 语言模型首先被应用于生成文本的实践应用

    • 1970年代的语音识别(输入:声音信号,输出:文本)
    • 1990年代的机器翻译(输入:源语言的文本,输出:目标语言的文本)
  • 噪声信道模型:用于实现上述实践应用

    • 语音识别:

      • 我们假设有一些从某个分布p中抽取的文本

      • 这些文本被转换为语音(声音信号)

      • 然后给定语音,我们希望恢复(最有可能的)文本。(贝叶斯定理实现)

        p ( text ∣ speech ) ∝ p ( text ) ⏟ language model p ( speech ∣ text ) ⏟ acoustic model . p(\text{text} \mid \text{speech}) \propto \underbrace{p(\text{text})}_\text{language model} \underbrace{p(\text{speech} \mid \text{text})}_\text{acoustic model}. p(textspeech)language model p(text)acoustic model p(speechtext).

  • n-gram模型:关于 x i x_{i} xi的预测只依赖于最后的 n − 1 n-1 n1 个字符 x i − ( n − 1 ) : i − 1 x_{i−(n−1):i−1} xi(n1):i1 ,而不是整个历史(即只根据要预测字符前面的n-1个字符进行预测,抛弃掉更前面的字符携带的信息):
    p ( x i ∣ x 1 : i − 1 ) = p ( x i ∣ x i − ( n − 1 ) : i − 1 ) . p(x_i \mid x_{1:i-1}) = p(x_i \mid x_{i-(n-1):i-1}). p(xix1:i1)=p(xixi(n1):i1).

    • example:

      • trigram(n=3)模型:
        p ( c h e e s e ∣ t h e , m o u s e , a t e , t h e ) = p ( c h e e s e ∣ a t e , t h e ) p(cheese|the,mouse,ate,the) = p(cheese|ate,the) p(cheesethe,mouse,ate,the)=p(cheeseate,the)
    • 优点:

      • 拟合到数据上非常便宜且可扩展
    • 缺点:

      • 如果n太小,那么模型将无法捕获长距离的依赖关系,会丢失很多信息
      • 如果n太大,统计上将无法得到概率的好估计(即使在“大”语料库中,几乎所有合理的长序列都出现0次)

4 神经语言模型

  • 在神经网络引入语言模型之后提出

  • 上下文的长度仍然受到n的限制,但现在可以接受更大的n

  • 2003年以来,神经语言建模的两个关键发展阶段

    • Recurrent Neural Networks(RNNs),包括长短期记忆(LSTMs)
    • Transformers是一个较新的架构(于2017年为机器翻译开发),再次返回固定上下文长度n,但更易于训练(并利用了GPU的并行性)
计算统计
N-gram模型高效低效
神经语言模型低效高效

三、这门课的意义

  • 大型语言模型中的“大型”主要是指神经语言模型的规模

1. 能力

  • 迄2018年为止,语言模型主要作为较大系统的组成部分使用(例如语音识别或机器翻译),但如今语言模型越来越具备作为独立系统的能力。
  • 语言模型具备条件生成的能力:在给定提示的情况下生成完成的文本
    • 填空的方式进行问答
    • 解决词汇类比的问题
    • 通过提示生成文章的标题
    • 上下文学习
    • 等等

2. 现实世界中的语言模型

  • 研究领域:
    • 几乎所有涉及情感分类、问答、摘要和机器翻译等各种任务
  • 工业界:
    • 大都封闭,无法确认
    • 但仍有部分公开的模型正在被使用
    • 语言模型(或任何技术)在工业界的使用是复杂的
      • 可能会针对特定场景进行微调,并被精简为更具计算效率的较小模型以进行大规模服务(大模型–精简–>小模型–提供服务–>大模型
      • 多个系统协同给出答案
  • 风险:
    • 可靠性
      • 答案不正确
      • 更严重的是:答案似乎是正确的
    • 社会偏见
      • 它们在不同人群之间存在性能差异,并且其预测可能会强化刻板印象。(性别偏见等)
      • 基于带有偏见的数据进行训练的模型将继承数据的特性
      • 思考:
        • 如何更谨慎地选择数据以减少偏见?
        • 在训练过程中可以采取哪些干预措施?
        • 退一步说,我们如何定义或衡量社会偏见?
    • 有害性
      • 用于训练的数据可能包含冒犯性的信息
      • 基于这些数据的聊天机器人会有风险
    • 虚假信息
      • 能够在降低风险的情况下极大的降低不当行为的成本(虚假新闻的制造)
    • 安全性
      • 现在大模型是基于公共互联网的抓取进行训练的,这意味着任何人都可以建立一个可能进入训练数据的网站。从而会被攻击者攻击(加入不良信息的数据集)
      • 如何解决毒性文档的问题(如何筛选)
    • 法律考虑
      • 用于训练的数据是否通过了授权
    • 成本和环境影响
      • 使用过程中可能非常昂贵
        • 训练通常要数千个GPU的并行化(一次性成本)
        • 对训练模型进行推理以进行预测也会带来成本(持续性的成本)
        • 供应大模型所需的能源,以及由此产生的碳排放和最终的环境影响(社会成本,这个成本是否过于高估(基于个人直觉),需要查询资料
    • 获取
      • 越来越多的模型倾向于封闭,只能通过API访问获得。
      • 似乎慢慢向专有化的方向发展

四、课程架构

  • 大型语言模型的行为
    • 方式:通过黑匣子API访问模型
    • 目标:理解这些被称为大型语言模型的对象的行为
  • 大型语言模型的数据背后
    • 方式:深入研究用于训练大型语言模型的数据
    • 目标:解决诸如安全性、隐私和法律考虑等问题
  • 构建大型语言模型
    • 方式及目的:研究如何构建大型语言模型(模型架构、训练算法等)
  • 超越大型语言模型
    • 目的:跳出语言模型的视角,以更高的视角去看待语言模型及其相关问题

参考资料:DataWhale大模型理论基础

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云服务器怎么买?两种购买方式更省钱

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

深度系统QT 环境搭建

1.QT安装 不折腾最新版直接去商店搜索QT安装。 2.修改su密码,安装需要权限 打开一个终端,然后输入下面的命令:按照提示输入密码按回车就行。 sudo passwd 回车后会出现让你输入现在这个账户的密码: 3.编译环境安装。 安…

JUC-线程中断机制和LockSupport

线程中断机制 概念 java提供了一种用于停止线程的协商机制-中断。称为中断标识协商机制。 常用API public void interrupt() 仅仅让线程的中断标志位设置为true。不进行其他操作。public boolean isInterrupted() 获取中断标志位的状态。public static boolean interrupted…

案例分享:销售管理者和员工的一对一面谈

销售面谈对于销售过程至关重要,在快速变化的市场环境中,一对一的面谈成为销售管理者与销售员工之间沟通的重要桥梁。 通过这种沟通方式,双方可以共同探讨销售工作的各个方面,包括业绩回顾、目标设定、技能提升、市场变化应对以及…

CSS实现超出部分的省略

1、为什么要省略 在日常开发过程中我们难免会遇到后端返回给我们的的数据太长的情况,此时我们通常采取的是...的省略方式,其中的CSS大致如下,既可以实现对应的省略显示,但有些时候我们有需要用户可以查看具体的完整信息&#xff0…

利用Python的csv(CSV)库读取csv文件并取出某个单元格的内容的学习过程

csv库在python3中是自带的。 利用它可以方便的进行csv文件内容的读取。 注意:要以gbk的编码形式打开,因为WPS的csv文件默认是gbk编码,而不是utf-8。 01-读取表头并在打印每一行内容时一并输出表头 表头为第1行,现在要读取并打…

基础面试题整理4

1.mybatis的#{}和${}区别 #{}是预编译处理,${}是字符串替换#{}可以防止SQL注入,提高安全性 2.mybatis隔离级别 读未提交 READ UNCOMMITED:读到了其他事务中未提交的数据,造成"脏读","不可重复读","幻读&…

1月12日1月15日代码随想录路经总和从中序和后序遍历构造二叉树

112.路经总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 …

局部替换 阿里 ReplaceAnything

目录 阿里的ReplaceAnything,没开源, 可以人体替换、服装替换、物体替换以及背景替换等等。

matlab|基于VMD-SSA-LSTM的多维时序光伏功率预测

目录 1 主要内容 变分模态分解(VMD) 麻雀搜索算法SSA 长短期记忆网络LSTM 2 部分代码 3 程序结果 4 下载链接 1 主要内容 之前分享了预测的程序基于LSTM的负荷和可再生能源出力预测【核心部分复现】,该程序预测效果比较好,并且结构比较清晰&#…

【打卡】牛客网:BM91 反转字符串

自己写的: 直接使用reverse()函数。 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 反转字符串* param str string字符串 * return string字符串*/string solve(string str) {/…

buuctf-Misc 题目解答分解118-120

118.[INSHack2017]sanity 打开压缩包就是一个md 文件 typora 打开 发现flag INSA{Youre_sane_Good_for_you} 119.粽子的来历 解压压缩包 ,得到文件夹如下 用010 editor 打开 我是A.doc 这个有些可以 都改成FF 保存 然后再次打开 docx 文件就发现了屈原的诗 其他b…

uniapp + node.js 开发问卷调查小程序

前后端效果图 后端&#xff1a;nodejs 12.8 ; mongoDB 4.0 前端&#xff1a;uniapp 开发工具&#xff1a;HBuilderX 3.99 前端首页代码 index.vue <!-- 源码下载地址 https://pan.baidu.com/s/1AVB71AjEX06wpc4wbcV_tQ?pwdl9zp --><template><view class&q…

新年送长辈礼物怎么选?华为畅享70 Pro 给长辈的新年贴心机

随着春节的脚步越来越近&#xff0c;我们也在为如何表达对长辈的关爱而烦恼。新年送礼&#xff0c;不仅要表达心意&#xff0c;更要考虑到长辈的需求和习惯。今天&#xff0c;我为大家带来一款特别适合长辈的礼物——华为畅享70 Pro。 首先&#xff0c;最直观的感受就是“大”。…

【学习笔记】[AGC043F] Jewelry Box

点击看题意 Part 1 前置知识&#xff1a; L P LP LP对偶费用流。 考虑这样一个费用流&#xff1a;每条边 u v uv uv的流量设为 f u v f_{uv} fuv​&#xff0c;容量设为 c u v c_{uv} cuv​&#xff0c;费用设为 w u v w_{uv} wuv​。 b u b_u bu​设为流出-流入。要求 m i …

工具一本通--Jmeter

工具安装 安装程序包 运行Jmeter.bat 语言设置成中文 1 临时修改&#xff1a;Options > Choose Language > Chinese(Simplified) 2 永久修改&#xff1a;./bin/jmeter.properties #Preferred GUI language. Comment out to use the JVM default locale’s language. #la…

Docker部署Traefik结合内网穿透远程访问Dashboard界面

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…

手机视频转换gif怎么操作?一个小妙招教你手机在线制gif

在现代社会gif动图已经是一种非常流行的图片格式了。可以通过视频转换gif的方式将自己的想法和创意制作成gif动图与好友进行分享斗图。那么&#xff0c;当我们想要在手机上完成视频转换成gif动图是应该怎么办呢&#xff1f;通过使用手机端的gif动图制作&#xff08;https://www…

uniapp 权限申请插件(权限使用说明) Ba-Permissions

简介&#xff08;下载地址&#xff09; Ba-Permissions 是一款权限申请插件&#xff0c;支持权限使用说明弹窗&#xff0c;满足市场审核需求。支持自定义权限申请&#xff0c;也支持快速申请定位、相机、媒体、文件、悬浮窗等常见权限。 支持权限使用说明弹窗&#xff0c;满足…

16 命令行模式

命令行模式 将行为的执行与与行为的调用通过命令分离&#xff0c;行为的的调用者不需要知道具体是哪个类执行的&#xff0c;他们之间通过命令连接。 demo的目录结构 命令的执行者&#xff08;接口&#xff09; package behavioralpattern.commandpattern.actuator;import ja…