LLM大模型-李宏毅

本博客是对b站上,李宏毅大模型课程的简单记录。
大模型入门到进阶,一套全解决!

第1讲:生成式AI是什么?

  • ChatGPT【Chat Generative Pre-trained Transformer】每一步都是文字接龙,其实就是分类问题
    文字接龙指的就是:人类的问题作为模型输入,模型预测下一个字是什么。下一个字有可能有100种,每个字有不同的概率,通过掷骰子来决定下一个字是啥
  • 按先后顺序:预训练、微调、增强式学习(RLHF)
    • 预训练:即自监督学习,模型通过大量的无标签模型自己学习

    • 真正的训练【微调】:监督学习,使用带标签的数据告诉他哪些答案是正确的。

      在多重语言上做预训练后,只要教某一个语言的某一个任务,模型会自动学习其他语言的同样任务。

    • 增强式学习(Reinforcement Learning from Human Feedback,RLHF)
      两个步骤:①使用人类的反馈来训练一个“奖励模型”,使其能够量化输出的质量
      ②通过强化学习优化模型的行为,利用“奖励模型”的反馈来调整生成策略

第2讲:今日的生成式人工智能厉害在哪

  • Prompt engineering:prompt是给模型的指令【而上下文学习,是给模型信息】
    在这里插入图片描述

  • 训练自己的模型
    在这里插入图片描述

第3.4.5讲:你可以训练你自己

  • 上下文学习:指的是模型根据输入的上下文(即前文和当前文本信息)来生成更准确和相关的回答。上下文学习未进行任何训练
  • RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索文本生成的模型架构

第6讲:大型语言模型修炼史 — 第一阶段- 自我学习,累积实力

  • 这个过程就是预训练,自监督学习。这个过程只是学了很多资料,但不知道哪些是正确的
  • GPT的各个版本在这里插入图片描述

第7讲:大型语言模型修炼史 — 第二阶段_ 名师指点,发挥潜力

  • 这个过程就是微调(fine-tuning),需要人工标注。
    预训练的参数作为初始参数,通过人工标注数据,对初始参数进行调整,调整后的参数和初始参数差的不太多,所以叫微调。但这个过程需要对所有的参数进行调整,负担大

  • 因此有了“adaptor”的概念,它是一种结构上相对简单的神经网络模块,通常插入在预训练模型的某些层之间,在微调时只用更新这些模块即可,预训练的参数不用调整。

  • 微调一开始是走训练专才的路线,现在是训练全才

  • LLaMA把预训练的模型开源了,世界直接疯狂

第8讲:大型语言模型修炼史 — 第三阶段- 参与实战,打磨技巧

  • 这个阶段就是带有人工反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)
  • 人觉得好的答案,就提高出现的概率,不好的答案,就降低概率
  • 微调是只问过程【只管文字接龙对不对】,不问结果;
    RLHF是只问结果,不问过程
  • RLHF有两个步骤:
    ①使用人类的反馈来训练一个“奖励模型”,使其能够量化输出的质量
    ②通过强化学习优化模型的行为,利用“奖励模型”的反馈来调整生成策略
  • RLAIF(带有 AI 反馈的强化学习),使用AI模型作为“奖励模型”
  • RLHF和RLAIF的难点在于,如何评价模型回答的答案是好还是坏

第9讲:以大型语言模型打造的AI Agent

  • AI Agent是一种能够“感知环境”、“进行决策”,“做出行动”,“完成特定目标”的智能体
  • 现有常见的AI agent
    在这里插入图片描述

