RHEL8部署baichuan2环境

news2024/11/17 13:47:29

前置

1、安装NVIDIA驱动

https://www.nvidia.cn/Download/index.aspx?lang=cn
阿里云 Alibaba Cloud Linux 3.2104 LTS 64位,需要选择RHEL8,如果没有RHEL8,则选最下面那个选择所有操作系统
在这里插入图片描述

  • 点击搜索,下载这里有安装步骤,记得要看,每个版本安装方式可能不一样
    加粗样式

  • 点击下载到这里复制下载链接
    在这里插入图片描述

  • 安装后校验

# nvidia-smi
  • 输出如下信息表示安装成功,CUDA Version: 12.2需要大于等于后面安装的cuda驱动12.1
    在这里插入图片描述

2、安装 cuda 11.7

参考:https://developer.nvidia.com/cuda-11-7-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=RHEL&target_version=8&target_type=runfile_local

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
chmod +x cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run

安装完成后设置环境变量

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

测试

nvcc -V

在这里插入图片描述

3、安装anaconda

下载脚本并执行

wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh

创建虚拟环境并激活

创建:conda create -n baichuan2 python=3.10
激活:conda activate baichuan2
取消激活:conda deactivate

4、下载模型

https://aliendao.cn/models/baichuan-inc/Baichuan2-7B-Chat-4bits#/

使用wget一个个下,拼接文件路径
http://61.133.217.142:20800/download/models/baichuan-inc/Baichuan2-7B-Chat-4bits/tokenizer.model

安装环境

1、克隆源代码

 git clone https://github.com/baichuan-inc/Baichuan2.git

2、安装依赖

cd Baichuan2
pip install -r requirements.txt

测试

python
import torch
print(torch.__version__)
torch.cuda.is_available()

3、安装量化版本

使用4bits的话,需要安装这个量化包

pip install bitsandbytes==0.41.0
pip install transformers==4.30.0

4、启动前修改模型路径

vim OpenAI_api.py
在这里插入图片描述

5、启动api服务

如果需要启动cli_demo.pyweb_demo.py同样要修改模型路径

nohup python OpenAI_api.py >api.out 2>&1 &
  • 启动成功前可以直接启动查看日志并排查错误
    python OpenAI_api.py

  • 启动成功日志:在这里插入图片描述

  • api请求示例

POST http://127.0.0.1:8000/v1/chat/completions

{
    "model": "Baichuan2-Turbo",
    "messages": [
        {
            "role": "user",
            "content": "xxx"
        }
    ],
    "temperature": 0.3,
    "stream": false
}
  • 返回示例:
{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "message": {
                "content": "xx",
                "role": "assistant"
            }
        }
    ],
    "model": "../Baichuan2-7B-Chat-4bits",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 34,
        "prompt_tokens": 216,
        "total_tokens": 250
    }
}

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

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

相关文章

Datawhale【Sora原理与技术实战】| 学习笔记3

目录 一. 训练 Sora 模型二. 数据预处理三. 视频 VQVAE四. Diffusion Transformer 一. 训练 Sora 模型 Open-Sora 在下图中总结了 Sora 可能使用的训练流程: 链路: 二. 数据预处理 目前主流 LLM 框架缺乏针对 video 数据 统一便捷的管理和处理能力,…

天水麻辣烫:麻辣鲜香,地城风情尽在其中

天水麻辣烫,这道源自甘肃天水的地道美食,早已成为当地饮食文化中不可或缺的一部分。追溯其源头,它脱胎于上世纪80、90年代的麻辣粉,那时的麻辣粉,以土豆粉和土豆片为主,辅以香辣的油泼辣子,简单…

【C++ 】stack 和 queue

1. 标准库中的stack stack 的介绍: 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作 2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其…

月结常见工单异常情况处理

1. 上月已经结算的工单,本月打开投料或者报工,或者增加产出 或者撤销报工修正报工 如果针对结算的订单,打开重新投料。 月末对工单重新结算,转出差异 KKS2单个处理(KKS1集中处理) 差异计算 KO88单个结算…

ThreadLocal基本原理

ThreadLocal基本原理 一、定义 ThreadLocal是java中所提供的线程本地存储机制,可以利用改机制将数据缓存在线程内部,该线程可以在任意时刻、任意方法中获取数据 二、底层原理 ThreadLocal底层是通过ThreadLocalMap来实现的,每个Thread对象中…

短剧APP系统开发:打造全新的掌上剧场体验

随着移动互联网的普及和人们娱乐方式的多样化,短剧已经成为现代人生活中不可或缺的一部分。为了满足用户对高质量、便捷观看短剧的需求,我们致力于开发一款功能全面、操作简便的短剧APP系统,为用户带来前所未有的掌上剧场体验。 一、系统开发…

AJAX 04 回调函数地狱和 Promise 链式调用、async 和 await、事件循环

