动手学习RAG:大模型重排模型 bge-reranker-v2-gemma微调

news2024/11/13 9:58:00
  • 动手学习RAG: 向量模型
  • 动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习
  • 动手学习RAG:rerank模型微调实践 bge-reranker-v2-m3
  • 动手学习RAG:迟交互模型colbert微调实践 bge-m3
  • 动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct
  • 动手学习RAG:大模型重排模型 bge-reranker-v2-gemma微调

在这里插入图片描述

1. 环境准备

pip install transformers
pip install open-retrievals
  • 注意安装时是pip install open-retrievals,但调用时只需要import retrievals
  • 欢迎关注最新的更新 https://github.com/LongxingTan/open-retrievals

2. 使用大模型做重排

from retrievals import LLMRanker

model_name = 'BAAI/bge-reranker-v2-gemma'
model = LLMRanker.from_pretrained(
            model_name,
            causal_lm=True,
            use_fp16=True,
        )

score = model.compute_score(['query', 'passage'])
print(score)

scores = model.compute_score([['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']])
print(scores)

请添加图片描述

3. 微调

MODEL_NAME='BAAI/bge-reranker-v2-gemma'
TRAIN_DATA="/root/kag101/src/open-retrievals/t2/t2_ranking.jsonl"
OUTPUT_DIR="/root/kag101/src/open-retrievals/t2/ft_out"

torchrun --nproc_per_node 1 \
    -m retrievals.pipelines.rerank \
    --output_dir ${OUTPUT_DIR} \
    --overwrite_output_dir \
    --model_name_or_path $MODEL_NAME \
    --model_type llm \
    --causal_lm True \
    --use_lora True \
    --data_name_or_path $TRAIN_DATA \
    --task_prompt "Given a query A and a passage B, determine whether the passage contains an answer to the query by providing a prediction of either 'Yes' or 'No'." \
    --query_instruction "A: " \
    --document_instruction 'B: ' \
    --positive_key positive \
    --negative_key negative \
    --learning_rate 2e-4 \
    --num_train_epochs 3 \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 16 \
    --dataloader_drop_last True \
    --max_len 256 \
    --train_group_size 4 \
    --logging_steps 10 \
    --save_steps 20000 \
    --save_total_limit 1 \
    --bf16

请添加图片描述

4. 评测

在C-MTEB中进行评测。微调前保留10%的数据集作为测试集验证

微调前的指标:
请添加图片描述

微调后的指标:

请添加图片描述

{
  "dataset_revision": null,
  "mteb_dataset_name": "CustomReranking",
  "mteb_version": "1.1.1",
  "test": {
    "evaluation_time": 77.35,
    "map": 0.7057362287508586,
    "mrr": 0.8166538440773136
  }
}

微调后map从0.637上升至0.706,mrr从0.734上升至0.816

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

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

相关文章

光伏业务管理系统:全流程管理成重点

一、光伏业务管理的挑战 光伏业务管理涉及项目规划、设计选型、施工建设、运营维护、数据分析等多个环节,每一个环节都直接关系到项目的经济性、安全性和可持续性。传统的管理方式往往存在信息不对称、流程不透明、响应速度慢等问题,难以适应光伏产业快…

现在市场上有哪些大模型?什么样的大模型适合国内企业?

从23年ChatGPT爆火以来,国内各大厂商也争先入局,国内大模型发展也经历了“百模大战”,截止最新已经发展到了180多个大模型,在大模型发展上,国内正在奋起直追,国内外第一梯队大模型在中文领域的通用能力差距…

基于ssm的本科生毕业设计选题系统的设计与实现

需要项目源码请联系我,目前有各类成品 毕设 javaweb ssh ssm springboot等等项目框架,源码丰富。 专业团队,咨询就送开题报告,活动限时免费,有需要的朋友可以来留言咨询。 一、摘要 随着高校信息化管理系统平台的广泛…

行业大模型落地提速释放新动力

中国科学院地球化学研究所与阿里云联合发布国际首个月球科学多模态专业大模型,京东云带来了代表性的大模型数字人的展示与互动,济南市选择大模型产业链打造“大模型创新工厂”,以奇安信、360等为代表的安全厂商带来了“AI安全”的行业大模型产…

Android中SharedPreferences 的基本使用

1.SharedPreferences简介 SharedPreferences 是 Android 平台为应用开发者提供的一个轻量级的存储辅助类&#xff0c;用来保存应用的一些常用配置&#xff0c;它提供了 putString()、putString(Set<String>)、putInt()、putLong()、putFloat()、putBoolean() 六种数据类…

线程池的状态

线程池的状态分为&#xff1a;Running(运行状态)、Shutdown(关闭状态)、Stop(停止状态)、Tidying(整理状态)、Terminated(终止状态)。 Running(运行状态)&#xff1a;线程池被创建时&#xff0c;就是Running状态&#xff0c;线程池中的任务数位0。 该状态会接受新任务&#xf…

