【LocalAI】(10):在autodl上编译embeddings.cpp项目,转换bge-base-zh-v1.5模型成ggml格式,本地运行main成功

本文主要是介绍【LocalAI】(10):在autodl上编译embeddings.cpp项目,转换bge-base-zh-v1.5模型成ggml格式,本地运行main成功,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,关于 localai

LocalAI 是一个用于本地推理的,与 OpenAI API 规范兼容的 REST API。
它允许您在本地使用消费级硬件运行 LLM(不仅如此),支持与 ggml 格式兼容的多个模型系列。支持CPU硬件/GPU硬件。

在这里插入图片描述

【LocalAI】(10):在autodl上编译embeddings.cpp项目,转换bge-base-zh-v1.5模型成ggml格式,本地运行main成功

2,关于embeddings.cpp项目

这个是localai 执行 embedding 模型的后台服务。
但是有个问题,不支持 bge的大模型。

只能运行 bert-embeddings 的大模型,而bge的模型不支持。

配置文件:

## 使用bge 大模型:
## https://localai.io/features/embeddings/
## https://www.modelscope.cn/models/flyiot/bge-base-zh-v1.5-ggml/summaryname: text-embedding-ada-002
backend: bert-embeddings
parameters:model: bge-base-zh-v1.5-ggml-model-q4_0.binusage: |You can test this model with curl like this:curl http://localhost:8080/embeddings -X POST -H "Content-Type: application/json" -d '{"input": "Your text string goes here","model": "text-embedding-ada-002"}'download_files:
- filename: "bge-base-zh-v1.5-ggml-model-q4_0.bin"sha256: "da4d976e3988977ec4d9fde6653a8fe954b71a0c502c30eda6f84234556cde54"uri: "https://www.modelscope.cn/api/v1/models/flyiot/bge-base-zh-v1.5-ggml/repo?Revision=master&FilePath=ggml-model-q4_0.bin"

比如运行:

5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr runtime.goexit({})
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr 	/root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.linux-amd64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00011cfe8 sp=0xc00011cfe0 pc=0x4756c1
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr created by google.golang.org/grpc.(*Server).handleRawConn in goroutine 19
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr 	/root/go/pkg/mod/google.golang.org/grpc@v1.59.0/server.go:919 +0x15b
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr 
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rax    0x0
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rbx    0x7f710a337640
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rcx    0x7f7151e669fc
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rdx    0x6
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rdi    0x23
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rsi    0x26
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rbp    0x26
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rsp    0x7f710a336700
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r8     0x7f710a3367d0
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r9     0x7f710a336310
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r10    0x8
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r11    0x246
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r12    0x6
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r13    0x16
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r14    0x21
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr r15    0x7f71004bce40
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rip    0x7f7151e669fc
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr rflags 0x246
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr cs     0x33
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr fs     0x0
5:39AM DBG GRPC(bge-base-zh-v1.5-ggml-model-q4_0.bin-127.0.0.1:41571): stderr gs     0x0
5:39AM ERR Server error error="could not load model: rpc error: code = Unavailable desc = error reading from server: EOF" ip=172.17.0.1 latency=2.089992731s method=POST status=500 url=/v1/embeddings
5:40AM INF Success ip=127.0.0.1 latency="63.617µs" method=GET status=200 url=/readyz

结果报错了。

3,可以编译embeddings.cpp 执行bge 大模型

项目地址:
https://github.com/xyzhang626/embeddings.cpp
下载项目:
https://hf-mirror.com/BAAI/bge-base-zh-v1.5


#然后进行编译:
git clone --recursive https://github.com/xyzhang626/embeddings.cpp.gitcd embeddings.cpp
mkdir build
cd build
cmake .. -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release
makecd models
python download-repo.py BAAI/bge-base-zh-v1.5
sh run_conversions.sh bge-base-zh-v1.5#运行main
cd ..
./build/bin/main -m ./models/bge-base-zh-v1.5/ggml-model-q4_0.bin

然后就而可以运行成功啦。使用的autodl的环境。

4,总结

LocalAI的项目里面的embedding 是 bert embedding.
不支持BGE 模型,有大神给改造支持了BGE的模型了。

这篇关于【LocalAI】(10):在autodl上编译embeddings.cpp项目,转换bge-base-zh-v1.5模型成ggml格式,本地运行main成功的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/953478

相关文章

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项