【个人开发】llama2部署实践(三)——python部署llama服务(基于GPU加速)

news2024/10/3 0:35:10

1.python环境准备

注:llama-cpp-python安装一定要带上前面的参数安装,如果仅用pip install装,启动服务时并没将模型加载到GPU里面。

# CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install llama-cpp-python
CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python

pip install uvicorn
pip install starlette
pip install fastapi
pip install sse_starlette
pip install starlette_context
pip install pydantic_settings

2.llama-cpp-python安装报错

报错踩坑1:
安装llama-cpp-python过程出现报错

CMake Error at vendor/llama.Cpp/CMakeLists.txt:186 (find library):
Could not find FOUNDATION LIBRARY using the followingnames: Foundation

解决方法1:
网上找到采用离线安装到方式,可以成功安装,但是高兴得太早了。

wget https://github.com/abetlen/llama-cpp-python/releases/download/v0.2.56/llama_cpp_python-0.2.56-cp311-cp311-manylinux_2_17_x86_64.whl
pip install llama_cpp_python-0.2.56-cp311-cp311-manylinux_2_17_x86_64.whl
# 参考链接:https://blog.csdn.net/qq_38463737/article/details/136477026

坑1:
虽然可以成功安装,但是启动llama服务的时候,没法用到GPU加速。

报错踩坑2:
倒腾了很久,看报错一直是cmake对问题,寻思着可能是gcc版本的问题,将gcc升级到13.1。但还是出现报错:

CMake Error at vendor/llama.Cpp/CMakeLists.txt:186 (find library):
Could not find FOUNDATION LIBRARY using the followingnames: Foundation

在这里插入图片描述
或者其他诸如的报错【报错太多,没法全记录下来】

CMake configuration failed

看上面的报错Compiling the CUDA compiler identification source file “CMakeCUDACompilerId.cu” failed。感觉像是cuda跟gcc版本的不兼容问题。

解决方法2:
捣鼓了很久,后来参考了一些成功安装的经验,最后选择gcc-9.4.0版本
附带一下gcc版本安装步骤:

## 安装
tar xf gcc-9.4.0.tar.xz
cd gcc-9.4.0/
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/usr/local/gcc-9.4.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j16 # 我这里服务器是16核,这里根据服务器核数修改并行度。
make install 

## 配置环境变量
export GCC_ME_HOME=/usr/local/gcc-9.4.0/
PATH=$GCC_ME_HOME/bin:/usr/local/bin:$PATH
export PATH
LD_LIBRARY_PATH=$GCC_ME_HOME/lib:$GCC_ME_HOME/lib64:/usr/local/lib:/usr/local/lib64:/usr/lib64:/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
export CC=$GCC_ME_HOME/bin/gcc
export CXX=$GCC_ME_HOME/bin/g++

报错踩坑2:
后来还遇到这个问题

Could not find compiler set in environment variable CXX:

在这里插入图片描述

估摸着应该是CXX变量没加载的原因,重新加载环境变量,安装。

3.服务启动

python3 -m llama_cpp.server --model /data/opt/llama2_model/llama-2-7b-bin/ggml-model-f16.bin --n_threads 30 --n_gpu_layers 200

在这里插入图片描述
在这里插入图片描述
终于加载到GPU里面!
在这里插入图片描述

4.总结

当前环境各组件版本:

  • gcc:9.4.0
  • cuda:11.8
  • python:3.11.4
  • llama_cpp_python:0.2.56

以上,End

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1505132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】深入理解指针(进阶篇)

一、数组名的理解 数组名就是地址&#xff0c;而且是数组首元素的地址。 任务&#xff1a;运行以下代码&#xff0c;看数组名是否是地址。 #include <stdio.h> int main() {int arr[] { 1,2,3,4,5,6,7,8,9,0 };printf("&arr[0] %p\n", &arr[0]);pri…

PMP-项目管理十大知识领域学习和理解

项目管理十大知识领域&#xff1a; 整合、范围、进度、成本、 质量、资源、沟通、风险、采购、干系人 十大知识领域的理解 十大知识领域裁剪情况&#xff1a; 十大知识领域: 硬技能和软技能

flink 总结

flink 流式api checkpoint state 状态分类 Managed State 和 Raw State Managed State Flink 自己管理&#xff0c;支持多种数据结构 Raw State 用户自己管理&#xff0c; 只支持byte Managed Staste 分为 Keyed State 和 operator State Managed State 只能在Keyed Str…

沁恒CH32V307VCT6开发板记录---kalrry

沁恒CH32V307VCT6开发板记录---kalrry 一、官网申请开发板二、环境准备图一 一、官网申请开发板 1.沁恒官网 二、环境准备 1.数据手册&#xff1a;CH32V307DS0.PDF&#xff0c;CH32FV2x_V3xRM.PDF 2.CH32V307评估板说明及参考应用例程&#xff1a;CH32V307EVT_ZIP 3.集成开…

Ubuntu18.04 下使用 Pybind11实现 C++ 调用 Python 函数和类的示例

Pybind11 是一个轻量级的库&#xff0c;它提供了在 C 中无缝集成 Python 代码的能力。使用 Pybind11&#xff0c;你可以很容易地从 C 调用 Python 代码&#xff0c;反之亦然。下面我将通过一个简单的例子来展示如何在 Ubuntu 系统上使用 Pybind11 从 C 调用 Python 接口。 安装…

上位机图像处理和嵌入式模块部署(qmacvisual二维码识别)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果说条形码在商品上使用比较多的话&#xff0c;那么二维码识别是一个更加使用频繁的场合。为什么使用这样频繁&#xff0c;我想很多一部分原因来…