CO82-工單號碼段配置

可以通過CO82查看工單號碼段。 配置工單號碼段&#xff1a; 1、首先配置一個號碼段。 2、將工單類型分配給號碼段。 此時工單類型ZP01號碼段即為41W000000-41W999999 3、可以點擊概覽按鈕&#xff0c;查看概覽。 可以看到不同號碼段下的所有工單類型。 *然後在前台就可以對Z…

软件测试知识详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、黑盒测试、白盒测试、灰盒测试 1.1 黑盒测试 黑盒测试又叫功能测试、数据驱动测试 或 基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。…

华为OD机试 - 打印机队列 - 优先队列(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

阻止冒泡事件

每一div都有一个切换事件 div里包括【复制】事件&#xff0c; 点击【复制按钮】&#xff0c;会触发【切换事件】 因为冒泡 在 Vue 3 中&#xff0c;阻止 click 事件冒泡可以使用以下常规方法&#xff1a; 1 事件修饰符&#xff1a;Vue 3 中提供了多种事件修饰符&#xff0c…

Java入门:09.Java中三大特性(封装、继承、多态)02

2 继承 需要两个类才能实现继承的效果。 比如&#xff1a;类A 继承 类B A类 称为 子类 &#xff0c; 衍生类&#xff0c;派生类 B类 称为 父类&#xff0c;基类&#xff0c;超类 继承的作用 子类自动的拥有父类的所有属性和方法 &#xff08;父类编写&#xff0c;子类不需要…

实验2 Linux文件系统常用操作实践

实验2 Linux文件系统常用操作实践 一、实验介绍 本节实验通过实战Linux文件操作模块的基本操作,需要先掌握linux文件系统的原理以及理解linux文件操作的原理,最后通过实操完成linux文件操作的命令,其中包括改变目录、创建目录及文件、删除文件、复制文件、文件移动和改名、查…

BPG的定义和工作原理是什么?

在当今互联网中&#xff0c;网络通信的关键角色之一是BGP&#xff08;边界网关协议&#xff09;。BGP是一种路由矢量协议&#xff0c;负责在自治系统之间交换路由信息&#xff0c;并帮助数据包找到通过网络的理想链路。本文将介绍BGP、BGP4和BGP4&#xff0c;以及它们在网络中的…

记录生产环境,通过域名访问的图片展示不全,通过ip+端口的方式访问图片是完整的

原因&#xff1a;部署nginx的服务器硬盘满了 排查发现nginx日志文件占用了大量硬盘 解决方案&#xff1a; 删除该文件&#xff0c;重启nginx服务&#xff0c;问题解决。

郑重申明《数据资产管理核心技术与应用》一书在拼多多上被盗版售卖,恳请大家支持正版和作者的著作权权益

《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书&#xff0c;作者为张永清等著&#xff0c;近期我本人在拼多多上很多不同的店铺中都买到了这本书的盗版版本&#xff0c;购书的原因是想从市场上购买一批本书送给忠实的读者和身边的朋友&#xff0c;但是发现买到…

pdf图片怎么提取出来?这6个pdf图片提取工具全搞定,值得推荐!

在我们的日常办公和学习中&#xff0c;pdf文件成为了信息传递的重要载体。然而&#xff0c;有时我们在pdf文档中发现一些精彩的图片&#xff0c;想将其提取出来供个人使用或分享给他人。无论是为了更灵活的处理&#xff0c;还是为了发送特定的图像&#xff0c;提取pdf中的图片都…

使用streaming-json-py插件处理JSON数据流:详细指南

目录 一、streaming-json-py简介 二、安装与配置 三、基本使用 示例1:处理不完整的JSON对象 示例2:处理不完整的JSON数组 四、高级用法 实时数据流分析 日志处理 五、性能优化与错误处理 六、总结与展望 在数据驱动的现代社会,实时处理数据流已成为许多应用和服务…

中国大气湿度指数数据集(2003-2020)

该数据集收录了2003-2020年中国大气湿度指数数据集&#xff0c;其中主要包括常用的5个大气湿度指数&#xff1a;真是水汽压&#xff08;AVP&#xff09;、水汽压亏缺&#xff08;VPD&#xff09;、露点温度&#xff08;DPT&#xff09;、混合比&#xff08;MR&#xff09;以及比…

HTML入门笔记

概述 HTML&#xff08;超文本标记语言—HyperText Markup Language&#xff09;是构成 Web 世界的基础&#xff0c;是一种用来告知浏览器如何组织页面的标记语言。 超文本 Hypertext&#xff1a;指连接单个或多个网站间的网页链接&#xff0c;通过这些链接可以访问互联网中的…

【算法题】322.零钱兑换-力扣(LeetCode)

【算法题】322.零钱兑换-力扣(LeetCode) 1.题目 下方是力扣官方题目的地址 322.零钱兑换 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任…