【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

news2025/3/2 4:32:47

在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏: 《C++干货基地》《粉丝福利》

⛺️生活的理想,就是为了理想的生活!

引言

说到大语言模型相信大家都不会陌生,大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能应用形态。ChatGPT就是是迄今为止最著名的使用LLM的工具,它由OpenAI的GPT模型的特别调整版本提供动力,而今天我们就来带大家体验一下部署大模型的实战。

文章目录

  • 引言
  • 一、项目选择与系统介绍
    • 1.1 项目介绍
    • 1.2 Tiny-Llama语言模型
    • 1.3 进入系统
    • 1.4 进行远程连接
  • 二、部署LLMS大模型
    • 2.1 拉取代码到环境
    • 2.2 自定义算子部署
      • 配置protoc 环境
      • 算子编译部署
      • 修改环境变量
      • 编译运行& 依赖安装
    • 2.3 推理启动
  • 三、 项目体验

一、项目选择与系统介绍

1.1 项目介绍

本来博主是准备来部署一下咱们的,清华大语言模型镜像这个目前也是非常的火啊,吸引了很多人的注意其优秀的性能和GPT3 不相上下,但是由于考虑到,大部分人电脑其实跑大模型是有一点点吃力的,为了让更多人来先迈出部署模型的第一步,于是就决定去 gitee 上找一个小型一点的大模型来实战一下。

1.2 Tiny-Llama语言模型

  • 果不其然刚搜索就发现 一个基于香橙派AI Pro 部署的语言大模型项目,这不正好吗?直接开始

在这里插入图片描述

  • 点进去一看发现这是南京大学开源的一套基于香橙派 AIpro部署的Tiny-Llama语言模型
  • (开源地址)

1.3 进入系统

这里我们选择的是openEuler,是香橙派的这块板子内置的系统。但其实他的内核是ubuntu这里可以给大家看一下,所以我们用 ubuntu 服务器来部署应该是没有问题的。

在这里插入图片描述

  • openEuler 是一由中国开源软件基金会主导,以Linux稳定系统内核为基础,华为深度参与,面向服务器、桌面和嵌入式等的一个开源操作系统。

1.4 进行远程连接

  • 这里直接插电启动,默认用户名 HwHiAiUser、密码 Mind@123 当然root密码也是一样的

  • 这里我们进来之后可以直接选择链接WiFi 非常便捷

  • 当然这里大家在这里也可以选择云服务器远程实战

在这里插入图片描述

  • 然后我们打开命令窗查看IP , 由于系统默认支持ssh 远程连接,所以博主这里就直接采用 Sxhell 进行连接
  • 输入ip 选择 HwHiAiUser 登录 密码 Mind@123

在这里插入图片描述

二、部署LLMS大模型

2.1 拉取代码到环境

  • 先cd进入 cd ~/samples 目录
  • 之后直接利用git 拉取我们的项目,git 由于系统镜像自带的有就不用我们手动安装了

在这里插入图片描述

2.2 自定义算子部署

配置protoc 环境

  • 使用wget工具从指定的华为云链接下载 protobuf-all-3.13.0.tar.gz文件
wget  https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/protobuf-all-3.13.0.tar.gz --no-check-certificate

在这里插入图片描述

  • 解压刚刚下载的文件
tar -zxvf protobuf-all-3.13.0.tar.gz

在这里插入图片描述

这里解压速度非常快,基本一秒就OK了

在这里插入图片描述

  • 进入 protobuf-3.13.0 文件夹中
cd protobuf-3.13.0

更新apt包管理器的软件包列表

apt-get update

在这里插入图片描述

  • 使用apt-get安装必要的构建工具,包括autoconf、automake和libtool,这些工具用于配置和构建开源项目
apt-get install autoconf automake libtool

在这里插入图片描述

  • 生成配置脚本 configure , 运行 ./configure 生成一个Makefile
./autogen.sh
./configure
  • 编译源代码,由于 香橙派 AIpro 是4核64位处理器+ AI处理器支持8个线程,我们我们可以大胆的使用4个并行进程进行编译,以加快编译速度。
  • 编译这里的时候大家就可以放松放松了大概只需要10几分钟就好了
make -j4

在这里插入图片描述

  • 将编译后的二进制文件和库文件安装到系统指定的位置
make install

在这里插入图片描述

  • 更新系统共享库缓存的工具,检查protoc 版本
sudo ldconfig

protoc --version

在这里插入图片描述

算子编译部署

  • 将当前工作目录切换到 tiny_llama

在这里插入图片描述

  • 设置了一个环境变量 ASCEND_PATH,并将其值设为 /usr/local/Ascend/ascend-toolkit/latest
  • export ASCEND_PATH=/usr/local/Ascend/ascend-toolkit/latest
    在这里插入图片描述
  • custom_op/matmul_integer_plugin.cc 文件复制到指定路径
cp custom_op/matmul_integer_plugin.cc $ASCEND_PATH/tools/msopgen/template/custom_operator_sample/DSL/Onnx/framework/onnx_plugin/
  • cd 进入 目标文件夹进行配置