第10讲:今日的语言模型是如何做文字接龙的 — 浅谈Transformer

  • Transformer的大致流程
    在这里插入图片描述
    • 步骤一:把文字变成Token
      在这里插入图片描述

    • 步骤二:理解每个Token,把Token转成embedding。在transformer里有一个token和embedding对应的列表。那这个列表如何获得呢?是需要学习的。下面这个图介绍的是在语意层面,如何将token转成embedding
      在这里插入图片描述
      除了语意层面,还有位置嵌入,把语意嵌入和位置嵌入进行相加即可。注意,“位置嵌入”的对应关系,一开始是由人设定,现在也可以用学习的方法得到
      在这里插入图片描述

    • 步骤三:考虑上下文。“苹果电脑”中的苹果和“来吃苹果”中的苹果完全不一样,因此需要通过注意力机制,考虑上下文。通过attention后,会输出下一个token的概率
      在这里插入图片描述

      在transformer中考虑的是多头注意力,因为token之间的相关性不止一种
      在这里插入图片描述

第11讲:大型语言模型在「想」什么呢? — 浅谈大型语言模型的可解释性"

  • 对模型背后的神经网络进行分析
  • 直接让模型提供解释,问他为什么输出这个答案

第12讲:浅谈评估大型语言模型能力的各种方式

  • 评估大模型的性能,问他有标准答案的问题,例如选择题
    在这里插入图片描述
    但是连选择题都有问题
    在这里插入图片描述
    翻译和摘要是语义层面做比较:
    在这里插入图片描述
    大模型价格方面的差异:
    在这里插入图片描述

第13.14讲:浅谈大型语言模型相关的安全性议题

在这里插入图片描述
我认为这里不重要

第15讲:为什么语言模型用文字接龙,图片生成不用像素接龙呢?

  • 文字由token构成,以Llama2为例,它的词汇表中共有32k个token,用接龙的方式预测下一个token
    在这里插入图片描述

  • 图片由像素组成
    在这里插入图片描述

  • 声音由取样点构成
    在这里插入图片描述

  • 生成式人工智能的本质:文→文(token);文→图(pixel);文→声(采样点)
    在这里插入图片描述

    • 关于文→文的策略:就是文字接龙,给定一个输入,产生第一个token,然后第一个token和原本的输入合并作为新的输入,生成下一个token。接龙的方式在学术上被称为 Autoregressive Generation(自回归策略

    • )。在这里插入图片描述

      文字也可以用NAR的方式,首先让模型预测有多少个token,然后,不同的位置分别预测下一个token在这里插入图片描述
      也可以给他设置一个固定长度的token,每个位置去预测token是什么,把end之后的都丢掉
      在这里插入图片描述

    • 文→图:图片如果也用Autoregressive Generation,就会存在一个问题,生成一个1024*1024的图片,约有100万个像素点,需要逐步做100万次接龙,时间太长。因此采用Non-Autoregressive Generation的方式,NAR不依赖于先前生成,模型的目标是并行生成所有像素,但生成的质量可能会受到影响,因为每个像素的生成是独立的,位置一和位置二生成时可能是完全相反的东西,例如生成狗的图片,位置一是想生成的白狗,位置二想生成黑狗,就会造成生成的图片一团糟。 在这里插入图片描述
      如何解决这个问题呢?

      • 方法一:让所有位置都脑补一样的内容,告诉模型具体的描述
        在这里插入图片描述
        具体来说就是图像生成模型,在生成图像时,是需要给定一个向量的,这个向量用于模型脑补
        在这里插入图片描述
      • 方法二:Autoregressive Generation(自回归策略)与NAR结合。先用AR策略生成一个精简版本,这个精简版本可以是人类看不懂的东西【有点像语义昂
        在这里插入图片描述
        如何产生精简版本呢?就是通过一个encoder将图片压缩,decoder能恢复即可。16×16像素能压缩到1×1,色彩从成千上万可以压缩到1024
        在这里插入图片描述
        具体来说就是让一个模型充当encoder,这个过程是AR策略;另一个模型充当decoder,这个过程是NAR策略
        在这里插入图片描述
      • 方法三:改进NAR质量的方法,就是多次使用NAR。把生成步骤拆解成很多个阶段,每个阶段都是NAR,逐阶段生成。
        在这里插入图片描述
        在这里插入图片描述
        方法二中的AR+NAR,AR策略生成时耗费时间很多,因此可以把encoder替换成多个阶段的NAR。现阶段常见的图像生成模型,都是这种方式
        在这里插入图片描述

