【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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定