1. 环境准备:满足基础配置要求
venv
或conda
)隔离依赖,避免冲突。2. 虚拟环境配置:隔离项目依赖
使用Python虚拟环境管理工具(如venv
或conda
)创建独立环境,防止依赖冲突:
python3 -m venv llama3_env # 创建虚拟环境
source llama3_env/bin/activate # 激活环境(Linux/macOS)
conda create -n llama3 python=3.9 # 创建conda环境
conda activate llama3 # 激活环境
激活后,所有后续安装的库都会限制在该环境中,不影响系统其他项目。
3. 模型下载:选择官方或可信渠道
ollama run llama3 # 下载并运行8B模型(默认)
ollama run llama3:70b # 下载并运行70B模型(需更多资源)
Ollama会自动处理模型下载、依赖安装和环境配置,适合新手快速上手。
4. 依赖安装:核心库与环境适配
pip
安装PyTorch(需匹配CUDA版本,如CUDA 11.8)及Transformers库:pip install torch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia # 匹配CUDA 11.8
pip install transformers # 提供模型加载与推理接口
bitsandbytes
(量化支持)、peft
(参数高效微调)、trl
(强化学习工具包)等库:pip install bitsandbytes peft trl
import torch
print(torch.cuda.is_available()) # 应返回True
print(torch.version.cuda) # 应与安装的CUDA版本一致
5. 模型加载与推理:基础与高级设置
使用Transformers库加载本地模型(假设模型解压至./llama3
目录),并进行简单文本生成:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "./llama3" # 模型本地路径
tokenizer = AutoTokenizer.from_pretrained(model_path) # 加载分词器
model = AutoModelForCausalLM.from_pretrained(model_path) # 加载模型
input_text = "今天的天气怎么样?"
inputs = tokenizer(input_text, return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu") # 输入转Tensor并移至GPU
output = model.generate(**inputs, max_length=50, temperature=0.7) # 生成文本(max_length控制长度,temperature控制随机性)
print("生成的文本:", tokenizer.decode(output[0], skip_special_tokens=True)) # 解码输出(去除特殊token)
temperature
(0-1,值越大越随机)、top_p
(核采样阈值,如0.9)、max_length
(生成文本长度)等参数优化输出质量;tokenizer
的padding=True
和truncation=True
参数合并输入,提高效率:batch_inputs = tokenizer(["输入文本1", "输入文本2"], return_tensors="pt", padding=True, truncation=True).to(device)
batch_output = model.generate(**batch_inputs, max_length=50)
6. 性能优化:提升推理效率
model.to("cuda")
和inputs.to("cuda")
将模型与输入移至GPU);bitsandbytes
库进行4-bit或8-bit量化,减少内存占用(如8B模型量化后仅需约5GB显存):from transformers import BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16) # 4-bit量化
model = AutoModelForCausalLM.from_pretrained(model_path, quantization_config=bnb_config)
peft
库的LoRA(低秩自适应)技术,冻结原模型参数,仅训练少量适配层,减少计算量(适用于微调场景);7. 可选部署方式:简化操作
ollama run llama3
);from_pretrained
直接加载云端模型(无需本地存储,适合临时使用)。