littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于PyTorch和HuggingFace Transformers框架的中文对话预训练模型项目

项目简介

本项目聚焦于中文对话生成,提供大规模中文对话数据集LCCC(含LCCC-base和LCCC-large),并基于此数据集训练了一系列中文预训练模型,如CDial - GPTLCCC-base、CDial - GPTLCCC-large等。代码修改自TransferTransfo,借助HuggingFace Pytorch版的Transformers库实现预训练与微调,可用于中文对话生成的研究。

项目的主要特性和功能

  1. 高质量数据集:提供严格清洗后的LCCC数据集,过滤了脏字、特殊字符等噪声,区分单轮和多轮对话统计信息。
  2. 多样的预训练模型:提供多个不同版本的中文预训练GPT模型,预训练分中文小说数据和LCCC数据集两步进行。
  3. 灵活的训练方式:支持从源代码安装,可单GPU训练或分布式多GPU训练,提供多种训练参数设置。
  4. 丰富的评测指标:通过自动评价指标(如PPL、BLEU等)和人工评价指标(对话流畅性、上下文相关性等)对模型进行评测。
  5. 文本生成功能:可在测试数据上生成回复,也能在命令行中与模型交互。

安装使用步骤

安装

从源代码直接安装: bash cd CDial-GPT pip install -r requirements.txt

准备数据和模型

  1. 准备预训练模型和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】