cd $ASCEND_PATH/tools/msopgen/template/custom_operator_sample/DSL/Onnx

在这里插入图片描述

修改环境变量

  • 打开build.sh,找到下面四个环境变量,解开注释并修改如下:
#命令为 vim build.sh

在这里插入图片描述

# 修改内容为
export ASCEND_TENSOR_COMPILER_INCLUDE=/usr/local/Ascend/ascend-toolkit/latest/include
export TOOLCHAIN_DIR=/usr
export AICPU_KERNEL_TARGET=cust_aicpu_kernels
export AICPU_SOC_VERSION=Ascend310B4

在这里插入图片描述
在这里插入图片描述

编译运行& 依赖安装

  • 编译构建项目,进入到构建输出目录以后续处理生成的文
./build.sh
cd build_out/

在这里插入图片描述

  • 生成文件到 customize 到默认目录 $ASCEND_PATH/opp/vendors/
./custom_opp_ubuntu_aarch64.run
  • 删除冗余文件
cd $ASCEND_PATH/opp/vendors/customize
rm -rf op_impl/ op_proto/

在这里插入图片描述

  • 安装依赖:从指定的华为云 PyPI 镜像源安装所需的 Python 包
cd tiny_llama/inference
pip install -r requirements.txt -i https://mirrors.huaweicloud.com/repository/pypi/simple
  • 先cd 回到根目录,在进入家目录,找到咱们的 tiny_llama/inference
    在这里插入图片描述

2.3 推理启动

  • 下载tokenizer文件
cd tokenizer
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/tokenizer.zip
unzip tokenizer.zip   

在这里插入图片描述

  • 获取onnx模型文件
cd ../model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/tiny-llama/tiny-llama.onnx
  • 我们在复制代码的时候一定要仔细嗷博主这里少打了一个w 导致并没有获取到模型,后期找了半天才发现错误所以提醒大家一定要注意好每一步
    在这里插入图片描述

  • atc模型转换

atc --framework=5 --model="./tiny-llama.onnx"  --output="tiny-llama" --input_format=ND --input_shape="input_ids:1,1;attention_mask:1,1025;position_ids:1,1;past_key_values:22,2,1,4,1024,64" --soc_version=Ascend310B4 --precision_mode=must_keep_origin_dtype

在这里插入图片描述

三、 项目体验

好了到这里我们就算是大功告成了,只需要启动一下mian文件就OK了

  • cd tiny_llama/inference 目录下运行命令
python3 main.py

在这里插入图片描述

  • 打开网址进行访问

在这里插入图片描述
在这里插入图片描述

Tiny-Llama这个模型由于尺寸非常小,参数也只有1.1B。所以在我们部署Tiny-Llama这个大语言模型推理过程中,Ai Core的占用率只到60%左右,基本是一秒俩个词左右,速度上是肯定没问题的。后期可以去试试升级一下内存去跑一下当下主流的 千问7B模型 或者 清华第二代大模型拥有 60 亿参数 ChatGLM2 感觉用 OrangePi AIpro 这块板子也是没问题。

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

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

相关文章

市场趋势的智能预测:Kompas.ai如何洞察未来市场动向

在商业领域,市场趋势预测是企业制定战略规划和做出明智决策的关键。准确把握市场动向能够帮助企业及时调整战略,抓住机遇,规避风险。Kompas.ai,一款先进的人工智能市场分析工具,正通过其深度学习和数据分析能力&#x…

漏洞中有三分之一具有严重且高风险

首发公众号网络研究观,微信搜索关注每日获取更多内容。 在大多数项目中,发现了低复杂度(38%)和中等复杂度(50%)的攻击向量,即使是低技能的黑客也可以执行这些攻击向量。 Positive Technologie…

变量和常量(局部变量和全局变量)

常变的值叫变量,不变的值叫常量 变量分为局部变量和全局变量 在同一范围内,变量只能定义一次,否则就会报错 全部变量和局部变量是可以同时存在的,不过使用的时候是局部优先 变量如果你不给他初始化,那么他放得就是一…

ICC2:如何检查input floating

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 input floating分为两种情况: input没接net的情况: get_flat_pins -f "direction ==in && undefined(net)" input接net…

解决fidder小黑怪倒出JMeter文件缺失域名、请求头

解决fidder小黑怪倒出JMeter文件缺失域名、请求头 1、目录结构: 2、代码 coding:utf-8 Software:PyCharm Time:2024/7/10 14:02 Author:Dr.zxyimport zipfile import os import xml.etree.ElementTree as ET import re#定义信息头 headers_to_extract [Host, Conn…

springboot轻松音乐-计算机毕业设计源码48092

目 录 摘要 1 绪论 1.1研究背景与意义 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序的轻松音乐系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.3 系统用例分析 2.4 系统…

将charles证书放置根文件夹目录下

一:证书导出重命名 先将charles证书导出,然后使用下列命令将charles证书文件重命名 openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer 将文件命名为e5472ab9.0 二:文件移动 我在一台pixcel 5尝试将charles证书移动到安卓跟文件目录下,即显示文件只可读不可…

