**读者福利 |** 👉2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享
引言
说到大语言模型相信大家都不会陌生,大型语言模型(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 这块板子也是没问题。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】或点击下方蓝色字 即可免费领取↓↓↓
**读者福利 |** 👉2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享 **(安全链接,放心点击)**)** **(安全链接,放心点击)**
评论前必须登录!
注册