第16讲:可以加速所有语言模型生成速度的神奇外挂 — Speculative decoding

  • 设计一个预言家预测下一个token是什么。预言家可以用NAR策略
    在这里插入图片描述

第17讲:有关影像的生成式AI (上) — AI 如何产生图片和影片

  • 影像有关的生成式AI
    输入视频或者图片,生成文本等
    另一种是,输入一段文本,生成一段视频或者图片【本视频专注于此】
    在这里插入图片描述

    • 以文字作为condition:Sora
      在这里插入图片描述
    • 图片生成图片
      在这里插入图片描述
    • talking head:给一张照片,给一段话,让这个人张嘴说话
      在这里插入图片描述
  • 原理:图片由像素组成,视频由一系列图片组成,FPS就是每秒有多少帧图。玩游戏得60FPS

    图像生成说白了就是生成patch,然后生成的patch经过decoder得到图片。用的不是接龙的方式,而是NAR,一次性生成所有的patch。生成过程中虽然是NAR,并行生成,但是transformer会计算每个patch之间的关联性,但这种方式也无法保证生成的准确性
    在这里插入图片描述
    文字生视频,就是一下生成所有的patch,但有个严重的问题就是,transformer中,需要计算每个patch之间的相关性,那对于视频而言,计算量就太大了
    在这里插入图片描述
    因此,提出一种策略,对于某帧,只计算该帧内部每个patch的相似性【Spatial attention 2d】;帧之间,计算同一位置,不同帧之间的相似性【temporal attention 1d】
    在这里插入图片描述
    如何评价生成效果?把文字和生成的图片扔给clip,让clip评价好坏
    在这里插入图片描述

第18讲:有关影像的生成式AI (下) — 快速导读经典影像生成方法

  • 如何处理模型的脑补问题?让他生成一直奔跑的狗,可能会生成哈士奇,也可能会生成柴犬。解决这个问题需要给模型更多的信息,需要训练一个“资讯抽取” 模型
    在这里插入图片描述

在这里插入图片描述

那么如何训练这个“资讯抽取”模型呢?

让“资讯抽取模型”和“图片生成模型”一块训练,“资讯抽取模型”抽取出来什么不重要,人可能也看不懂。但“资讯抽取模型”和“图片生成模型”有一个共同目标,输入一张图片,经过“资讯抽取模型”和“图片生成模型”后输出的图片和输入的图片越接近越好,这样就能一下子训练两个模型了。这个架构就叫做auto-encoder
在这里插入图片描述

  • 上述介绍的是训练的时候,那在图片生成的时候具体如何操作呢?生成的时候只有decoder,decoder的输入包括两部分,一个描述,以及需要脑补的资讯。而脑补的资讯需要随机生成
    在这里插入图片描述

  • 上面介绍的这个流程其实就是VAE。一个encoder抽取出来信息,然后decoder将信息进行恢复
    在这里插入图片描述

  • flow-based method。和VAE很像,但是这篇论文认为,decoder和encoder干的事情是相反的,因此encoder可以当成decoder的反函数。抽取出来的信息叫做noise,虽然叫这个名字,但是其中包含很多信息。
    在这里插入图片描述

  • diffusion,该模型denoise model(也就是decoder)的输入也是noise和一个描述。通过decoder得到去噪后的图片,然后把这个图片和描述再输入到decoder中,以此类推,直到生成清晰的图片。

    现阶段的研究主要集中在,如何用较少次数,恢复出清晰的图片。
    在这里插入图片描述
    那么问题来了,数据集中都是清晰的图片,如何得到这个带noise的图呢?其实就是逐步加噪声
    在这里插入图片描述
    现在Sora中用到的就是 diffusion transformer,左边的就是传统的transformer,用NAR策略,并行预测每个patch是多少;右边是 diffusion transformer,逐步预测每个patch是多少
    在这里插入图片描述

  • VAE、flow-based、diffusion的对比在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值