欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

ai模型设计,ai建3d模型

墨初 知识笔记 97阅读

文章目录 AI大模型基础环境搭建简介下面是搭建大模型基础环境大模型基础环境通常会依赖以下packageconda安装demo环境搭建关于该git项目需要注意的一些点前后端封装

AI大模型基础环境搭建 简介

简单描述一下本文章里会教大家做的东西
1、搭建大模型基础环境
2、fastapi 封装接口 前端页面做自己的语言模型
3、github地址

一点废话

本人手里也没有合适跑AI模型的机器是在腾讯云上薅了一个新用户的福利几十块租了一星期练手。后面机器到期了所以没法发链接给读者亲身体验不过一些步骤有截图记录同时项目上传了github仓库会提供git地址。跑了 starchat语言模型 和 clip图像识别两个模型。

套壳后的 startchat 如图哈哈

看一下运行时的显存跑起来差不多用了18个G

这个是完整页面前端页面有一些可调参数

clip 运行的情况 clip 相对没 starchat 这么吃显存

应用的 github 地址
下面是搭建 大模型基础环境 大模型基础环境通常会依赖以下package

PyTorchPyTorch是一个用于深度学习的开源库由Facebook AI Research开发。PyTorch广泛用于自然语言处理、计算机视觉和语音识别等领域。

torchvisiontorchvision是一个用于计算机视觉任务的库提供了图像和视频处理的各种功能。torchvision基于PyTorch构建方便在PyTorch项目中使用。

torchaudiotorchaudio是一个用于音频处理的库提供了对音频信号进行处理的函数和预训练模型。。torchaudio也基于PyTorch构建可以在PyTorch项目中轻松集成。

CUDACUDA是NVIDIA开发的一种并行计算平台和API模型用于在NVIDIA GPU上加速计算任务。它允许开发人员编写在GPU上运行的代码从而加快计算速度。PyTorch等深度学习库通常使用CUDA来进行GPU加速。

结合所选取的大模型参考 选取合适的环境package组合。

Bitsandbytes提供高效的位操作和字节操作功能。它可以帮助开发人员更轻松地处理二进制数据和进行位级操作。

很多情况大模型所需要的服务器配额我们是无法满足的这个时候需要bitsandbytes降低推理精度以达到降低所需显存配额的目的。

conda安装

如果确保机器只归你一个人使用可以不用安装

下载并安装anaconda选择你需要的版本即可上机安装 以Tlinux为例下载Anaconda3-2023.07-2-Linux-x86_64.sh并执行等待安装完成。
bash Anaconda3-2023.07-2-Linux-x86_64.sh
是否安装成功
# 查看conda版本conda --version# 提示没有command设置环境变量即可# 获取conda的安装路径# whereis condaexport PAHT/usr/anconda/bin:$PATHsource ~/.bashrc
conda常用命令
# 查看当前存在的虚拟环境conda env list# 创建虚拟环境conda create -n envName# 激活虚拟环境conda activate envName# 退出虚拟环境conda deactivate# 删除虚拟环境conda remove -n envName --all# 虚拟环境中安装packge以安装pytorch 1.13.1版本为例conda install pytorch1.13.1# 更多的conda命令conda --help
demo环境搭建

以cuda11.3为例搭建大模型运行环境。
说明cuda11.3较为典型在bitsandbytes中没有预先编译适配11.3的so。所以11.3的整个环境搭建具备完整环境搭建流程适配所有cuda版本环境搭建。

