Datawhale AI 夏令营(2024第三期)AI+逻辑推理方向 模型微调学习笔记

如何基于开源大模型进行优化

1. Prompt工程

大模型可能知道问题相关,但是我们问的不清楚。所以需要根据我们的提问,构建出一个比较结构化的、大模型易于理解和分析的提问内容。
在下方的第二个资料里,我才知道有这么多Prompt的构建思路,难怪说是“工程”。

相关学习资料:

  • datawhalechina/llm-cookbook(教程)
  • Prompt Engineering Guide(内含多种Prompt策略)

2. RAG

大模型不知道问题相关。这种情况我们可以在问题上附加部分已知的领域知识。可以结合向量数据库或者知识图谱等优化。

3. 微调

大模型不知道问题相关。这种情况可以构建一定量的数据集,进一步训练、调整大模型的参数,使新的大模型更适合提问者的需求。

4. 不同需求场景下的比较

  1. 领域知识变更频繁。微调需要重复训练模型,而RAG不用修改已有大模型,调整较为灵活方便,更适合。
  2. 对定制能力要求高。微调对模型的优化效果较RAG好,定制性好,但也会损失一定的通用能力。
  3. 要求幻觉较少:RAG传入的专业辅助知识更能减少幻觉。
  4. 成本与可解释性。微调需要大量训练调整网络参数,成本较高,且网络参数的可解释型较差。RAG可以结合自身的知识库进行解释,且搭建工程框架的成本比训练模型低。
  5. 低延迟。RAG在模型推理的基础上还要进行一些文本向量化、知识库读写等,延迟较微调高。

baseline2学习

vllm

我理解是一个将本地模型暴露为网络服务的框架,但是通过一些优化提高了吞吐率和内存利用效率,适用于实时应用场景。而且他可以无缝集成hf的模型,使用起来确实很方便。

LoRA

模型微调,自然需要得到一个 Δ W \Delta W ΔW, 通过 W n e w = W o r i g i n + Δ W W_{new}=W_{origin}+\Delta W Wnew=Worigin+ΔW,更新模型参数,进而得到一个新模型。
这就意味着 Δ W \Delta W ΔW的矩阵大小与 W o r i g i n W_{origin} Worigin一致。众所周知大模型突出一个参数量大,那 Δ W \Delta W ΔW自然也是非常耗显存的。为了把训练的价格打下来,就出现了LoRA。
LoRA(Low-Rank Adaptation):对于一个预训练好的基座模型,保留其原有的权重矩阵W不变,仅微调训练更新部分,且这个更新权重矩阵被分解成A和B两个低秩矩阵。
它的策略就是把 Δ W \Delta W ΔW这个大矩阵分解为A、B两个小矩阵。在训练时,只训练这两个小矩阵,最后通过 W n e w = W o r i g i n + B A W_{new}=W_{origin}+BA Wnew=Worigin+BA更新模型参数。
我们假设 Δ W \Delta W ΔW是(1e5,1e5),A是(1e5,8), B是(8,1e5),那么前后的元素个数差为 1 e 10 − 1.6 ∗ 1 e 6 1e10-1.6*1e6 1e101.61e6,这是好几个数量级的差距了。

(这个图只是推荐算法里矩阵分解的演示,仅供参考)
在这里插入图片描述
下图为LoRA论文中的图,A矩阵初始化为高斯分布矩阵,B矩阵初始化为0矩阵。
在这里插入图片描述

多路召回

采用不同的策略、特征或者简单模型,分别召回一部分候选集,然后再把这些候选集混合在一起后供后续排序模型使用。
在baseline中其实就是将一个问题问同一个大模型三次,因为大模型是概率模型所以可能会有不同的答案。收集三次回复的结果,少数服从多数。
我感觉在一般的使用中,可以组合使用不同的prompt、不同的模型进行投票。此次比赛有显存限制估计不好用多个模型了。

