昇腾服务器(Atlas800系列)部署embedding和rerank模型

news/2024/12/23 4:51:53/

embeddingrerank_0">昇腾服务器部署embedding和rerank模型

1、确定安装环境

环境型号CANN版本
训练环境Atlas800T A2服务器CANN8.0.RC2及以上
推理环境Atlas800I A2服务器CANN8.0.RC2及以上
推理环境Atlas300IDUO推理卡CANN8.0.RC2及以上

2、获取下载包

资源包

可以使用wget命令下载:wget https://tools.obs.cn-south-292.ca-aicc.com:443/samples/llm/embed_rerank.tar.gz --no-check-certificate

3、基础环境配置

apt update && apt install curl build-essential autoconf libtool curl make g++ unzip wget libssl-dev pkg-config -y

4、创建一个conda环境

conda create -n Embedding --clone MindIE_1.0.RC2
conda activate Embedding

5、安装rust和protoc

  • 安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

出现下所示,选择1即可。

1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation

在这里插入图片描述

  • 安装protobuf v21.12
    软件包提供了protobuf的源代码。直接解压配置和编译
tar -zxvf protobuf-all-21.12.tar.gz
cd protobuf-21.12
./configure
make -j20
make install

在命令行执行如下命令:
export LD_LIBRARY_PATH=/usr/local/lib:$LIB_LIBRARY_PATH

6、安装应用依赖

在主目录:

pip install -r requirements.txt
  • 安装Route

    • 进入$work_dir/TEI/text-embeddings-inference执行如下命令:
    ../../cargo/bin/cargo install --path router -F python -F http --no-default-features
    

安装成功后如图:
在这里插入图片描述

  • 进入$work_dir/TEI/text-embeddings-inference/backends/python/server

    • 执行安装依赖和编译安装
make install 
pip install transformers==4.37.0
pip install safetensors==0.3.3
poetry install

安装后截图:
在这里插入图片描述

7、运行模型和测试

  • embedding

    • 回到主目录下执行如下脚本:
start_im_embed.sh

在这里插入图片描述

  • 测试:
curl 127.0.0.1:11027/embed \-X POST \-d '{"inputs":"What is Deep Learning?"}' \-H 'Content-Type: application/json'

推理结果
在这里插入图片描述

  • rerank

    • 运行

      回到主目录下执行如下脚本:

start_im_rerank.sh
  • 测试

    curl 127.0.0.1:11028/rerank \-X POST \-d '{"query":"What is Deep Learning?", "texts": ["Deep Learning is not...", "Deep learning is..."]}' \-H 'Content-Type: application/json'
    

推理结果
推理

结论:
embedded 大概在20ms左右、rerank在30ms左右。速度可用~


http://www.ppmy.cn/news/1526977.html

相关文章

【数据结构】顺序表的定义和实现

顺序表的定义 顺序表是指用顺序存储的方式实现线性表 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现 【看到这是否会和我有同样的疑问:顺序表和数组是一样的吗?这…

Python计算机视觉编程 第三章 图像到图像的映射

目录 单应性变换直接线性变换算法仿射变换 图像扭曲图像中的图像分段仿射扭曲 创建全景图RANSAC拼接图像 单应性变换 单应性变换是将一个平面内的点映射到另一个平面内的二维投影变换。在这里,平面是指图像或者三维中的平面表面。单应性变换具有很强的实用性&#…

【计网】从零开始使用TCP进行socket编程 --- 客户端与服务端的通信实现

阵雨后放晴的天空中, 出现的彩虹很快便会消失。 而人心中的彩虹却永不会消失。 --- 太宰治 《斜阳》--- 从零开始使用TCP进行socket编程 1 TCP与UDP2 TCP服务器类2.1 TCP基础知识2.2 整体框架设计2.3 初始化接口2.4 循环接收接口与服务接口 3 服务端与客户端测试…

【HTML】HTML页面和常见标签

文章目录 什么是前端HTML 页面编写如何快速生成代码框架常见标签注释标签标题标签段落标签换行标签格式化标签 什么是前端 Web 前端,用来直接给以用户呈现的一个一个的网页。一个软件通常是由 后端前端 完成的 后端:通过 Java/C等语言,完成相…

TS axios封装

方式一 service/request/request.ts import axios from axios import { ElLoading } from element-plus import type { AxiosRequestConfig, AxiosInstance, AxiosResponse } from axios import type { ILoadingInstance } from element-plus/lib/el-loading/src/loading.typ…

在 Android 中,自定义 View 的绘制流程

目录 1. 测量阶段 (onMeasure()) 2. 布局阶段 (onLayout()) 3. 绘制阶段 (onDraw()) 总体绘制流程 注意事项 示例总结 参考资料 在 Android 中,自定义 View 的绘制流程主要包括测量、布局、绘制三个关键步骤。具体来说,自定义 View 的绘制涉及重写…

Effective C++笔记之二十三:非void函数不写return

一.main函数 Qt Creator查看汇编的步骤如下 上图是g编译器下的汇编 eax就是main()函数的返回值 如果删掉return 0; 可以发现编译器还是把eax的值设为了0,由此可见,即使在main函数中不写return 0,编译器还是会默认添加个return 0。…

c++结构体与json自动互转(nlohmann的使用)

说明 nlohmann实现了结构体与json自动互转。 下载 https://github.com/nlohmann/json.git 拷贝include/nlohmann/json.hpp到新建工程 例子 代码 #include <iostream> #include "json.hpp" #include <string> using nlohmann::json; using namespa…