How to Fine-Tune an LLM from Hugging Face? 笔记
使大模型适应特定领域的方法:fine-tuning微调、prompt engineering提示词工程、RAG检索增强生成。
大语言模型的微调
微调可以是全部微调,也可以是部分微调,由于大语言模型过于巨大,全部微调是不现实的,因此 Performance Efficient fine-tuning(PEFT) 是一种微调大语言模型的常用方法。
载入预训练的模型
Hugging Face 有很多有用的库和模块,例如 SFT, PEFT 和 AutoTokenizer。
在这里我们使用 Falcon-7b
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
from peft import LoraConfig
modelID = "tiiuae/falcon-7b"
LORA 是一种低资源微调大模型的方法。
准备数据集
SFT 可以直接使用 Hugging Face 中的数据集,当然也可以自己上传。
dataset = load_dataset("timdettmers/openassistant-guanaco", split="train")
根据需求来调整模型
除了可以使用部分微调的方法,我们还可以使用 quantization (神经网络量化)来减少参数量。