训练模型(微调)
1. 安装必要的依赖库
py !pip3 install -q -U bitsandbytes==0.42.0 !pip3 install -q -U peft==0.8.2 !pip3 install -q -U trl==0.7.10 !pip3 install -q -U accelerate==0.27.1 !pip3 install -q -U datasets==2.17.0 !pip3 install -q -U transformers==4.38.0
2. Python脚本引入必要的依赖项
py import os import transformers import torch from google.colab import userdata from datasets import load_dataset from trl import SFTTrainer from peft import LoraConfig from transformers import AutoTokenizer, AutoModelForCausalLM from transformers import BitsAndBytesConfig, GemmaTokenizer
3. 引入Huggingface token到环境变量
py os.environ["HF_TOKEN"] = userdata.get('HF_TOKEN')
4. 配置4位量化模型
设置一个4位量化模型的配置。首先指定了模型的ID为"google/gemma-2b"。然后创建了一个BitsAndBytesConfig对象,这是用来设置模型的参数。
py model_id = "google/gemma-2b" bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16 )
参数解释
load_in_4bit
设置为True,表示在加载模型时使用4位量化。这种量化可以减少模型的存储和计算需求,从而提高效率。bnb_4bit_quant_type
设置为"nf4",这是一个特定的4位量化类型。bnb_4bit_compute_dtype
设置为torch.bfloat16,这是一种半精度浮点数数据类型,用于在计算过程中保存4位量化的结果。这种数据类型可以进一步减少计算需求,提高效率。
5. 加载并配置预训练模型
这段代码主要是在加载一个预训练模型,并进行一些配置。首先,使用AutoTokenizer.from_pretraine