Java开发:对象间复制属性,方法归纳

在Java开发中&#xff0c;对象间复制属性是一项常见的任务&#xff0c;特别是在处理层&#xff08;如控制器层&#xff09;与服务层或数据传输对象&#xff08;DTOs&#xff09;之间的数据转换时。有多种方法可以实现User对象到UserDTO对象的属性复制&#xff0c;下面列举了几种…

Ubuntu 安装谷歌拼音输入法

一、Fcitx 安装 在Ubuntu 下&#xff0c;谷歌拼音输入法是基于Fcitx输入法的。所以&#xff0c;首先需要安装Fcitx。一般来说&#xff0c;Ubuntu最新版中都默认安装了Fcitx&#xff0c;但是为了确保一下&#xff0c;我们可以在系统终端中运行如下命令&#xff1a; sudo apt ins…

Matlab|【EI复现】电动汽车集群并网的分布式鲁棒优化调度模型

目录 1 内容简介 2 关键知识点 2.1 三类电动汽车模型 3 程序结果 4 下载链接 1 内容简介 电动汽车的数据模型种类繁多&#xff0c;但是用到比较高阶数学方法的并不多&#xff0c;本次分享的程序是下图所示的文章。 采用分布鲁棒优化模型&#xff0c;用到鲁棒对等转换&…

latex绘图中\begin{figure}[htbp]中的htbp什么意思

在LaTeX中&#xff0c;\begin{figure}[htbp] 用来开始一个图形环境&#xff0c;其中 [htbp] 是一个位置参数&#xff0c;用来指导LaTeX如何放置这个图形。 具体来说&#xff0c;[htbp] 中的每个字母代表一个放置选项&#xff1a; h&#xff1a;代表“here”&#xff0c;意味着…

vscode 配置 c 语言 问题解决

1.VS code调试时显示Unable to start debugging.The value of miDebuggerPath is invalid。 解决方法: VS code调试时显示Unable to start debugging.The value of miDebuggerPath is invalid_unable to start debugging. the value of midebugger-CSDN博客 2.VSCode运行C终端…

数据库系统原理实验报告1 | E-R图设计

整理自博主2021级专业课《数据库系统原理》自己完成的实验报告。 目录 一、实验目的 二、实验内容 1、某个学校有若干个系 2、某工厂生产若干产品 3、某学校的田径运动会中设置了各类比赛 4、自己调查一个需要提供开发数据库应用系统的单位 三、实验结果总结 四、实验结…

分布式之SpringCloud

一、SpringCloud 1、SpringCloud是什么 Spring Cloud是一系列框架的有序集合&#xff0c;这些框架为我们提供了分布式系统构建工具。 2、SpringCloud包含那些项目 项目项目名称服务注册于发现Alibaba Nacos、Netflix Eureka、Apache Zookper分布式配置中心Alibaba Nacos、S…

架构面试题汇总:网络协议34问(七)

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 网络协议是实现各种设备和应用程序之间顺畅通信的基石。无论是构建分布式系统、开发Web应用&#xff0c;还是进行网络通信&#x…

前端vite+vue3——可视化页面性能耗时指标(fmp、fp)

文章目录 ⭐前言&#x1f496;vue3系列文章 ⭐可视化fmp、fp指标&#x1f496; MutationObserver 计算 dom的变化&#x1f496; 使用条形图展示 fmp、fp时间 ⭐项目代码⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端vitevue3——可视化页面性能耗时…

微信小程序开发系列(二十五)·wxml语法·条件渲染wx:if, wx:elif, wx:else 属性组以及hidden 属性的使用

目录 1. 使用 wx:if、wx:elif、wx:else 属性组 2. 使用 hidden 属性 条件渲染主要用来控制页面结构的展示和隐藏,在微信小程序中实现条件渲染有两种方式: 1. 使用 wx:if, wx:elif, wx:else 属性组 2. 使用 hidden 属性 wx:if 和 hidden 二者的区别&#xff1a; 1. wx…

VMware 安装 MS-DOS 6.22

VMware 安装 MS-DOS 6.22 0. 准备工作创建虚拟机下载安装包装入安装软盘 1. 安装界面2. 创建分区3. 格式化分区4. 安装参考资料 提醒&#xff1a;如果你是为了 int 13 来的&#xff0c;我试了没用 0. 准备工作 创建虚拟机 先创建一个 DOS 虚拟机右健我们创建的DOS 虚拟机 >…

15.Webpack进阶使用

一.Webpack 自动生成 html 文件 1. 插件 html-webpack-plugin 作用&#xff1a; 在 Webpack 打包时生成 html 文件&#xff0c;并引入其他打包后的资源 2. 步骤&#xff1a; 下载 html-webpack-plugin 本地软件包到项目中 npm i html-webpack-plugin --save-dev配置 webpack…

DataGrip 2023:让数据库开发变得更简单、更高效 mac/win

JetBrains DataGrip 2023是一款功能强大的数据库IDE&#xff0c;专为数据库开发和管理而设计。通过DataGrip&#xff0c;您可以连接到各种关系型数据库管理系统(RDBMS)&#xff0c;并使用其提供的一组工具来查询、管理、编辑和开发数据库。 DataGrip 2023软件获取 DataGrip 2…

TimescaleDB 集群安装部署

文章目录 1.安装环境2.安装TimescaleDB2.1. 安装PostgreSQL2.2.安装Timescaledb插件2.3.配置TimescaleDB 3.集群配置4.创建数据库5.测试 开源中间件 # TimescaleDBhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/middleware/timescale/timescale-deploy-…