其他优化思路(都只是思路,不确定效果是否更好)

  1. 全量微调
    lora训练的是分解的矩阵,难免有精度损失。如果有钱有时间,全量微调效果应该更好。
  2. 数据集
    使用更多的开源数据集训练。或者用更好的大模型构建出新数据集(或者获得更好的推理思路),用他们训练当前模型(模型蒸馏)。
  3. 模型量化
    将超出比赛要求限制的大模型,通过降低浮点型参数的精度等方式,降低他的显存消耗,使其正常完成比赛。
  4. 货比三家
    对于不同的模型、不同的Prompt,组合搭配,选评分最高的。

完全使用baseline02的分数

在这里插入图片描述

小白本人的pytorch学习

由于我没怎么用过pytorch,还学习了相关API

  • 构建网络
  • 构建网络
  • pytorch中的几个层
  • pytorch中的几个层
  • pytorch教程
  • 构建pytorch数据集

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

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

相关文章

1688中国站获得工厂档案信息 API

公共参数 名称类型必须描述keyString是免费申请调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…

谷粒商城实战笔记-110~114-全文检索-ElasticSearch-查询

文章目录 一,110-全文检索-ElasticSearch-进阶-两种查询方式二,111-全文检索-ElasticSearch-进阶-QueryDSL基本使用&match_all三,112-全文检索-ElasticSearch-进阶-match全文检索四,113-全文检索-ElasticSearch-进阶-match_ph…

STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真

stm32cubemx新建工程代码&#xff0c;并生成工程 设置gpio 设置SPI 其他的参考stm32默认设置 然后编辑驱动代码 ili9341.h #ifndef ILI9341_H #define ILI9341_H#include <stdbool.h> #include <stdint.h>#include "glcdfont.h" #include "stm32…

七大云安全威胁及其应对方法

关注公众号网络研究观获取更多内容。 对于任何依赖云来容纳快速增长的服务的企业来说&#xff0c;确保安全都是重中之重。然而&#xff0c;正如大多数云采用者很快意识到的那样&#xff0c;迁移到动态云环境需要新的和更新的安全措施&#xff0c;以确保数据和其他关键资产在整…

idea-springboot后端所有@注释含义汇总-持续更新!

&#xff08;1&#xff09;启动类 ①SpringBootApplication 出现这个代表这个就是整个程序的入口&#xff0c;是运行的开始位置 ②ComponentScan("com.example.dao.impl") 启动时自动扫描制定beans包 &#xff08;2&#xff09;mapper层&#xff08;Dao层&#xf…

反贿赂体系认证:企业诚信经营的护航者

在当今商业环境中&#xff0c;企业不仅要追求经济效益&#xff0c;更要坚守诚信经营的原则。反贿赂体系认证作为现代企业合规管理的重要手段&#xff0c;不仅提升了企业的道德形象&#xff0c;还为其市场竞争力注入了强劲动力。以下是反贿赂体系认证对企业的多方面益处。 首先&…

函数递归超详解!

目录 1.什么是递归调用&#xff1f; 直接调用 间接调用 2.什么是递归&#xff1f; 3.递归举例 3.1求n!的阶乘 3.1.1.非递归法 3.1.2.递归法 3.1.2.1分析和代码实现 3.2顺序打印一个整数的每一位 3.2.1分析和代码实现 4.递归与迭代 4.1举例&#xff1a;斐波那契数列 …

基于JSP的家用电器销售网站

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPJava 工具&#xff1a;ECLIPSE、MySQL数据库管理工具、Tomcat 系统展示 首页 个人中心 商品信…

数据建模标准-基于事实建模

前情提要 数据模型定义 DAMA数据治理体系中将数据模型定义为一种文档形式&#xff0c;数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介&#xff1b; 作用 记录数据需求和建模过程中产生的数据定义&…

工业大数据通过哪些方式实现价值?详解实施工业大数据的难点!

在数字化转型的浪潮中&#xff0c;工业大数据正成为推动制造业革新的核心动力。它不仅重塑了生产流程&#xff0c;还为企业带来了前所未有的洞察力和竞争优势。本文将深入探讨工业大数据的类别、价值实现方式&#xff0c;以及在实施过程中存在的挑战和解决方案。 更多详细内容&…

RabbitMQ 入门篇