知识链:知识图谱提升大模型的推理能力,解决多个知识点结合推理时出错

知识链:知识图谱提升大模型的推理能力,解决多个知识点结合推理时出错 提出背景解法拆解逻辑链 CoK 框架hop 步骤处理肺炎疑似病例2-hop规则的应用3-hop规则的应用4-hop规则的应用CoK(T&E)方法的优势 CoK 算法步骤数据集构建 知…

什么是工业4.0?

在当今这个日新月异的时代,科技的每一次飞跃都深刻地改变着我们的生活与工作方式。而在这场全球性的变革中,工业4.0不仅代表了制造业的未来趋势,更是全球经济发展的新引擎。那么,究竟什么是工业4.0?它如何重塑我们的工…

nginx正向代理、反向代理、负载均衡

nginx.conf nginx首要处理静态页面 反向代理 动态请求 全局模块 work processes 1; 设置成服务器内核数的两倍(一般不不超过8个超过8个反而会降低性能一般4个 1-2个也可以) netstat -antp | grep 80 查端口号 *1、events块:* 配置影响ngi…

赛迪顾问ITSS服务经理发布多项2024年IT趋势报告

在深入探讨算力、工业控制系统、网络安全、数据治理、人工智能、数字化转型、5G通信等12大IT关键领域的基础上,赛迪顾问ITSS服务经理于1月16日以“乘势而上,及锋而试”为主题,成功举办了2024年IT趋势发布会。 会议聚焦IT行业的新技术、新模式…

p14数组(2)

数组作为函数的参数 冒泡排序 两两比较 void bubble_sort(int arr[],int sz) {int i0;for(i0;i<sz-1;i){//每一趟冒泡排序int j0;for(j0;j<sz-1-i;j){if(arr[j]>arr[j1]){int tmparr[j];arr[j]arr[j1];arr[j1]tmp;}}} } int main(){int arr[]{9,8,7,6,5,4,3,2,1,0}…

镜像加速方法

参考&#xff1a; https://github.com/DaoCloud/public-image-mirror 使用DaoCloud加速&#xff1a; 比如我想在dockerhub下载这个镜像&#xff1a; 本来的命令是&#xff1a; docker pull openjdk:11.0-jdk-slim-buster在要拉取的镜像前&#xff0c;添加前缀&#xff1a;m.…

网络安全从业人员必知的ClamAV工具(非常详细)零基础入门到精通,收藏这一篇就够了

一、引言 ClamAV&#xff08;Clam AntiVirus&#xff09;是一个开源的防病毒工具&#xff0c;广泛应用于网络安全领域。它的主要功能包括病毒扫描、恶意软件检测、以及电子邮件网关的病毒防护。ClamAV以其高效的性能和灵活的配置选项&#xff0c;成为网络安全从业人员的重要工…

护眼台灯真的护眼吗?一起看台灯的功能作用有哪些

长时间近距离用眼、长时间阅读书籍、长时间处于不良姿势下阅读或写作&#xff0c;都可能导致眼部调节过度&#xff0c;从而引起近视。近视不仅影响个人生活质量&#xff0c;还可能限制职业选择&#xff0c;甚至增加眼部疾病的风险。因此&#xff0c;从日常细节入手&#xff0c;…

IoC源码分析——singleton bean创建与循环依赖

文章目录 概要主流程bean的创建循环依赖 概要 容器初始化时&#xff0c;会创建单例bean&#xff0c;本文主要关注单例bean是如何创建的&#xff0c;并说明源码中是如何解决循环依赖的 代码入口 Testpublic void testIoC() {// ApplicationContext是容器的高级接口&#xff0c…

qcom 平台efuse机器抓取dump log的方法

引言&#xff1a; qcom 平台机器&#xff0c;一旦efuse后机器将无法抓取dump log qcom 原文&#xff1a; efuse机器抓取dump log的方法如下&#xff1a; 一、修改配置文件&#xff1a; 把kamorta_debugpolicy.xml 在配置了debugpolicy&#xff08;加入串号和打开开关&#x…

前端进阶全栈计划:Java基础语法

前言 本教程旨在帮助初学者系统地掌握Java的基础知识。我们将从Java的基本语法开始&#xff0c;逐步深入到面向对象编程、异常处理、多线程编程等核心概念。无论你是编程新手&#xff0c;还是希望夯实基础的开发者&#xff0c;这份指南都将带你走进Java的世界&#xff0c;打下坚…

安全防御---防火墙实验1

安全防御—防火墙实验1 一、实验拓扑与要求 要求&#xff1a; 1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9&#xff1a;00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 …

TQSDRPI开发板教程:编译openwifi工程

本例程基于SDRPI开发板&#xff0c;在Ubuntu中使用vivado编译openwifi工程&#xff0c;最终生成BOOT.BIN文件。需要拥有安装vivado2021.1版本的ubuntu系统或虚拟机。 首先需要下载openwifi的编译文件&#xff0c;可以在GitHub中搜索openwifi-hw&#xff0c;网址如下所示&#…