AJAX 学习 AJAX 04 进阶01 同步代码和异步代码02 回调函数地狱和 Promise 链式调用(1) 回调函数地狱(2) Promise 链式调用(3) Promise 链式应用 03 async 和 await(1) async 和 await 使用(2) async函数和await捕获错误 04 事件循环-EventLoop(1) 事件循环(2) 事件循环练习(3) …

FREERTOS简介、移植和系统配置(基于STM32F103)

本文基础内容参考的是正点原子的FREERTOS课程。 这是基于HAL库的 正点原子手把手教你学FreeRTOS实时系统 这是基于标准库的 正点原子FreeRTOS手把手教学-基于STM32 基础知识,直接参考正点原子《FreeRTOS开发指南V1.1》基于标准库的,此处不再赘述。 本文…

SwiftUI的context Menu

SwiftUI的 context Menu 现在来演示一下如何使用 SwiftUI 的 Context Menu 。 代码: import SwiftUIstruct ContextMenuBootCamp: View {State var bgColor: Color .purplevar body: some View {VStack(alignment: .leading, spacing: 10.0) {Image(systemName: …

【LeetCode】升级打怪之路 Day 21:二叉树的最近公共祖先(LCA)问题

今日题目: 236. 二叉树的最近公共祖先1644. 二叉树的最近公共祖先 II235. 二叉搜索树的最近公共祖先 目录 LCA 问题LC 236. 二叉树的最近公共祖先 【classic】LC 1644. 二叉树的最近公共祖先 II 【稍有难度】LC 235. 二叉搜索树的最近公共祖先 ⭐⭐⭐ 今天做了几道有…

电源常用电路—驱动电路详解

数字电源控制核心对输入输出参数进行采集后,利用控制算法进行分析从而产生PWM控制信号,PWM信号将经过驱动电路的进行功率放大和隔离,随后接入功率开关器件从而完成电源的输出控制。本篇将主要针对电源的驱动电路进行讲解。 一、驱动电路概述…

高效Go编程: encoding/csv标准库深度解析

高效Go编程: encoding/csv标准库深度解析 引言了解encoding/csv库CSV文件的基本结构encoding/csv库的核心功能应用场景 读取CSV文件基本步骤代码示例处理不同的分隔符错误处理 处理CSV数据数据解析代码示例处理不规则数据代码示例 写入CSV文件基本步骤代码示例自定义设置错误处…

C语言——详解字符函数和字符串函数(一)

Hi,铁子们好呀!今天博主来给大家更一篇C语言的字符函数和字符串函数~ 具体讲的内容如下: 文章目录 🎆1.字符分类函数💯💯⏩1.1 什么是字符分类函数的?💯💯⏩1.2 字符函数的类型有哪…

DXP软件界面显示“No Hard Devices”【简单的操作问题】加【软件下载】

目录 一,DXP软件界面显示“No Hard Devices” 二,软件下载的百度网盘资源 一,DXP软件界面显示“No Hard Devices” Protel DXP是2004是澳大利亚Altium公司于2002年推出的一款电子设计自动化软件。它的主要功能包括:原理图编辑、印…

北斗卫星推动数智油田建设

北斗卫星推动数智油田建设 中国石油大港油田采油三厂深入推动北斗智能终端在智能巡检、安全监督、油井导航、坐标测绘等多场景应用,实现了人工查井向智能巡检的变革。截至2月下旬,场景覆盖率达100%,高效助推大港南部“双高”老区数智油田建设…

修改vscode的相对路径计算逻辑

vscode的相对路径计算逻辑是,"./"表示当前项目的文件夹,而不是当前文件所在的文件夹 做出如下修改: File-->Preferences-->settings 搜索Execute in File Dir , 然后取消勾选

TikTok新手如何起号?环境因素与内容创新技巧

相信很多刚入行的TikTok玩家都遇到过一个难题,那就是账号权重低,播放量在个位数徘徊,其实都是因为还没起号!那么具体如何起号呢?下面小编也给大家分享一下技巧。 一、如何起号 1、明确注册 TikTok 账号的目的 无论是…

Linux 管道

目录 一、认识管道 二、匿名管道 pipe函数 用法: pipefd: 匿名管道通信: 三、命名管道 概念: 创建: 特性: 用途: 四、命名管道和匿名管道的区别 命名: 持久性:…

MySQL:概念简章

1.SQL通用语法 SQL单行、多行书写,以分号结尾SQL可以以空格有缩进增加代码可读性SQL语句不区分大小写 2.SQL语句分类 2.1 DDL(数据定义语言) 用于数据库、数据表、字段的定义的语言 create by 表名 (表里有什么字段)…

力扣经典题:化栈为队

整体思路:入栈然后出栈,操作就和队列相同了 大佬的代码 typedef struct Node {int val;struct Node* next; }Node; Node* newNode(int Val) {Node* n(Node*)malloc(sizeof(Node));n->valVal;n->nextNULL;return n; } void push(Node* Head,int Va…