接上一篇《RabbitMQ-安装篇&#xff08;阿里云主机&#xff09;-CSDN博客》 安装好RabbitMQ后&#xff0c;我们将开始RabbitMQ的使用&#xff0c;根据官网文档RabbitMQ Tutorials | RabbitMQ&#xff0c;我们一步一步的学习。 1. "Hello World!" 这里先说明几个概…

PostgreSQL 15

一、安装前的准备 1、版本信息 操作系统CentOS 7.9.2009PostgreSQL 版本PostgreSQL 15-15.7 2、下载安装包 RPM Chart - PostgreSQL YUM Repositoryhttps://yum.postgresql.org/rpmchart/进入官网&#xff0c;找到相应版本 点击框选内容 依次进入下载页面&#xff0c;下载相…

如何在OpenHarmony 4.1R上设置系统默认不锁屏(修改系统锁屏应用)

本文介绍如何修改系统锁屏应用&#xff0c;从而实现在OpenHarmony 4.1R上设置系统默认不锁屏。 环境配置 1.DevEco Studio 4.1 Release&#xff0c;下载链接地址 API10 Full SDK,安装教程 步骤 1.首先下载4.1r分支的系统锁屏应用applications_screenlock 2.修改系统锁屏应…

【C++:jsoncpp库的配置CMAKE的安装】

CMAKE的安装&#xff1a; 安装路径&#xff1a;Download CMake安装就是无脑Next跳出以下窗口以上步骤完了之后&#xff0c;页面如此&#xff0c;然后点击generate jsoncpp库的配置&#xff1a; 打开生成的源文件所在路径&#xff0c;找到名为jsoncpp.sln的文件&#xff0c;以vs…

电脑出现连接不上网络,远程计算机不接受连接的解决方法

第一步&#xff1a;打开Cmd,输入inetcpl.cpl inetcpl.cpl 第二步&#xff1a;点击“连接” 第三步&#xff1a;点击局域网设置 第四步&#xff1a;三个都不选&#xff0c;点击确定 之后网络就可以正常访问了&#xff01;

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--实现修改商品的名字与价格功能(万字爆更)增查改删,三端交互样样齐全

技术支持&#xff1a;JAVA、JSP 服务器&#xff1a;TOMCAT 7.0.86 编程软件&#xff1a;IntelliJ IDEA 2021.1.3 x64 前文几个功能的实现的博客 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网&#xff08;1&#xff09;-项目搭建&#xff08;前期准备工作&am…

5.5软件工程-系统测试

系统测试 意义和目的原则测试过程测试策略测试方法练习题 测试用例设计黑盒测试等价类划分边界值分析错误推测因果图 白盒测试逻辑覆盖循环覆盖基本路径测试法 练习题 调试软件度量练习题 考点少&#xff0c;知识点多 意义和目的 系统测试的意义&#xff1a;系统测试是为了发现…

科普文:微服务之分布式链路追踪SkyWalking单点服务搭建

1. 概述 1.1 概念 SkyWalking 是什么&#xff1f; SkyWalking 极简入门 | Apache SkyWalking FROM Apache SkyWalking 分布式系统的应用程序性能监视工具&#xff0c;专为微服务、云原生架构和基于容器&#xff08;Docker、K8s、Mesos&#xff09;架构而设计。 提供分布式追…

19.计算两点间的距离

Problem-2001 Problem Description 输入两点坐标&#xff08;X1,Y1&#xff09;,&#xff08;X2,Y2&#xff09;,计算并输出两点间的距离。 Input 输入数据有多组&#xff0c;每组占一行&#xff0c;由4个实数组成&#xff0c;分别表示x1,y1,x2,y2,数据之间用空格隔开。 Outpu…

Python实战——轻松实现动态网页爬虫(附详细源码)

大家好&#xff0c;我是东眠的鱼&#xff0c;专注原创&#xff0c;致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货&#xff0c;希望人人都能学到新知识。<文末附带精品籽料哦&#xff0c;也可以和博主一起学Python呀&#xff01;> 项目背景 有同学自学爬虫时…