许可协议: cc-by-nc-sa-4.0
数据集:
- NorGLM/NO-CNN-DailyMail
语言:
- '挪威语'
任务标签: 文本摘要
模型卡片
NorGPT-3B-summarization-peft 是在NorGPT-3B模型基础上,采用RLHF策略在NO-CNN-DailyMail数据集上训练得到的。
不同于原始RLHF流程的第二步,我们通过NorBERT模型计算生成文本与人工标注摘要(黄金摘要)之间的语义相似度来训练奖励模型。与黄金摘要余弦相似度更高的生成摘要将在奖励模型训练中获得更高评分。
提示词格式:
概括文章内容:\\n{文章正文} |||\\n{标准摘要}
推理提示词:
概括文章内容:\\n{文章正文} |||\\n
训练数据划分
RLHF三阶段训练数据划分:
|
样本数 |
第一阶段 |
61181 |
第二阶段 |
16798 |
第三阶段 |
9758 |
运行模型
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "NorGLM/NorGPT-3B-rfhl-summarization"
tokenizer = AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map='auto',
torch_dtype=torch.bfloat16
)
测试集推理
加载模型在NO-CNN-DailyMail测试集上进行评估:
def generate_texts(model, tokenizer, prompts, max_seq_length=200, do_sample=True, top_p=0.95, top_k=10):
results = []
cnt = 0
for prompt in prompts:
cnt += 1
pro_len = len(prompt.split())
if pro_len>1024:
results.append('')
continue
prompt = '概括文章内容:\\n' + prompt + ' |||\\n'
model_inputs = tokenizer(prompt, return_tensors='pt').to(torch_device)
output = model.generate(**model_inputs, do_sample=False, max_new_tokens=max_seq_length)
result = tokenizer.decode(output[0], skip_special_tokens=True)
result = result.split("|||\\n")[-1]
results.append(result)
return results
print("--加载评估数据集--")
eval_data = load_dataset("NorGLM/NO-CNN-DailyMail", data_files="test.csv")
prompts = eval_data['train']['article']
positive_samples = eval_data['train']['positive_sample']
print("--生成预测结果--")
model.eval()
output_file = <输出文件名>
with torch.no_grad():
results = generate_texts(model, tokenizer, prompts)
df = pd.DataFrame({'文章':prompts, '生成文本':results, '标准摘要':positive_samples})
print("保存结果至CSV文件...")
df.to_csv(output_file)
引用信息
如果觉得我们的工作有帮助,请引用论文:
@article{liu2023nlebench+,
title={NLEBench+ NorGLM: 挪威语生成式语言模型的综合实证分析与基准数据集},
author={刘鹏 and 张乐美 and 法鲁普·特杰·尼森 and 劳夫拉克·埃文·W and 英瓦尔森·琼·埃斯彭 and 艾德·西蒙 and 古拉·琼·阿特勒 and 杨志荣},
journal={arXiv预印本 arXiv:2312.01314},
year={2023}
}