【科研积累】大模型的认知笔记

1 认识大模型

大模型是人工智能发展的一个里程碑,人工智能包括机器学习,机器学习包括监督学习、无监督学习和强化学习,深度学习神经网络也是机器学习的一个分支,生成式人工智能是深度学习的一个子集,ChatGPT和Stable Diffusion都是其中的一部分,大模型就可以说是生成式人工智能。

大模型即为Foundational Models,基础模型,是一类具有大量参数、能在极为广泛的数据上进行训练、并适用于多种任务的预训练深度学习模型。

大模型的训练分为三个阶段:

  1. 预训练(Pre-training):大量学习语料,但并未学习领会人类意图;
  2. 监督微调(SFT,Supervised Fine Tuning):学习领会人类意图,但可能并不符合人类偏好;
  3. 基于人类反馈的强化学习(RLHF,Reforcement Learning from Human Feedback):学习如何使得回答符合人类偏好。

大模型分为大预言模型(LLM)和多模态模型,多模态模型又可以分为CV模型、音视频模型等。

大模型的工作流程分为两步走,第一步是分词和词表映射,第二步是自回归生成文本。

认识了大模型的基础概念后,就可以开始使用,在使用过程中我们会有更多的需求,这就需要对大模型进行改进:

  1. 如果大模型可以解决我们的问题,但生成内容的质量有待提升,我们可以尝试改进提问方式(prompt、CoT、ToT等);
  2. 如果在我们业务场景中,大模型总是在编造一些内容,也就是出现幻觉,我们可以考虑将检索和大模型结合起来减少幻觉(RAG,Retrieve Augmented Generation);
  3. 如果我们需要大模型在内容生成上稳定地遵循特定风格或者格式,则可以考虑微调大模型。
2 提示词工程

直接提问,也成为零样本提示(Zero-Shot Prompting),提示需要简洁、具体且逻辑清晰,适用于目标明确、问题简单、答案确定且唯一的场景;

增加示例,也成为少样本提示(Few-Shot Prompting),让大模型按照我们的具体格式要求进行输出,或者提供进一步推理的参考;

分配角色,让大模型在特定角色视角下生成回答,从而得到不同风格的答案;

拆解复杂任务,让大语言模型分步来思考问题,成为思维链(Chain-of-Thought Prompting,CoT),不仅寻求答案,还要求模型解释其给出答案的步骤,思维链也分为没有示例的零样本和有示例的少样本;

使用提示词框架,可以得到更加专业、准确的回答。

3 大模型插件

大模型应用使用插件的决策流程和人类使用工具的流程是一样的。首先接收输入,判断是否需要使用工具及选择合适的工具,然后使用工具并获得返回结果进行后续推理生成。

4 RAG

RAG(Retrieval Augmented Generation),即为检索增强生成方法,包括三个步骤,建立索引、检索、生成,首先建立知识库索引,大模型检索知识库,根据提示词和检索到的资料生成答案。

建立索引:首先要清洗和提取原始数据,将 PDF、Docx等不同格式的文件解析为纯文本数据;然后将文本数据分割成更小的片段(chunk);最后将这些片段经过嵌入模型转换成向量数据(此过程叫做embedding),并将原始语料块和嵌入向量以键值对形式存储到向量数据库中,以便进行后续快速且频繁的搜索。这就是建立索引的过程。

检索生成:系统会获取到用户输入,随后计算出用户的问题与向量数据库中的文档块之间的相似度,选择相似度最高的K个文档块(K值可以自己设置)作为回答当前问题的知识。知识与问题会合并到提示词模板中提交给大模型,大模型给出回复。这就是检索生成的过程。

改进RAG,可以从下面这些思路进行:

  1. 提升索引准确率:优化原始信息的提取、优化chunk切分模式、滑动窗口检索、选择合适的词向量模型和排序模型;
  2. 让问题更好理解:通过多轮对话完善用户问题、让大模型转述用户问题再进行RAG问答、多路召回(大模型从不同角度进行问题改写并整合答案)、问题分解、假设答案;
  3. 改造检索渠道:优化向量相似度匹配算法、让大模型直接判断;
  4. 回答前反复思考:Self-RAG,让大模型对自己的回答进行相关性、是否有幻觉以及是否已解答的判决,通过反思优化答案;
  5. 从多种数据源中获取资料:传统RAG只是分析文本文档,还可以推广到结构化的数据;