# 默认情况下腾讯云服务器上镜像已经安装了nvidia驱动。# 查询显卡信息该命令将会输出当前显卡Driver VersionCUDA Versionnvidia-smi# print CUDA Version: 11.4, 说明当前环境适配CUDA Version < 11.4# 下载并安装CUDA 11.3需要注意的是安装过程中会让你选择安装像这里需要去除安装驱动。wget  sh cuda_11.3.0_465.19.01_linux.run# 设置环境变量通常/usr/local/cuda-1x.x/bin/usr/local/cuda-1x.x/lib64export PATH/usr/local/cuda-11.3/bin:$PATHsource ~/.bashrcexport LD_LIBRARY_PATH$LD_LIBRARY_PATH:/usr/local/cuda-11.3/lib64# 或者将/usr/local/cuda-11.3/lib64添加到/etc/ld.so.conf##### conda和pip安装二选一 start ##### 参考 1、condaconda create -n starchatconda activate starchatconda install pytorch1.12.1 torchvision0.13.1 torchaudio0.12.1 cudatoolkit11.3 -c pytorch# 2、pippip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url  conda和pip安装二选一 end ##### 安装bitsandbytespip install bitsandbytes# make对应版本的bitsandbytesgit clone  bitsandbytesCUDA_VERSION11.3 make cuda11xpython setup.py installCUDA_VERSION11.3 make cuda11x_nomatmulpython setup.py install# 编译好的so通常在build/lib/bitsandbytes路径下libbitsandbytes_cuda113.so, libbitsandbytes_cuda113_nocublaslt.so# 将这两个文件放在python/site-packages/bitsandbytes目录下# 根据服务器环境复制到对应的目录下#### start ##### 1、conda# 如conda环境中使用的python3.10cp build/lib/bitsandbytes/libbitsandbytes_cuda113.so /root/.conda/envs/starchat/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda113.socp build/lib/bitsandbytes/libbitsandbytes_cuda113_nocublaslt.so /root/.conda/envs/starchat/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda113_nocublaslt.so# 2、非conda使用的是python3.8cp build/lib/bitsandbytes/libbitsandbytes_cuda113.so /usr/local/lib64/python3.8/site-packages/bitsandbytes/libbitsandbytes_cuda113.socp build/lib/bitsandbytes/libbitsandbytes_cuda113_nocublaslt.so /usr/local/lib64/python3.8/site-packages/bitsandbytes/libbitsandbytes_cuda113_nocublaslt.so#### end ##### 测试bitsandbytespython -m bitsandbytes# success printTrue# 否则这里可能存在两个缺少依赖的报错#   1、No module named scipy。解决pip install scipy#   2、No module named triton.language。解决pip install triton#     安装完成triton后依然报错相同的错误那么需要修改下/usr/local/lib64/python3.8/site-packages/bitsandbytes/triton/triton_util.py关于引用importlib的方式#     修改代码import importlib -> import importlib.util#     没错我为了安装这个环境已经把bitsandbytes源码看完了# 整个环境已经搭建完成# 关于如何开启8int方式运行大模型可以参考#      

至此demo中的大模型环境已经搭建完成。
大家可以在 huggingface 或者 百度飞浆 中获取自己想要的AI模型来愉快的玩耍

关于该git项目需要注意的一些点
cd 大模型目录pip install -r requirements.txt# 进入python命令行python
from transformers import AutoModelForCausalLM, AutoTokenizerimport torchtokenizer  AutoTokenizer.from_pretrained(checkpoint, trust_remote_codeTrue)model  AutoModelForCausalLM.from_pretrained(checkpoint, trust_remote_codeTrue, torch_dtypetorch.float16)model.to(device)inputs  tokenizer.encode(现在我是javascript工程师需要用nextjs实现文件上传请你给出实现方案, return_tensorspt).to(device)outputs  model.generate(inputs, generation_configgeneration_config)output  tokenizer.decode(outputs[0], skip_special_tokensFalse).rsplit(assistant_token, 1)[1].rstrip(end_token)print(output)其实你会得到一个让你非常无语的答案哈哈哈。1•用户登录成功后点击头像可以进入个人中心页面。在个人中心页面有一个上传文件的按钮用户点击该按钮就可以选择要上传的文件并将其显示在页面上。import osdef upload_ file (request):......

遇到这种情况不要慌并不是大模型的能力有问题。这个引入一个初学大模型的概念 prompt 就是所谓的工程提示如果我们给出合理的提示功能标签那么大模型可以更好的识别问题。

常见的LLM通用提示标签有

<|system|> 系统级提示<|user|> 用户输入<|assistant|>ai回答<|end|>通用结束标签

那么以上问题通过合理的 prompt 之后是

#   “<|system|>你是一个javascript工程师<|end|>#       <|user|>请用nextjs实现文件上传功能。<|end|>”

inputs 这里应该是

inputs  tokenizer.encode(    <|system|>你是一个javascript工程师<|end|><|user|>请用nextjs实现文件上传功能。<|end|>, return_tensorspt).to(device)outputs  model.generate(inputs, generation_configgeneration_config)output  tokenizer.decode(outputs[0],   skip_special_tokensFalse).rsplit(assistant_token, 1)[1].rstrip(end_token)print(output)
前后端封装

前后端封装相对比较简单主要干的就是fastapi封装应用接口、大模型输出结果用接口返回给前端页面、前端页面收集到的问题和参数通过接口调用大模型。代码已传。

有点开发经验的同学应该能看懂该文主要是分享记录大模型基础环境的搭建就不赘述这部分内容啦。

标签:
声明:无特别说明,转载请标明本文来源!