项目简介
本项目聚焦于中文对话生成,提供大规模中文对话数据集LCCC(含LCCC-base和LCCC-large),并基于此数据集训练了一系列中文预训练模型,如CDial - GPTLCCC-base、CDial - GPTLCCC-large等。代码修改自TransferTransfo,借助HuggingFace Pytorch版的Transformers库实现预训练与微调,可用于中文对话生成的研究。
项目的主要特性和功能
- 高质量数据集:提供严格清洗后的LCCC数据集,过滤了脏字、特殊字符等噪声,区分单轮和多轮对话统计信息。
- 多样的预训练模型:提供多个不同版本的中文预训练GPT模型,预训练分中文小说数据和LCCC数据集两步进行。
- 灵活的训练方式:支持从源代码安装,可单GPU训练或分布式多GPU训练,提供多种训练参数设置。
- 丰富的评测指标:通过自动评价指标(如PPL、BLEU等)和人工评价指标(对话流畅性、上下文相关性等)对模型进行评测。
- 文本生成功能:可在测试数据上生成回复,也能在命令行中与模型交互。
安装使用步骤
安装
从源代码直接安装:
bash
cd CDial-GPT
pip install -r requirements.txt
准备数据和模型
- 准备预训练模型和fine - tuning所需使用的数据集,如 STC dataset 或项目目录中的toy数据 "data/toy_data.json"(数据中包含英文需按字母分割,如:h e l l o)。
bash git lfs install git clone https://huggingface.co/thu-coai/CDial-GPT_LCCC-large # 您可自行下载模型或者OpenAIGPTLMHeadModel.from_pretrained("thu-coai/CDial-GPT_LCCC-large")
可使用如下链接下载STC的训练集和验证集:
训练模型
- 单GPU训练:
bash python train.py --pretrained --model_checkpoint thu-coai/CDial-GPT_LCCC-large --data_path data/STC.json --scheduler linear
- 分布式8块GPU训练:
bash python -m torch.distributed.launch --nproc_per_node=8 train.py --pretrained --model_checkpoint thu-coai/CDial-GPT_LCCC-large --data_path data/STC.json --scheduler linear
若系统内存有限,可使用train_path
参数切片读取纯文本文件,使用时需将data_path
置空。
生成文本
- 在测试数据上生成回复:
bash python infer.py --model_checkpoint YOUR_MODEL_PATH --datapath data/STC_test.json --out_path STC_result.txt
可使用如下链接下载STC的测试集: - 在命令行中与模型进行交互:
bash python interact.py --model_checkpoint YOUR_MODEL_PATH
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】