Agent

大模型Agent是指基于大语言模型的,能使用工具与外部世界进行交互的计算机程序。

Agent可以进行合作,成为Multi-Agent,进行十分复杂的任务。

大模型微调

微调就是再预训练的基础上,使用特定领域的数据对模型进行进一步的训练,从而让模型更擅长处理你想要解决的问题,微调可以使得大模型适应特定领域风格,或者掌握特定系统接口,做到格式化输出。

微调相较于从头训练,能够提高效率和降低成本;

微调要求使用特定领域的高质量数据,同时需要配置合适的参数。

从调整参数量的大小这个角度,可以把微调分为全参微调与高效微调:

  • 全参微调(Full Fine Tuning):是指再预训练模型的基础上进行全量参数微调的模型优化方法,会对所有参数进行调整;
  • 高效微调(PEFT,Parameter-Efficient Fine-Tuning):只微调部分参数,却能达到与全量微调相似的效果;

LoRA(Low-Rank Adaptation)低秩适应,不对原模型做微调,而是通过学习原模型降维后得到的低秩矩阵来近似模型权重矩阵的参数更新,训练时只优化低秩矩阵参数,通过降维再升维的操作来大量压缩需要训练的参数。

LoRA在所有微调方式里面效果最好。

Adapter Tuning是在原有的模型架构上,在某些位置之间插入Adapter层,微调时只训练这些层,而原先参数不会参与训练,虽然效果不错,但是会增加推理成本。

Prefix Tuning是在给定文本数据的token前构造一段固定长度任务相关的虚拟token作为为前缀Prefix,训练时只更新这个虚拟token部分的参数,这些前缀向量可以视为对模型进行引导的指令,帮助模型理解即将处理的任务。

Prompt Tuning和上面的方法相似,是在输入浅入向量中加入prompt tokens向量,针对每种任务设定不同的提示词向量,使得模型可以很好地区分并适配不同任务,但是这两种方法由于引入了前缀序列,会占用处理下游任务的序列长度,消耗的token会更多。

 

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

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

相关文章

mac 中python 安装mysqlclient 出现 ld: library ‘ssl‘ not found错误

1. 出现报错 2. 获取openssl位置 brew info openssl 3. 配置环境变量(我的是在~/.bash.profile) export LDFLAGS"-L/opt/homebrew/Cellar/openssl3/3.4.0/lib" export CPPFLAGS"-I/opt/homebrew/Cellar/openssl3/…

自动驾驶系列—自动驾驶中的短距离感知:超声波雷达的核心技术与场景应用

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

体育活动赛事报名马拉松微信小程序开发

功能描述 体育活动赛事报名马拉松微信小程序,该项目是一个体育活动报名小程序,主要功能有活动报名、扫码签到、签到积分、排行奖励、积分兑换等功能。 用户端🔶登录:◻️1.微信授权登录 ◻️2.手机号码授权 🔶首页&am…

uniapp框架配置项pages.json

uniapp框架配置项pages.json pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。 globalStyle 全局配置 用于设置应用的状态栏、导航条、标题、窗口背景色等。下面配置项默认应用于每个页面。 注意…

Android关机流程知多少?

在 Android 中,关机流程涉及系统各个组件的协同工作,确保设备在断电之前能够安全地关闭所有活动并保存数据。以下是 Android 系统中关机流程的详细介绍: 1. 用户触发关机请求 关机流程由用户的操作触发,通常有以下几种方式&#…

Docker使用docker-compose一键部署nacos、Mysql、redis

下面是一个简单的例子,展示如何通过Docker Compose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和Docker Compose。 1,准备好mysql、redis、nacos镜像 sudo docker pull mysql:8 && sudo docker pull redis:7.2 &&…

移远通信亮相骁龙AI PC生态科技日,以领先的5G及Wi-Fi产品革新PC用户体验

