当前位置: 首页 > news >正文

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

  • 动手学习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 LLMRankermodel_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.lryc.cn/news/441108.html

相关文章:

  • 蓝桥杯2024省C
  • C++:内部类,匿名对象,操作符new与delete
  • 【数据结构】排序算法---计数排序
  • mysql时间日期函数、获取当前日期和时间、日期和时间格式化、提取日期部分、日期和时间的算术操作、其他日期函数、日期和时间的比较、日期字符串转换
  • Android开发高频面试题之——kotlin篇
  • 8--SpringBoot原理分析、注解-详解(面试高频提问点)
  • 语言的枚举
  • C# Redis 框架开发技术详解
  • Rust:Result 和 Error
  • Python基础(八)——MySql数据库
  • 统一网关--gateway(仅供自己参考)
  • 【Leetcode152】分割回文串(回溯 | 递归)
  • 基于BiGRU+Attention实现风力涡轮机发电量多变量时序预测(PyTorch版)
  • 深入探究 Flask 的应用和请求上下文
  • C++学习笔记(30)
  • Rust GUI框架 tauri V2 项目创建
  • C++继承(上)
  • 在 Vim 中打开文件并快速查询某个字符
  • oracle 条件取反
  • 力扣最热一百题——缺失的第一个正数
  • 零基础入门AI:一键本地运行各种开源大语言模型 - Ollama
  • 3.接口测试的基础/接口关联(Jmeter工具/场景一:我一个人负责所有的接口,项目规模不大)
  • 【matlab】将程序打包为exe文件(matlab r2023a为例)
  • 从底层原理上解释clickhouse查询为什么快
  • FEAD:fNIRS-EEG情感数据库(视频刺激)
  • 标准库标头 <bit>(C++20)学习
  • redis群集三种模式:主从复制、哨兵、集群
  • 【MATLAB源码-第225期】基于matlab的计算器GUI设计仿真,能够实现基础运算,三角函数以及幂运算
  • 基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 网络封装分用