为了开始微调模型,一个适当配置且可复现的环境是必需的。此配置为模型微调的实践操作提供基础。它确保代码按预期运行,并且能够管理处理大型语言模型所需的特定库版本。必要的硬件考量以及 PyTorch 和 Hugging Face 生态系统的分步安装都将详述。微调环境的构成一个典型的 LLM 微调环境建立在多层软件和硬件之上。底层是硬件,最好是 GPU,它提供计算能力。在此之上,我们安装一个深度学习框架,例如 PyTorch。最后,我们使用 Hugging Face 生态系统中的专用库来简化模型加载、数据准备以及训练流程。digraph G { rankdir=TB; splines=ortho; node [style="filled", shape=box, fontname="Arial", margin="0.2,0.1"]; edge [fontname="Arial", fontsize=10]; subgraph cluster_hf { label="Hugging Face 生态系统"; bgcolor="#e9ecef"; fontcolor="#495057"; node [fillcolor="#a5d8ff", color="#1c7ed6"]; transformers [label="Transformers\n(模型与分词器)"]; datasets [label="Datasets\n(数据处理)"]; accelerate [label="Accelerate\n(硬件抽象层)"]; peft [label="PEFT\n(高效微调)"]; } subgraph cluster_base { label="核心基础设施"; bgcolor="#e9ecef"; fontcolor="#495057"; pytorch [label="PyTorch\n(张量与自动求导)", shape=Mrecord, fillcolor="#ffd8a8", color="#f76707"]; python [label="Python 3.10+", fillcolor="#ced4da", color="#495057"]; } subgraph cluster_gpu { label="硬件加速"; bgcolor="#e9ecef"; fontcolor="#495057"; cuda [label="NVIDIA GPU / CUDA", fillcolor="#b2f2bb", color="#37b24d"]; } python -> pytorch; pytorch -> transformers; cuda -> pytorch [label="提供支持"]; datasets -> transformers [label="提供数据给", style=dashed]; accelerate -> transformers [label="优化", style=dashed]; peft -> transformers [label="调整", style=dashed]; {rank=same; datasets; accelerate; peft} }用于微调的核心软件组件之间的关系。PyTorch 提供基本的张量操作,而 Hugging Face 库则为模型、数据和训练加速提供高级抽象。硬件考量:GPU 的作用微调大型语言模型是一项计算密集型任务。虽然在 CPU 上运行技术上可行,但过程会慢到不实用。为实现高效微调,强烈建议使用配备足够显存 (VRAM) 的强大 NVIDIA GPU。GPU:NVIDIA GPU 是深度学习的常用配置,得益于其 CUDA (Compute Unified Device Architecture) 平台,PyTorch 等深度学习框架正是利用此平台进行加速。VRAM:显存大小是一个主要考虑因素。它决定了模型最大尺寸和训练时可用的批处理大小。对于完全微调,您通常需要配备 24 GB 或更多显存的 GPU。对于更高效的方法,例如我们将在后续章节介绍的 LoRA,您通常可以使用配备 8 GB 至 16 GB 显存的 GPU。如果您无法使用本地 NVIDIA GPU,Google Colab、Kaggle Notebooks 等云平台,或 AWS、GCP 或 Azure 提供的专用云 GPU 实例都是很好的替代方案。步骤 1:创建 Python 虚拟环境在安装任何软件包之前,最佳实践是创建一个独立的虚拟环境。这可以避免与其他项目或系统级 Python 包的冲突。我们建议使用 Python 3.10 或更新版本。使用 Python 内置的 venv 模块,在您的终端中运行以下命令来创建并激活新环境:# 创建名为 'llm-finetune-env' 的虚拟环境 python -m venv llm-finetune-env # 激活环境 # 在 macOS 和 Linux 上: source llm-finetune-env/bin/activate # 在 Windows 上: .\llm-finetune-env\Scripts\activate激活后,您的终端提示符会改变,表明您当前正在 llm-finetune-env 环境中操作。步骤 2:安装支持 CUDA 的 PyTorchPyTorch 的安装命令取决于您的操作系统和 GPU 的 CUDA 版本。请务必安装与您已安装的 CUDA 版本相匹配的 PyTorch 版本。检查您的 CUDA 版本:如果您已安装 NVIDIA GPU 和驱动程序,可以通过在终端中运行 nvidia-smi 来检查您的 CUDA 版本。从 PyTorch 官网获取命令:访问 PyTorch 官方网站 并使用配置工具为您的系统生成正确的 pip 或 conda 命令。例如,要安装支持 CUDA 12.1 的 PyTorch,命令通常是:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121安装完成后,您可以运行此 Python 小脚本来检查 PyTorch 是否正确安装以及能否检测到您的 GPU。import torch if torch.cuda.is_available(): print(f"PyTorch 版本: {torch.__version__}") print(f"CUDA 是否可用: {torch.cuda.is_available()}") print(f"GPU: {torch.cuda.get_device_name(0)}") else: print("PyTorch 未安装 CUDA 支持。")成功的输出表明您的设置已为 GPU 加速训练做好准备。步骤 3:安装 Hugging Face 库PyTorch 安装完成后,下一步是添加 Hugging Face 生态系统的核心库。这些库提供工具来下载模型、管理数据集并高效执行微调过程。使用单个 pip 命令安装所需库:pip install transformers datasets accelerate peft我们简要回顾一下各软件包的作用:transformers:提供对数千个预训练模型及其分词器的访问,以及用于简化训练循环的 Trainer API。datasets:一个高效库,用于加载、处理和缓存大型数据集,这对于管理微调中使用的数据是必需的。accelerate:一个库,它简化 PyTorch 代码在不同硬件配置(CPU、单 GPU、多 GPU)上的运行,只需少量代码改动。peft:参数高效微调库,包含 LoRA 和 QLoRA 等方法的实现,我们将在第 4 章中使用这些方法。步骤 4:在 Hugging Face Hub 进行认证尽管 Hugging Face Hub 上的许多模型和数据集都是公开的,但有些(例如 Llama 系列模型)是“受限的”,要求您接受使用条款才能访问。使用访问令牌对环境进行认证,允许您的代码下载这些资源。在 HuggingFace.co 上创建账户。前往您的“设置”页面,然后找到“访问令牌”部分。生成新令牌,如果您计划稍后上传自己的模型,最好具有“写入”权限。获得令牌后,在终端中运行以下命令并在提示时粘贴令牌:huggingface-cli login此命令在本地安全存储您的令牌,允许库在需要时自动使用它。您的开发环境现已完全配置完毕。您已安装必要的深度学习框架和用于调整语言模型的专用库。有了这样的配置,您已准备好进入下一章,我们将在其中开始准备用于微调的数据集的实践工作。