手把手教你微调一个中文情感分析模型

Lisa Tan | 2026-08-09T11:06:00 | Python, AI

用HuggingFace Trainer微调BERT做中文情感分析,从数据准备到模型评估全流程

# 手把手教你微调一个中文情感分析模型 项目需要分析用户评论情感,通用模型效果不好,自己微调了一个,准确率从72%提到93%。 ## 数据准备 ```python from datasets import Dataset # 准备训练数据(标注好的评论) data = { "text": [ "这个产品太好用了,强烈推荐!", "垃圾,退货退款", "一般般吧,没什么特别的", # ... 更多数据 ], "label": [2, 0, 1] # 0=负面, 1=中性, 2=正面 } dataset = Dataset.from_dict(data) # 切分训练集和验证集 dataset = dataset.train_test_split(test_size=0.2) ``` ## 模型微调 ```python from transformers import ( AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer ) # 加载预训练的中文BERT model_name = "bert-base-chinese" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained( model_name, num_labels=3 ) # tokenize def tokenize_fn(examples): return tokenizer(examples["text"], padding="max_length", truncation=True, max_length=128) tokenized = dataset.map(tokenize_fn, batched=True) # 训练配置 args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=16, learning_rate=2e-5, evaluation_strategy="epoch" ) trainer = Trainer(model=model, args=args, train_dataset=tokenized["train"], eval_dataset=tokenized["test"]) trainer.train() ``` 3个epoch大约跑10分钟(单卡3060),验证集准确率93%。比调API便宜多了,而且数据不用上传到外部服务器。

← Back to Blog