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

基于llama.cpp的量化版reranker模型调用示例

CPU平台transformers版reranker响应速度慢,这里尝试量化版模型,期望提高响应速度。

ollama目前(25.8.22)还不支持reranker的endpoint,只能考虑其他复杂点的方案,比如llama.cpp。

这里使用llama.cpp,量化bge-reranker-v2-m3模型。

1 llama.cpp安装

centos7系统基础库glibc比较老,llama.cpp直接编译安装存在障碍,所以这里采用docker方案。

1)镜像下载

假设docker已经安装,安装过程参考如下链接

centos7 安装ragflow示例_ragflow能部署在centos上吗-CSDN博客

llama.cpp docker镜像如下

ghcr.io/ggml-org/llama.cpp:server - 镜像下载 | ghcr.io

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/ggml-org/llama.cpp:server
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/ggml-org/llama.cpp:server  ghcr.io/ggml-org/llama.cpp:server

2)镜像启动

llama.cpp docker文档如下

https://github.com/ggml-org/llama.cpp/blob/master/docs/docker.md

docker启动命令如下,/path/to/models就是存放具体下载模型的地方

nohup docker run -v /path/to/models:/models -p 8000:8000 ghcr.io/ggml-org/llama.cpp:server -m /models/bge-reranker-v2-m3-Q2_K.gguf --reranking  --port 8000 --host 0.0.0.0 -n 8192 > run.log &

这里启动的是bge-reranker-v2-m3-Q2_K.gguf,采用llama.cpp的Q2量化,来源如下

https://huggingface.co/gpustack/bge-reranker-v2-m3-GGUF/tree/main

具体量化操作过程参考如下链接。

在mac m1基于llama.cpp运行deepseek_macos m1运行gguf文件-CSDN博客

由于是reranking,启动时提供--reranking选项。

2 reranker模型测试

1)reranking任务说明

所下所示,documents是初筛找出的可能与query相关的文档。

reranking是更精准判断query与documents中每个doc的相关程度,具体为relevance_score。

"query": "明天天气怎么样",

"documents": [
        "今天天气晴朗,我的心情美美哒",
        "小明和小红一起上学",
        "我们来试一试吧",
        "我们一起学猫叫",
        "我和Faker五五开",
        "明天预计下雨,不能出去玩了"
    ]

2)reranking调用示例

模型调用示例如下,llama.cpp兼容openai接口,采用如下openai式的http api去请求。

curl --location 'http://localhost:8000/v1/reranking' \
--header 'Authorization: Bearer $OPENAI_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "query": "明天天气怎么样",
    "documents": [
        "今天天气晴朗,我的心情美美哒",
        "小明和小红一起上学",
        "我们来试一试吧",
        "我们一起学猫叫",
        "我和Faker五五开",
        "明天预计下雨,不能出去玩了"
    ],
    "model": "text-embedding-ada-002",
    "encoding_format": "float"
  }'
 

输出如下

{
    "model": "text-embedding-ada-002",
    "object": "list",
    "usage": {
        "prompt_tokens": 92,
        "total_tokens": 92
    },
    "results": [
        {
            "index": 0,
            "relevance_score": -1.7882604598999023
        },
        {
            "index": 1,
            "relevance_score": -6.9131317138671875
        },
        {
            "index": 2,
            "relevance_score": -7.27742862701416
        },
        {
            "index": 3,
            "relevance_score": -9.136366844177246
        },
        {
            "index": 4,
            "relevance_score": -6.689809322357178
        },
        {
            "index": 5,
            "relevance_score": -1.3041083812713623
        }
    ]
}

openai sdk版本调用参照如下链接

https://blog.csdn.net/liliang199/article/details/150111535

reference

---

llama.cpp docker 文档

https://github.com/ggml-org/llama.cpp/blob/master/docs/docker.md

bge-reranker-v2-m3-GGUF

https://huggingface.co/gpustack/bge-reranker-v2-m3-GGUF/tree/main

llama.cpp docker image

https://docker.aityp.com/image/ghcr.io/ggml-org/llama.cpp:server

第二弹 llama.cpp控制参数

https://blog.csdn.net/joedan0104/article/details/143034253

如何用OpenAI SDK调用Ollama LLM

https://blog.csdn.net/liliang199/article/details/150111535

centos7 安装docker + ragflow示例

https://blog.csdn.net/liliang199/article/details/150067330

RAG初筛方案实例验证-多种BM25方案

https://blog.csdn.net/liliang199/article/details/150604949

开源向量模型-精排bge reranker示例

https://blog.csdn.net/liliang199/article/details/150342360

在mac m1基于llama.cpp运行deepseek

https://blog.csdn.net/liliang199/article/details/149246699

量化版本的bge-reranker-v2-m3

https://ollama.com/qllama/bge-reranker-v2-m3

BGE FlagEmbedding

https://github.com/FlagOpen/FlagEmbedding

ollama支持Reranker重排序大模型啦

https://www.bilibili.com/opus/1091251147250860036

ollama reranker模型怎么被dify调用呢?

https://linux.do/t/topic/427704

Reranking documents with Ollama and Qwen3 Reranker model — in Go

https://medium.com/@rosgluk/reranking-documents-with-ollama-and-qwen3-reranker-model-in-go-6dc9c2fb5f0b

[LLM-Llama]在 MAC M1上体验Llama.cpp和通义千问Qwen 1.5-7B

https://juejin.cn/post/7371365854012293131

http://www.dtcms.com/a/346720.html

相关文章:

  • 目标跟踪 YOLO11 单目标跟踪
  • Uipath查找元素 查找子元素 获取属性活动组合使用示例
  • 【数据结构】线性表——链表
  • 基于springboot购物商城系统源码
  • 灵动AI:工业级商品图AI生成工具
  • 【剖析高并发秒杀】从流量削峰到数据一致性的架构演进与实践
  • GaussDB 数据库架构师修炼(十八) SQL引擎-解析器
  • 慢查询该怎么优化
  • 【文献阅读】Lossless data compression by large models
  • 【卷积神经网络详解与实例】2——卷积计算详解
  • Hive中的join优化
  • 解决散点图绘制算法单一导致的数据异常问题
  • DeepSpeed v0.17.5发布:优化性能与扩展功能的全新升级
  • Axure:有个特别实用的功能
  • 寻找AI——高保真还原设计图生成App页面
  • 【K8s】整体认识K8s之Docker篇
  • 完整实验命令解析:从集群搭建到负载均衡配置
  • 在TencentOS3上部署OpenTenBase:从入门到实战的完整指南
  • week4-[循环结构]生日悖论-new
  • 【C语言16天强化训练】从基础入门到进阶:Day 8
  • 【基础-判断】Video组件可以支持本地视频路径和网络路径播放。播放网络视频时,需要申请权限ohos.permission.INTERNET
  • Clustering Enabled Wireless Channel Modeling Using Big Data Algorithms
  • 学习游戏制作记录(合并更多的技能与技能树)8.23
  • 祝贺,国产轻量级桌面GIS软件Snaplayers下载量突破上万
  • 【技术突破】动态目标误检率↓83.5%!陌讯多模态融合算法在智慧城管的实战优化
  • 算法训练营day60 图论⑩ Bellman_ford 队列优化算法、判断负权回路、单源有限最短路
  • Kubernetes笔记整合-1
  • 定时器互补PWM输出和死区
  • 【手撕JAVA多线程:2.线程安全】 2.1.JVM层面的线程安全保证
  • 硬件-时钟学习DAY5——石英晶体负载电容设计全解析