PC作为人们学习、办公、娱乐的重要工具,已经深度融入我们的工作和生活。随着物联网技术的快速发展,以及人们对PC性能要求的逐步提高,AI PC成为了行业发展的重要趋势。 11月7-8日,骁龙AI PC生态科技日在深圳举办。作为高通骁龙的重…

SCUI Admin + Laravel 整合

基于 Vue3 和 Element Plus 和 Laravel 整合开发 项目地址:持续更新 LaravelVueProject: laravel vue3 scui

Docker的轻量级可视化工具Portainer

docker目录 1 Portainer官方链接2 是什么?3 下载安装4 跑通一次5 后记 1 Portainer官方链接 这里给出portainer的官方链接:https://www.portainer.io/ portainer安装的官方链接:https://docs.portainer.io/start/install-ce/server/docker/l…

Sql server 备份还原方法

备份 方法1,选择对应的数据库名-------》右键 任务---------》备份 默认备份类型 完整 文件后缀 .bak 方法2,选择对应的数据库名-------》右键 任务----------》生成脚本 选择要编写的数据库对象(表,视图,存储过程等) 选择对应的 服…

Android CarrierConfig 参数项和正则匹配逻辑

背景 在编写CarrierConfig的时候经常出现配置不生效的情况,比如运营商支持大范围的imsi,或者是测试人员写卡位数的问题等等,因此就需要模式匹配(包含但不限于正则表达式)。 基本概念: 模式匹配涉及定义一个“模式”&a…

可编辑PPT | 指挥中心系统建设与应用方案

本方案是一份全面的指挥中心系统建设与应用方案,涵盖了建设方案分析、指挥调度、远程通讯、会务管理等多个方面,旨在通过整合语音、视频监控、会议、指挥调度等多种技术,构建一个现代化、网络化、智慧化的城市指挥中心,以提高应对…

【CentOS】中的Firewalld:全面介绍与实战应用(下)

🐇明明跟你说过:个人主页 🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、iptables 时代 2、firewalld 时代 二、服务管…

人工智能在智能家居中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 人工智能在智能家居中的应用 人工智能在智能家居中的应用 人工智能在智能家居中的应用 引言 人工智能概述 定义与原理 发展历程 …

qt QWidgetAction详解

1、概述 QWidgetAction是Qt框架中的一个类,它继承自QAction类。QWidgetAction允许开发者将自定义的小部件(widget)插入到基于QAction的容器中,如工具栏或菜单项中。这使得QWidgetAction成为创建复杂用户界面和自定义菜单项的强大…

一文了解什么是腾讯云开发

一文了解什么是腾讯云开发 关于云开发的猜想腾讯云开发腾讯云开发的优势无服务跨平台轻松托管节约成本 快速上手云开发环境快速搭建管理后台 云开发体验 关于云开发的猜想 说到云开发,作为开发者的大家是否大概就有了想法。比如说过去的开发工作都是在自己本地电脑…

2.操作系统常问面试题1

2.1 Linux 中查看进程运行状态的指令、查看内存使用情况的指令、tar解压文件的参数是什么 1、查看进程运行状态的指令: ps aux 列出所有进程的详细信息。 ps aux | grep PID ,查看具体某PID进程状态。 在 Linux 中,可以使用以下指令来查看进…

LED和QLED的区别

文章目录 1. 基础背光技术2. 量子点技术的引入3. 色彩表现4. 亮度和对比度5. 能效6. 寿命7. 价格总结 LED和 QLED都是基于液晶显示(LCD)技术的电视类型,但它们在显示技术、色彩表现和亮度方面有一些关键区别。以下是两者的详细区别&#xff…

多路转接之poll

多路转接之poll 一、关于poll认识poll基于poll实现的服务器的原理 二、基于poll实现的服务器main.cpppollServer.hppsock.hppLog.hpppublic.hpp 一、关于poll 认识poll #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout);struct pollfd {int …

# filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝, 失败,无法连接服务器”解决方案

filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝&#xff0c; 失败&#xff0c;无法连接服务器”解决方案 一、问题描述&#xff1a; 当我们用filezilla客户端 连接 虚拟机ubuntu系统时&#xff0c;报错“尝试连接 ECONNREFUSED - 连接被服务…