LLama大模型初体验——Linux服务器部署LLama注意事项

本文分享在Linux服务器部署LLama大模型的注意事项。包括在请求访问时选择合适国家,安装运行依赖的命令,下载模型权重的修正及报错处理,运行前检查torch可用性及解决方法,还有运行模型demo时参数配置的注意点和报错解决办法。

LLama大模型初体验——Linux服务器部署LLama注意事项

一、基本步骤

基本步骤可以参考这个链接:超详细Llama2部署教程——个人gpt体验攻略!

llama开源仓库:https://github.com/facebookresearch/llama

二、注意事项

这里提一些教程链接中没有提及的注意点。

1、Request access to the next version of Llama

在“Request access to the next version of Llama”网页中,Country选择China的话会显示“Sorry, the download is not available in your region”,选择其他选项即可。

2、安装Llama2运行依赖

# 国内环境可以使用清华源加速
 pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

使用这条命令,下载速度更快。

3、下载模型权重

bash download.sh

教程链接中,这条命令有两个“bash”,在linux里面写一个“bash”即可。

我选择下载的是7B-chat,大小约12G,下载耗时大约50min。

下载进度到达99%时,可能报错(大概意思是download.sh文件最后一行运行出错)。重新运行此命令即可(重新运行此命令不会耗费很长时间)。

4、运行模型前,检查torch是否可用

检查方法:进入python环境,依次输入如下命令:

>> import torch
>> torch.cuda.is_available()

如果返回为True,表示torch可用;

如果返回为False,做如下步骤:

①检查安装的pytorch版本与cuda版本是否匹配(可在官网或搜索引擎查找与服务器配置的cuda版本对应的pytorch版本进行下载);

通过nvidia-smi查看cuda版本;通过python中torch.__version__查看pytorch版本

②确认pytorch版本与cuda版本匹配情况下返回仍为False时,使用conda list命令检查安装的pytorch是否为cpu版本。如果是,使用conda uninstall pytorch命令卸载pytorch,然后根据官网提供的安装命令重新安装gpu版本。

参考:torch.cuda.is_available函数总返回False

5、运行模型demo的参数配置

在llama文件夹里有2个py文件,分别用于展示Llama的文本补充(example-text-completion.py)和对话能力(example_chat_completion.py)。

在运行命令的时候,一些参数的配置需要注意,直接按照教程链接的写法会报一些错。

(1)运行example-text-completion.py

可运行的命令:

torchrun --nproc_per_node 1 example_text_completion.py --ckpt_dir llama-2-7b-chat/ --tokenizer_path tokenizer.model --temperature 0.6 --top_p 0.9 --max_gen_len 64 --max_seq_len 128 --max_batch_size 4

--nproc_per_node 1表示每个训练节点只使用1个GPU;

example_text_completion.py表示运行的py文件;

--ckpt_dir表示使用的模型的路径。注意:需要根据自己下载、使用的模型进行更改。如果打算使用的是7B模型,那么ckpt_dir参数是llama-2-7b/;如果打算使用的是7B-chat模型,那么ckpt_dir参数是llama-2-7b-chat/;其他模型同理。

--tokenizer_path表示使用的tokenizer的路径;

--temperature--top_p--max_gen_len--max_seq_len--max_batch_size都是需要配置的参数。此处的参数取值参考了仓库中generation.py中generate()函数的参数默认值。

教程中只配置了--max_seq_len--max_batch_size这两个参数,是会报错的。

运行成功后,虽然没有交互功能,但是会直接显示写在该py文件中的一些prompt的输出:
在这里插入图片描述

如果想要获取其他问题的输出,可以修改该py文件中的prompts变量。

因为有限制max_seq_len,所以输出长度有限,部分回答看起来并不完整。

(2)运行example-chat-completion.py

可运行的命令:

torchrun --nproc_per_node 1 example_chat_completion.py --ckpt_dir llama-2-7b-chat/ --tokenizer_path tokenizer.model --temperature 0.6 --top_p 0.9 --max_seq_len 512 --max_batch_size 4

参数解释同上。

教程中只配置了--max_seq_len--max_batch_size这两个参数,是会报错的。

另外,直接运行此命令可能会在assert bsz <= params.max_batch_size, (bsz, params.max_batch_size)这里报错。max_batch_size经人为设置为4,而bsz对应的是该py文件中dialogs这个列表变量的长度,在文件未被改动的情况下是6,所以会报错。

有两种解决方法:

①调大max_batch_size,大于6即可。但是这种做法可能面临CUDA out of memory.的问题而运行失败;

②删减dialogs列表元素,使其元素剩余个数小于4。

运行成功后,虽然没有交互功能,但是会直接显示写在该py文件中的一些dialogs的输出:
在这里插入图片描述

如果想要获取其他问题的输出,可以修改该py文件中的dialogs变量。

因为有限制max_seq_len,所以输出长度有限,部分回答看起来并不完整。

