【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

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

LangChain转换链:让数据处理更精准

1. 转换链的概念 在开发AI Agent(智能体)时,我们经常需要对输入数据进行预处理,这样可以更好地利用LLM。LangChain提供了一个强大的工具——转换链(TransformChain),它可以帮我们轻松实现这一任务。 转换链(TransformChain)主要是将 给定的数据 按照某个函数进行转换,再将 转换后的结果 输出给LLM。 所以转换链的核心是:根据业务逻辑编写合适的转换函

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

hevc和H.264格式的区别

HEVC(High Efficiency Video Coding)和H.264(也称为Advanced Video Coding,AVC)都是视频压缩标准,但它们之间存在一些显著的区别,主要集中在压缩效率、资源需求和兼容性方面。 压缩效率 HEVC,也被称为H.265,提供了比H.264更高的压缩效率。这意味着在相同的视频质量下,HEVC能够以大约一半的比特率进行编码,从而减少存储空间需求和

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

用Microsoft.Extensions.Hosting 管理WPF项目.

首先引入必要的包: <ItemGroup><PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" /><PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /><PackageReference Include="Serilog

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

22.手绘Spring DI运行时序图

1.依赖注入发生的时间 当Spring loC容器完成了 Bean定义资源的定位、载入和解析注册以后,loC容器中已经管理类Bean 定义的相关数据,但是此时loC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况 发生: 、用户第一次调用getBean()方法时,loC容器触发依赖注入。 、当用户在配置文件中将<bean>元素配置了 lazy-init二false属性,即让

21.手绘Spring IOC运行时序图

1.再谈IOC与 DI IOC(lnversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创 建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让 容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们所看到的配置文件。 DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类