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的对比在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 976 (Div. 2) (部分题解)

先做一个提前的小结,感觉这场每题有很特别的结论或者很难去guess的点,但就是能对,可能在证明上有点复杂吧。 A. Find Minimum Operations 思路:题意的话就是用来代替的最小操作步骤, 这里其实可以转换成求将改写成进…

DMR协议空中接口部分

文章目录 前言DMR 空中接口协议栈模型无线空中接口发送与接收参考模型DMR的TDMA结构帧结构突发结构数据与控制突发语音突发公共广播信道突发 数据信息传送时序语音信息传送时序帧同步 调制解调4-CPFSK正交调制4-CPFSK解调基带成型滤波 信道编码类型参考 前言 DMR 协议的标准号主…

专题二串联所有单词的子串

1.题目 题目分析: 有一个字符串s和字符串数组,如何字符串数组里面的元素可以组成一个字符串,然后要在字符串里面找到连续子串跟组成的字符串一样,返回起始地址。 2.算法原理 这道题可以把字符串数组的元素string看出char&#x…

uniapp或者vue 使用serialport

参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位:否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…

编程题-计算器(中等)

题目: 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。 解法一(栈&…

数据增强术:如何利用大模型(LLMs)来模拟不同的扰动类型以增强信息提取任务的鲁棒性

一、对抗样本库构建 1. 基于LLMs的领域针对性扰动设计对抗样本生成 替换实体、三元组和触发器(Replace Entity, Triple, and Trigger) 使用LLMs(如GPT-4)来替换句子中的实体、关系三元组或事件触发器,同时保持其类型不…

深入了解Linux —— git三板斧

版本控制器git 为了我们方便管理不同版本的文件,就有了版本控制器; 所谓的版本控制器,就是能够了解到一个文件的历史记录(修改记录);简单来说就是记录每一次的改动和版本迭代的一个管理系统,同…

Windows编程----进程的当前目录

进程的当前目录 Windows Api中有大量的函数在调用的时候,需要传递路径。比如创建文件,创建目录,删除目录,删除文件等等。拿创建文件的CreateFile函数做比喻,如果我们要创建的文件路径不是全路径,那么wind…

MyBatis-Plus分页控件使用及使用过程发现的一个坑

最近维护一个旧项目的时候,出现了一个BUG,经排查后发现是Mybatis-plus分页控件使用的时候需要注意的一个问题,故在本地使用MybatisPlus模拟出现了一下这个问题。 首先,先说一下MyBatis-Plus的使用: 1)引入…

服务端和客户端通信(TCP)

服务端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks;namespace TeachTcpServer {class Program{static void Main(string[] args){#region 知识点一 …

Windows下配置Flutter移动开发环境以及AndroidStudio安装和模拟机配置

截止 2025/3/9 ,版本更新到了 3.29.1 ,但是为了防止出现一些奇怪的bug,我安装的还是老一点的,3.19,其他版本的安装同理。AndroidStudio用的是 2024/3/1 版本。 — 1 环境变量(Windows) PUB_H…

C++11中的Condition_variable

C11中的condition_variable 在C11中,条件变量(std::condition_variable)是线程同步机制之一,用于在多线程环境中实现线程间的通信和协调。它允许一个或多个线程在某个条件尚未满足时等待,直到其他线程通知条件已经满足…

ROS2-话题学习

强烈推荐教程: 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

深度学习模型Transformer核心组件—前馈网络FFN

第一章:人工智能之不同数据类型及其特点梳理 第二章:自然语言处理(NLP):文本向量化从文字到数字的原理 第三章:循环神经网络RNN:理解 RNN的工作机制与应用场景(附代码) 第四章:循环神经网络RNN、LSTM以及GR…

Helm安装chart包到k8s报错“不能重复使用名称,名称已被使用”

一、报错提示如下 “Error: INSTALLATION FAILED: cannot re-use a name that is still in use”,意思是安装chart时提供的名称已存在,不能重复使用同一个名称。 登录后复制 rootiZ:/usr/local/src/my-helm-repo/charts# helm install mymemcached3 memcached -n te…

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路20250309

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路 一、容器化部署的范式转变 在 Docker 生态系统的演进中,容器编排正从“手动操作”走向“自动化管理”。根据 Docker 官方 2023 年开发者调查报告,78% 的开发者已采用 Docker Compo…

对开源VLA sota π0的微调——如何基于各种开源数据集、以及你自己的私有数据集微调π0(含我司的微调实践)

前言 25年2.4日,几个月前推出π0的公司Physical Intelligence (π)宣布正式开源π0及π0-FAST,如之前所介绍的,他们对用超过 10,000 小时的机器人数据进行了预训练 该GitHub代码仓库「 π0及π0-FAST的GitHub地址:github.com/Ph…

VBA使用fso对象合并指定路径的txt文件(含子目录)

图(1) 前几天我跟大家分享了在VBA中如何获取指定类型文件的路径的方法,其中最重要的一个思路就是在处理完当前目录的文件后,再调用程序自身来对子目录进行处理,以此来实现对子目录的无限循环,直至所有文件都处理完毕为止。按照此设…

nginx反向代理功能

如上图所示,当配置好nginx反向代理服务器的时候,客户端向nginx反向代理服务器发送请求,nginx反向代理服务器再向真实服务器转发请求。 nginx作为反向代理就是利用nginx高并发,速度快的特性,让nginx能够承受更多的链接…

deepseek在pycharm中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…