<think> 嗯,用户正在询问关于在泰山2280服务器搭配Atlas 300I推理卡上安装大模型的具体方法。这个问题涉及硬件环境适配和AI框架部署,需要分步骤说明。 用户可能正在为企业级AI应用部署做准备,这类组合常见于需要国产化替代的场景。考虑到泰山服务器基于ARM架构,而Atlas 300I采用昇腾芯片,整个部署流程会与传统x86环境有显著差异。 先从基础环境说起。ARM架构的Ubuntu系统需要特别注意驱动兼容性,昇腾社区提供的CANN工具包是关键。用户如果之前有NVIDIA环境的使用经验,可能会对驱动安装方式感到陌生——这里必须使用昇腾专用的.run安装包,且要严格匹配服务器OS版本。 模型转换环节最易出错。很多用户容易忽略ONNX中间格式的导出要求,PyTorch原始模型必须带动态轴配置导出。我见过不少案例因为忘了设置dynamic_axes参数,导致后续om模型转换失败。华为的ATC工具错误提示不够友好,这点需要特别提醒用户。 部署阶段的选择也很重要。MindSpore Serving虽然性能好但生态弱,FastAPI方案更灵活但牺牲了部分推理速度。如果用户需要部署类似LLaMA大模型,显存分配策略要重点说明——Atlas 300I的16GB显存对于百亿参数模型其实很紧张。 突然想到用户可能遇到模型不支持的问题。昇腾芯片当前对BF16支持有限,而多数开源大模型都用BF16,这里需要提醒用户注意格式转换。另外像LoRA这类适配器技术,在昇腾平台需要特定版本的CANN才能支持。 最后是实用建议部分。考虑到企业部署场景,应该强调容器化部署的优势。华为提供的MindX容器镜像能解决80%的依赖问题,但用户若需要自定义算子,就得面对复杂的编译环境配置了。 对了,还得补充监控方案。昇腾芯片的监控指标和NVIDIA完全不同,用户熟悉的nvidia-smi在这里不管用,得改用专用的hccn-tool工具。这个细节虽然小,但实际运维中特别关键。 </think> 在泰山2280服务器(ARM架构)搭配Atlas 300I推理卡的环境部署大模型,需结合华为昇腾生态工具链。以下是关键步骤及注意事项: ### 一、基础环境配置 1. **操作系统适配** - 安装**Ubuntu 20.04/22.04 (ARM版)** 或 **麒麟V10 (ARM)** - 验证驱动兼容性: ```bash lspci | grep -i ascend # 确认识别Atlas 300I卡 ``` 2. **安装昇腾工具链** - 下载**CANN Toolkit**(建议7.0+版本): ```bash wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/{version}/Ascend-cann-toolkit_{version}_linux-aarch64.run ``` - 安装依赖: ```bash sudo apt-get install gcc g++ make cmake zlib1g-dev python3-dev ``` - 执行安装(需指定OS架构): ```bash ./Ascend-cann-toolkit_*.run --install-path=/usr/local/Ascend --install ``` ### 二、模型转换与优化 1. **模型格式转换** - PyTorch模型 → ONNX → OM(昇腾模型) - 使用**ATC转换工具**: ```bash atc --model=model.onnx \ --framework=5 \ --output=model_om \ --soc_version=Ascend310 \ --input_format=NCHW ``` 2. **动态Shape配置**(针对变长输入) 创建`config.txt`: ```ini dynamic_dims: 1,4,8;1,16,32;1,64,128 # 示例:batch,seq_len组合 ``` ### 三、推理服务部署 1. **使用MindSpore Serving** ```python from mindspore_serving import server # 加载OM模型 servable_config = server.ServableStartConfig(servable_directory="model_dir") server.start_servables(servable_configs=servable_config) ``` 2. **或通过FastAPI封装** ```python from fastapi import FastAPI import acl # 昇腾ACL库 app = FastAPI() @app.post("/infer") async def infer(data: dict): # 初始化ACL资源 ret = acl.init() # 执行OM模型推理 output = model_execute(data["input"]) acl.finalize() return {"result": output} ``` ### 四、大模型适配要点 1. **显存优化策略** - 启用**动态显存复用**(`GE_USE_STATIC_MEMORY=0`) - 限制单卡并发数(避免OOM): ```bash export ASCEND_DEVICE_ID=0 # 指定卡号 export MAX_CONCURRENT_NUM=2 # 并发限制 ``` 2. **分布式推理支持** - 使用**HCCL通信库**实现多卡协同: ```python from hccl.manage.api import init_distributed init_distributed(rank_size=4) # 4卡并行 ``` ### 五、验证与监控 ```bash # 检查设备状态 npu-smi info # 性能分析工具 msprof --application="python infer.py" --output=./profile ``` ### 常见问题解决 - **模型转换失败**:检查ATC日志`~/ascend/log/*.log`,常见于算子不支持 - **推理性能低**:使用`msame`工具测试基线性能,调整`aicore_num`参数 - **显存溢出**:减小`batch_size`或启用`memory_size`参数限制显存 > **重要提示**: > 1. 优先选用华为ModelZoo已认证模型(如LLaMA-7B昇腾版) > 2. 混合精度需开启`allow_fp32_to_fp16=1` > 3. 最新工具链更新参考[昇腾社区](https://ascend.huawei.com)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值