1.前言
随着大模型技术在软件开发领域的深入应用,越来越多的开发者开始尝试在本地或云端环境部署代码生成模型。华为昇腾(Ascend)计算产业随着 CANN 软件栈的不断成熟,已成为运行各类开源 LLM 的重要算力底座。
本文将以 CodeLlama 这一广受欢迎的代码生成模型为核心,结合云端 Notebook 提供的在线开发环境,讲解如何在昇腾 NPU 环境中完成从依赖配置、模型加载到代码生成的完整流程。文章将通过结构化的流程讲解与可操作的示例代码,引导你在昇腾生态中顺利完成 CodeLlama 的部署与运行。
2.环境准备
云端 Notebook 提供了无需本地配置的交互式开发环境,支持直接在浏览器中编写、运行和调试代码,非常适合进行大模型试验与算子验证。
进入 Notebook 后,第一件事不是急着写代码,而是检查底层的 NPU 状态和软件栈版本。打开 Terminal,输入以下命令:
# 查看 NPU 状态,确认芯片健康及显存占用
npu-smi info
从输出结果中我们能够明确的看到版本号,以及功耗和温度等信息以及 NPU 等一切都是处于正常的状态,那么接下来的话我们就可以正式的去进行实验了。
首先我们先来进行一些必备的环境检查:
查看系统版本信息:
cat /etc/os-release
检查 python 环境:
python3 --version
python -c "import torch; print('PyTorch 版本:', torch.__version__)"
python -c "import torch_npu; print('torch_npu 版本:', torch_npu.__version__)"
当基础环境准备就绪后,我们就可以开始进行下一步了,在实际开发中,我们可以参考 CANN 官网,在官网中我们也可以找到快速入门的资料,查看我们需要安装的一些必备的依赖:
安装一些 python 库:
pip3 install attrs cython 'numpy>=1.19.2,<=1.24.0' decorator sympy cffi pyyaml pathlib2 psutil protobuf==3.20.0 scipy requests absl-py --user
环境配置是重中之重,当这些都做完后,我们再进行下一步。
3.CodeLlama 模型信息
在本次实战中,我选择使用 CodeLlama,因为它是专门针对代码生成和理解优化的大语言模型,能够很好地体现大模型在实际推理任务中的表现。
接下来我们先了解一下这个模型的一些核心的信息:
- 模型版本与规模:CodeLlama 提供 7B、13B、34B 等多个版本,我选择了 7B 或 13B进行测试,参数量适中,方便在昇腾 NPU 上运行。
- 模型能力:专注于代码生成、补全和理解,支持多种编程语言,如 Python、C++、Java 等。
- 训练特点:在大规模文本与代码数据上预训练,并经过指令微调,使模型能够根据提示生成高质量代码。
- 选择理由:这个模型既能满足生成任务的复杂性,又不会因为显存过大而难以部署,非常适合用来做 NPU 性能实测。
相关模型信息可参考 Hugging Face 官方文档。
4.模型加载
接下来环境配置和模型信息我们都有所了解了,那么现在我们就进入到模型加载的环节了。
在模型选择方面的话,我选择CodeLlama 7B-Instruct,它参数适中,既能体现推理性能,又不会因为显存不足导致无法运行。
加载 Tokenizer:
为了将输入文本转换为模型可处理的 token,我先加载 tokenizer:
from transformers AutoTokenizer
model_name =
tokenizer = AutoTokenizer.from_pretrained(model_name)


