大模型学习笔记07——大模型之Adaptation

2024-01-21 23:12

本文主要是介绍大模型学习笔记07——大模型之Adaptation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大模型学习笔记07——大模型之Adaptation

  • 使用语言模型在学习了上下文后,仅通过给出的提示就能够执行一些任务
  • 并不是所有的下游任务都可以通过提示方法完成,如:
    • 自然语言推理(NLI)
    • 问答(QA)
    • 网络表格转文本
    • 解析电子健康记录(EHR)
  • 下游任务与语言模型的训练数据之间存在的问题
    • 可能在格式和主题上有所不同
    • 需要实时数据或信息
  • 语言模型需要使用特定任务的数据或领域知识来针对下游任务进行适配

1、为什么需要Adaptation

  • 语言模型是在大量知识文本上训练出来的通用知识模型,没有单独对某特定任务进行优化。被设计为能够捕捉到语言的通用特性和结构,以便可以用于许多不同的下游任务。这种方法的优点是灵活性和广泛适用性,相同的模型可以用于各种各样的的应用。
  • 因为通用模型可能在特定任务上不如专门为该任务训练的模型表现出色,因此为了在不同的应用场景中实现最佳性能,需要对基座模型进行适配
  • 由于各类下游任务与语言模型的预训练方式不同,可能存在一些问题
    1. 格式不同
      • 自然语言推理:涉及两个句子的比较以产生单一的二进制输出。这与语言模型通常用于生成下一个标记或填充MASK标记的任务截然不同
      • BERT训练与MASK标记: BERT训练过程中使用了MASK标记,而许多下游任务可能并不使用这些标记。这种不同可能导致在针对具体任务时需要对模型进行显著的调整。
    2. 主题转变
      • 特定领域的需求:如医学
      • 广泛主题的灵活性:新的或非常独特的领域
    3. 时间转变
      • 新知识的需求
      • 非公开信息的需求

2、通用的adaptation配置

  1. 预训练语言模型:被训练来理解和生成语言,不特别针对任何特定任务
  2. 下游任务数据集:具有特定任务的样本输入与目标输出
  3. 适配参数:找到一组参数,使得预训练的语言模型适合特定的下游任务
  4. 任务损失函数:衡量模型子啊下游任务上的表现
  5. 优化问题:通过损失函数最小化寻找适合的适配参数

3、当前主流的几种Adaptation方法

  1. Probing(探针)策略:具体来说,对于一个在训练在主任务上的大型神经网络,Probe是一个插入在其中间层的浅层神经网络,通常是一个分类器层2。Probe有助于探查不同层捕获的信息。使用辅助任务对Probe进行训练和验证,以发现是否捕获了此类辅助信息
  2. Fine-tuning:微调,通过特定任务数据对基座模型参数进行部分调整,以达到对特定任务上更好的表现。其中包括全量微调与轻量微调,以下有几种轻量微调的方法
    • 提示调整(prompt tuning):通过对输入的提示词进行调整,在没有修改模型参数的情况下,完成对模型输出的影响,已达到调整模型的目的
    • 前缀调整(prefix tuning):前缀调整通过在注意力机制的键和值部分添加可学习的权重,为模型提供了一种强大的微调手段。这种方法允许模型更好地捕捉任务特定的模式,并与提示调整等其他技术相辅相成,提供了一种灵活和强大的任务特定优化手段。
    • 适配器调整(Adapter tuning):适配器调整是通过在模型的隐藏层之间插入可训练的“适配器”模块来微调模型的一种方法。这些适配器模块允许模型在不改变原始预训练参数的情况下进行微调,从而降低了存储和计算的需求。

学习内容地址:添加链接描述

这篇关于大模型学习笔记07——大模型之Adaptation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631121

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应