CDial-GPT
CDial-GPT 是一个专注于中文短文本对话的大规模开源项目,核心提供了高质量的 LCCC 数据集以及基于此训练出的中文对话预训练模型(类 GPT 架构)。它主要解决了中文对话领域长期面临的高质量训练数据匮乏、噪声过多导致模型生成效果不佳的痛点。通过一套结合人工规则与机器学习分类器的严格清洗流程,CDial-GPT 有效去除了脏话、无关字符及逻辑不通的上下文,确保了数据的纯净度与连贯性。
该项目特别适合自然语言处理领域的研究人员、AI 开发者以及希望构建中文聊天机器人的技术团队使用。无论是进行模型预训练、微调实验,还是直接加载用于下游任务,CDial-GPT 都提供了坚实的基础。其独特亮点在于发布了不同规模的清洗数据集(LCCC-base 与 LCCC-large),并兼容 Hugging Face Transformers 生态,支持便捷的代码复用与多轮对话建模。此外,项目还持续更新,提供了多模态对话数据扩展及可视化演示接口,是中文对话系统研发中不可或缺的基础设施。
使用场景
某电商初创团队正致力于开发一款能理解本土用户习惯的智能客服机器人,以应对大促期间海量的咨询请求。
没有 CDial-GPT 时
- 语料质量参差不齐:团队只能爬取未经清洗的网络对话数据,模型经常学习到脏话、广告营销内容或语法不通的语句,导致回复显得粗鲁且不可控。
- 多轮交互能力弱:由于缺乏高质量的多轮对话样本,机器人往往“记不住”上下文,用户稍微转换话题或追问细节,它就答非所问,被迫重置对话。
- 中文语境理解偏差:直接套用国外开源模型或未针对中文优化的基座,难以准确捕捉中文特有的缩略语、网络梗及情感色彩,回复充满“翻译腔”,缺乏人情味。
- 冷启动成本高昂:从零开始预训练一个懂中文的模型需要巨大的算力投入和漫长的时间周期,初创团队难以承担如此高的试错成本。
使用 CDial-GPT 后
- 对话纯净度显著提升:利用 LCCC 数据集中严格的过滤机制(去除噪声、脏词及无关上下文),机器人输出的内容更加规范、安全,大幅降低了人工审核压力。
- 长程记忆与逻辑连贯:基于包含数百万轮多轮对话的数据集微调,CDial-GPT 让机器人能精准追踪用户意图,在复杂的售后纠纷处理中也能保持上下文逻辑顺畅。
- 地道中文表达自然流畅:模型深度学习了微博等真实社交场景下的中文短文本特征,能够熟练使用本土化表达方式,使客服语气更亲切,用户满意度明显上升。
- 快速落地与迭代:团队直接加载 HuggingFace 上的预训练模型进行微调,将原本数月的研发周期缩短至数周,迅速上线并验证了业务价值。
CDial-GPT 通过提供大规模清洗过的中文对话数据与预训练模型,彻底解决了中文智能对话系统面临的“数据脏、语境偏、训练难”三大核心痛点。
运行环境要求
- 未说明
训练时必需(支持单卡或多卡分布式训练),具体型号和显存大小未说明,需支持 CUDA
未说明(文中提到内存有限时可使用 train_path 参数切片读取数据)

快速开始
CDial-GPT
本项目提供了一个大规模中文对话数据集,并提供了在此数据集上的中文对话预训练模型(中文GPT模型),更多信息可参考我们的论文。
本项目代码修改自TransferTransfo,使用了HuggingFace Pytorch版的Transformers库, 可用于预训练与微调。
目录
News
- 2022-06-09: LCCC数据集现在可以通过huggingface的datasets库加载:
from datasets import load_dataset
dataset = load_dataset("lccc", "base") # 或 "large"
- 2022-04-26: 一个新的多模态对话数据集MMChat,欢迎大家使用。
- 2021-02-28: 一个对话数据清洗框架,欢迎大家提bug和加速优化算法,以及新的清洗功能等等。
- 2021-01-09: 实验室出版新书《现代自然语言生成》,欢迎大家阅读购买。
- 2020-11-20: 预训练模型新工作SentiLARE。本工作将词级别的语言学知识(包括词性和词的情感极性)引入预训练语言模型中,提出了一种适用于情感分析任务的语言表示模型SentiLARE,欢迎大家使用。
- 2020-10-18: 我们的论文《A Large-Scale Chinese Short-Text Conversation Dataset》获得了NLPCC2020 Best Student Paper Award。 🎉 🎉 🎉
- 2020-09-08: 感谢@xiejiachen所提供的可视化Web界面。
- 2020-09-02: 可用bert4keras加载TF版本的CDial-GPT模型,感谢苏剑林@bojone提供代码。
数据集概况
我们所提供的数据集LCCC(Large-scale Cleaned Chinese Conversation)主要包含两部分:
LCCC-base (百度网盘, Google Drive) 和
LCCC-large (百度网盘, Google Drive)。
我们设计了一套严格的数据过滤流程来确保该数据集中对话数据的质量。
这一数据过滤流程中包括一系列手工规则以及若干基于机器学习算法所构建的分类器。
我们所过滤掉的噪声包括:脏字脏词、特殊字符、颜表情、语法不通的语句、上下文不相关的对话等。
该数据集的统计信息如下表所示。 其中,我们将仅包含两个语句的对话称为“单轮对话”,我们将包含两个以上语句的对话称为“多轮对话”。 统计词表大小时使用 Jieba 分词。
| LCCC-base (百度网盘, Google Drive) |
单轮对话 | 多轮对话 |
|---|---|---|
| 总对话轮次 | 3,354,232 | 3,466,274 |
| 总对话语句 | 6,708,464 | 13,365,256 |
| 总字符数 | 68,559,367 | 163,690,569 |
| 词表大小 | 372,063 | 666,931 |
| 对话语句的平均词数 | 6.79 | 8.32 |
| 每轮对话的平均语句数 | 2 | 3.86 |
请注意, LCCC-base 数据集的清洗过程比 LCCC-large 更为严格,因此其规模也更小。
| LCCC-large (百度网盘, Google Drive) |
单轮对话 | 多轮对话 |
|---|---|---|
| 总对话轮次 | 7,273,804 | 4,733,955 |
| 总对话语句 | 14,547,608 | 18,341,167 |
| 总字符数 | 162,301,556 | 217,776,649 |
| 词表大小 | 662,514 | 690,027 |
| 对话语句的评价词数 | 7.45 | 8.14 |
| 每轮对话的平均语句数 | 2 | 3.87 |
LCCC-base 数据集中的原始对话数据来自于微博对话,LCCC-large 数据集中的原始对话数据在这些微博对话的基础上融合了其他开源对话数据集:
| 数据集 | 总对话轮次 | 对话示例 |
|---|---|---|
| Weibo Corpus | 79M | Q:火锅我在重庆成都吃了七八顿火锅 A: 哈哈哈哈!那我的嘴巴 可能要烂掉! |
| PTT Gossiping Corpus | 0.4M | Q:为什么乡民总是欺负国高中生呢QQ A:如果以为选好科系就会变成比尔盖兹那不如退学吧 |
| Subtitle Corpus | 2.74M | Q:京戏里头的人都是不自由的 A:他们让人拿笼子给套起来了了 |
| Xiaohuangji Corpus | 0.45M | Q:你谈过恋爱么 A:谈过,哎,别提了,伤心.. |
| Tieba Corpus | 2.32M | Q:前排,鲁迷们都起床了吧 A:标题说助攻,但是看了那球,真是活生生的讽刺了 |
| Qingyun Corpus | 0.1M | Q:看来你很爱钱 A:噢是吗?那么你也差不多了 |
| Douban Conversation Corpus | 0.5M | Q:看原版英文电影学纯正英语 A:大爱老友记反复看了好多次 了 Q:一样光盘都快被我看花了 A:那你现在的英语应该不错了 |
| E-commerical Conversation Corpus | 0.5M | Q:这个会不会聚划算 A:暂时没有哦 Q:后期会不会有 A:不一定哦亲多多关注我们哦 |
| Chinese Chat Corpus | 0.5M | Q: 我今天腿都废了,你们过节,我搬砖 A: 辛苦啊,圣诞节还去赚大钱了加油 Q: 毕竟是没男朋友的人,什么节都是一样的 |
预训练模型概况
模型
我们同时提供了一系列中文预训练模型(中文GPT模型),这些模型的预训练过程分为两步,首先在一个中文小说数据上预训练,然后在LCCC数据集上预训练。
我们沿用了 TransferTransfo 中的数据预处理设定,既将所有的对话历史拼接为一个句子,然后使用这个句子作为模型的输入,预测对话回复。我们模型的输入除了各个词的向量表示外,还包括发话人向量表示和位置向量表示。

| 预训练模型 | 参数数量 | 预训练所使用数据 | 描述 |
|---|---|---|---|
| GPTNovel | 95.5M | 中文小说数据 | 基于中文小说数据所构建中文预训练GPT模型 (该小说数据中共包括1.3B个字) |
| CDial-GPTLCCC-base | 95.5M | LCCC-base | 在GPTNovel的基础上,使用 LCCC-base 训练得到的中文预训练GPT模型 |
| CDial-GPT2LCCC-base | 95.5M | LCCC-base | 在GPTNovel的基础上,使用 LCCC-base 训练得到的中文预训练GPT2模型 |
| CDial-GPTLCCC-large | 95.5M | LCCC-large | 在GPTNovel的基础上,使用 LCCC-large 训练得到的中文预训练GPT模型 |
安装
从源代码直接安装:
git clone https://github.com/thu-coai/CDial-GPT.git
cd CDial-GPT
pip install -r requirements.txt
快速入门
步骤1:准备预训练模型和用于微调的数据集(如STC数据集或项目目录中的玩具数据“data/toy_data.json”)。请注意,如果数据中包含英文,需按字母分割,例如:h e l l o。
# 下载STC数据集中的训练集和验证集,并将其解压至“data_path”目录(若使用STC数据集进行微调)
git lfs install
git clone https://huggingface.co/thu-coai/CDial-GPT_LCCC-large # 您也可自行下载模型,或使用OpenAIGPTLMHeadModel.from_pretrained("thu-coai/CDial-GPT_LCCC-large")
注:可使用以下链接下载STC的训练集和验证集:百度网盘,Google Drive
步骤2:训练模型
python train.py --pretrained --model_checkpoint thu-coai/CDial-GPT_LCCC-large --data_path data/STC.json --scheduler linear # 使用单个GPU进行训练
或者
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 # 以分布式方式在8块GPU上训练
我们的训练脚本还提供了train_path参数,用户可通过该参数以切片形式读取纯文本文件。若系统内存有限,建议使用此参数来加载训练数据。若使用train_path,则需将data_path置空。
步骤3:生成文本
# YOUR_MODEL_PATH:您要使用的模型路径,每次微调后的模型会保存在./runs/目录下
python infer.py --model_checkpoint YOUR_MODEL_PATH --datapath data/STC_test.json --out_path STC_result.txt # 在测试数据上生成回复
python interact.py --model_checkpoint YOUR_MODEL_PATH # 在命令行中与模型交互
注:可使用以下链接下载STC的测试集:百度网盘,Google Drive
训练脚本参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| model_checkpoint | str | "" | 模型文件的路径或URL(预训练模型及配置、词汇表文件的目录) |
| pretrained | bool | False | 若为False,则从零开始训练模型 |
| data_path | str | "" | 数据集路径 |
| dataset_cache | str | default="dataset_cache" | 数据集缓存的路径或URL |
| train_path | str | "" | 分布式数据集的训练集路径 |
| valid_path | str | "" | 分布式数据集的验证集路径 |
| log_file | str | "" | 将日志输出到该路径下的文件 |
| num_workers | int | 1 | 数据加载的子进程数量 |
| n_epochs | int | 70 | 训练轮数 |
| train_batch_size | int | 8 | 训练批次大小 |
| valid_batch_size | int | 8 | 验证批次大小 |
| max_history | int | 15 | 历史对话中保留的轮次数量 |
| scheduler | str | "noam" | 优化器方法 |
| n_emd | int | 768 | 配置文件中的n_emd数量(适用于noam) |
| eval_before_start | bool | False | 若为真,则在训练前开始评估 |
| warmup_steps | int | 5000 | 热身步数 |
| valid_steps | int | 0 | 每X步执行一次验证,若不为0则启用 |
| gradient_accumulation_steps | int | 64 | 多步累积梯度 |
| max_norm | float | 1.0 | 梯度裁剪范数 |
| device | str | "cuda"(若torch.cuda.is_available())或"cpu" | 运行设备(cuda或cpu) |
| fp16 | str | "" | 设置为O0、O1、O2或O3以进行fp16训练(参见apex文档) |
| local_rank | int | -1 | 分布式训练的本地排名(-1:非分布式) |
评测结果
我们使用STC数据集对微调后的对话预训练模型进行了评测。 数据集包括:
- 训练集/验证集:百度网盘,Google Drive
- 测试集:百度网盘,Google Drive
所有回复均采用Nucleus Sampling方法采样生成(p=0.9,temperature=0.7)。
自动评价指标
| 模型 | 模型大小 | PPL | BLEU-2 | BLEU-4 | Dist-1 | Dist-2 | Greedy Matching | Embedding Average |
|---|---|---|---|---|---|---|---|---|
| Attn-Seq2seq | 73M | 34.20 | 3.93 | 0.90 | 8.5 | 11.91 | 65.84 | 83.38 |
| Transformer | 113M | 22.10 | 6.72 | 3.14 | 8.8 | 13.97 | 66.06 | 83.55 |
| GPT2-chitchat | 88M | - | 2.28 | 0.54 | 10.3 | 16.25 | 61.54 | 78.94 |
| GPTNovel | 95.5M | 21.27 | 5.96 | 2.71 | 8.0 | 11.72 | 66.12 | 83.34 |
| GPTLCCC-base | 95.5M | 18.38 | 6.48 | 3.08 | 8.3 | 12.68 | 66.21 | 83.54 |
| GPT2LCCC-base | 95.5M | 22.76 | 5.69 | 2.50 | 7.7 | 10.87 | 66.24 | 83.46 |
| GPTLCCC-large | 95.5M | 18.23 | 6.63 | 3.20 | 8.3 | 12.71 | 66.25 | 83.63 |
人工评价指标
我们为每个模型采样了200条回复,并通过外包平台邀请3位标注员对其对话流畅性、上下文相关性和回复多样性进行人工打分。每个维度的评分范围为2/1/0。更多细节请参阅我们的论文。
| 模型 | +2 | +1 | +0 | Kappa |
|---|---|---|---|---|
| Attn-Seq2Seq | 27.1% | 21.4% | 51.4% | 0.4544 |
| Transformer | 42.4% | 23.6% | 34.0% | 0.4429 |
| GPT2-chitchat | 24.3% | 19.1% | 56.6% | 0.3941 |
| GPTLCCC-base | 46.7% | 21.8% | 31.5% | 0.3954 |
| GPTLCCC-large | 48.6% | 24.5% | 27.0% | 0.4203 |
不良回复统计
我们随机采样了1000条对话回复,并统计了其中的不良回复:
| 包含重复语句 | 包含脏字 | 其他不良回复 |
|---|---|---|
| 23 | 9 | 2 |
GPTLCCC-large模型的生成示例
我们在STC数据集上微调了GPTLCCC-large模型的参数,并使用该微调后的模型生成了如下对话示例:
| 发帖内容 | 回复内容 |
|---|---|
| 这 居 然 是 北 京 不 是 哈 尔 滨 。 | 哈 尔 滨 的 天 气 好 像 比 北 京 好 点 , 我 这 里 就 是 小 雨 , 白 天 都 是 大 风 |
| 运 营 商 校 园 广 告 大 P K , 太 欢 乐 了 ! 哈 哈 哈 。 | 我 以 为 是 马 云 的 广 告 。 |
| D e l s a S p o s a 糖 果 色 系 列 婚 纱 , 粉 蓝 红 紫 , 俏 皮 又 清 新 , 你 喜 欢 吗 ? | 最 后 一 件 太 美 了 , 美 的 不 像 话 ! |
我们还使用上述微调后的模型得到了如下交互结果:
| 用户发言 | 模型回复 |
|---|---|
| 用户:别爱我没结果 | 模型:没 结 果 的 爱 是 多 么 的 痛 。 |
| 用户:但是爱过就可以了 | 模型:有 时 候 ,爱 情 就 是 一 场 游 戏 。 |
| 用户:输的总是我 | 模型:我 爱 你 , 就 像 我 爱 你 一 样 。 |
| 用户:你可拉到吧 | 模型:你 可 拉 到 吧 。 |
| 用户:别学我说话 | 模型:我说 话 就 是 你 不 行 。 |
| 用户:逼我动手是吧 | 模型:不 , 是 逼 你 动 口 是 吧 |
作者
Yida Wang, Pei Ke, Yinhe Zheng, Kaili Huang, Yong Jiang, Xiaoyan Zhu, Minlie Huang
致谢
Zuoxian Ye, Yao Wang, Yifan Pan
免责声明
本项目提供的LCCC数据集和预训练对话模型仅限科研用途。LCCC数据集中的对话来源于不同渠道,尽管我们设计了一套严格的数据清洗流程,但仍无法保证所有不当内容已被过滤。数据中包含的所有内容和观点均与本项目作者无关。 本项目提供的模型和代码仅为完整对话系统的一部分,我们提供的解码脚本也仅限科研用途。使用本项目中的模型和脚本生成的一切对话内容均与本项目作者无关。
引用
如果您认为我们的项目对您有所帮助,请引用我们的论文:
@inproceedings{wang2020chinese,
title={A Large-Scale Chinese Short-Text Conversation Dataset},
author={Wang, Yida and Ke, Pei and Zheng, Yinhe and Huang, Kaili and Jiang, Yong and Zhu, Xiaoyan and Huang, Minlie},
booktitle={NLPCC},
year={2020},
url={https://arxiv.org/abs/2008.03946}
}
CDial-GPT
本项目提供了一个大规模清洗过的中文对话数据集,以及基于该数据集预训练的中文GPT模型。更多详情请参阅我们的论文。
我们的预训练代码基于Hugging Face库中的TransferTransfo模型进行改编。本仓库同时提供了用于预训练和微调的代码。
目录
数据集
我们发布了一个大规模清洗过的中文对话语料库(LCCC),包含:
LCCC-base(百度网盘,Google Drive) 和
LCCC-large(百度网盘,Google Drive)。
我们设计了一套严格的清洗流程以确保语料的质量。该流程包括一系列规则和基于分类器的过滤机制。诸如冒犯性或敏感词汇、特殊符号、表情符号、语法错误的句子以及不连贯的对话等噪声均被过滤掉。
以下是我们的语料统计信息。仅包含两句对话的视为“单轮”,超过三句的则视为“多轮”。词汇量以词为单位计算,并使用Jieba对每句话进行分词。
| LCCC-base (百度网盘,Google Drive) |
单轮 | 多轮 |
|---|---|---|
| 会话数 | 3,354,382 | 3,466,607 |
| 发言次数 | 6,708,554 | 13,365,268 |
| 字符数 | 68,559,727 | 163,690,614 |
| 词汇量 | 372,063 | 666,931 |
| 每句平均词数 | 6.79 | 8.32 |
| 每会话平均发言数 | 2 | 3.86 |
需要注意的是,与LCCC-large相比,LCCC-base采用了更为严格的清洗规则。
| LCCC-large (百度网盘,Google Drive) |
单轮 | 多轮 |
|---|---|---|
| 会话数 | 7,273,804 | 4,733,955 |
| 发言次数 | 14,547,608 | 18,341,167 |
| 字符数 | 162,301,556 | 217,776,649 |
| 词汇量 | 662,514 | 690,027 |
| 每句平均词数 | 7.45 | 8.14 |
| 每会话平均发言数 | 2 | 3.87 |
LCCC-base的原始对话来源于我们从微博上爬取的微博语料库;而LCCC-large的原始对话则是结合了多个对话数据集以及微博语料库构建而成:
| 数据集 | 会话数 | 示例 |
|---|---|---|
| 微博语料库 | 79M | Q:火锅我在重庆成都吃了七八顿火锅 A: 哈哈哈哈!那我的嘴巴 可能要烂掉! |
| PTT八卦语料库 | 0.4M | Q:为什么乡民总是欺负国高中生呢QQ A:如果以为选好科系就会变成比尔盖兹那不如退学吧 |
| 字幕语料库 | 2.74M | Q:京戏里头的人都是不自由的 A:他们让人拿笼子给套起来了了 |
| 小黄鸡语料库 | 0.45M | Q:你谈过恋爱么 A:谈过,哎,别提了,伤心.. |
| 贴吧语料库 | 2.32M | Q:前排,鲁迷们都起床了吧 A:标题说助攻,但是看了那球,真是活生生的讽刺了 |
| 青云语料库 | 0.1M | Q:看来你很爱钱 A:噢是吗?那么你也差不多了 |
| 豆瓣对话语料库 | 0.5M | Q:看原版英文电影学纯正英语 A:大爱老友记反复看了好多次 了 Q:一样光盘都快被我看花了 A:那你现在的英语应该不错了 |
| 电商对话语料库 | 0.5M | Q:这个会不会聚划算 A:暂时没有哦 Q:后期会不会有 A:不一定哦亲多多关注我们哦 |
| 中文聊天语料库 | 0.5M | Q: 我今天腿都废了,你们过节,我搬砖 A: 辛苦啊,圣诞节还去赚大钱了加油 Q: 毕竟是没男朋友的人,什么节都是一样的 |
预训练
模型
我们还发布了一系列中文GPT模型,这些模型首先在中文小说数据集上进行预训练,随后在我们的LCCC数据集上进行后续训练。
与TransferTransfo类似,我们将所有对话历史拼接成一个上下文句子,并用这个句子来预测回复。我们的模型输入包括每个词的词嵌入、说话人嵌入以及位置嵌入。

| 模型 | 参数量 | 预训练数据集 | 描述 |
|---|---|---|---|
| GPTNovel | 95.5M | 中文小说 | 在中文小说数据集(1.3B词)上预训练的GPT模型(注:我们不提供该模型的详细信息) |
| CDial-GPTLCCC-base | 95.5M | LCCC-base | 基于GPTNovel在LCCC-base数据集上进行后续训练的GPT模型 |
| CDial-GPT2LCCC-base | 95.5M | LCCC-base | 基于GPTNovel在LCCC-base数据集上进行后续训练的GPT2模型 |
| CDial-GPTLCCC-large | 95.5M | LCCC-large | 基于GPTNovel在LCCC-large数据集上进行后续训练的GPT模型 |
安装
可从源代码安装:
git clone https://github.com/thu-coai/CDial-GPT.git
cd CDial-GPT
pip install -r requirements.txt
快速入门
步骤1:准备微调数据(例如,STC数据集或我们仓库中的“data/toy_data.json”)以及预训练模型:
# 下载STC数据集并解压到"data_path"目录(在STC上进行微调)
git lfs install
git clone https://huggingface.co/thu-coai/CDial-GPT_LCCC-large # 或者使用OpenAIGPTLMHeadModel.from_pretrained("thu-coai/CDial-GPT_LCCC-large")
注:您可以从以下链接下载STC的训练集和验证集:(百度网盘, Google Drive)
步骤2:训练模型
python train.py --pretrained --model_checkpoint thu-coai/CDial-GPT_LCCC-large --data_path data/STC.json --scheduler linear # 单GPU训练
或者
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 # 在8张GPU上训练
注意:我们在训练脚本中还提供了train_path参数,用于读取纯文本格式的数据集,该数据集会被切片并以分布式方式处理。如果您的系统内存不足以容纳整个数据集,可以考虑使用此参数。(同时,请确保在使用train_path时将data_path参数留空)。
步骤3:推理模式
# YOUR_MODEL_PATH:用于生成的模型路径
python infer.py --model_checkpoint YOUR_MODEL_PATH --datapath data/STC_test.json --out_path STC_result.txt # 对语料库进行推理
python interact.py --model_checkpoint YOUR_MODEL_PATH # 在终端中交互
注:您可以从以下链接下载STC的测试集:(百度网盘, Google Drive)
训练参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| model_checkpoint | str | "" | 模型文件的路径或URL(包含预训练模型及配置、词汇表文件的目录) |
| pretrained | bool | False | 如果为False,则从头开始训练模型 |
| data_path | str | "" | 数据集的路径 |
| dataset_cache | str | 默认="dataset_cache" | 数据集缓存的路径或URL |
| train_path | str | "" | 分布式数据集的训练集路径 |
| valid_path | str | "" | 分布式数据集的验证集路径 |
| log_file | str | "" | 将日志输出到该路径下的文件 |
| num_workers | int | 1 | 数据加载的子进程数量 |
| n_epochs | int | 70 | 训练轮数 |
| train_batch_size | int | 8 | 训练时的批次大小 |
| valid_batch_size | int | 8 | 验证时的批次大小 |
| max_history | int | 15 | 历史对话中保留的前几次交互数量 |
| scheduler | str | "noam" | 优化器的方法 |
| n_emd | int | 768 | 配置文件中的n_emd数量(用于noam) |
| eval_before_start | bool | False | 如果为真,则在训练开始前先进行评估 |
| warmup_steps | int | 5000 | 热身步数 |
| valid_steps | int | 0 | 如果不为0,则每隔X步执行一次验证 |
| gradient_accumulation_steps | int | 64 | 多步累积梯度 |
| max_norm | float | 1.0 | 梯度裁剪范数 |
| device | str | "cuda" if torch.cuda.is_available() else "cpu" | 运行设备(cuda或cpu) |
| fp16 | str | "" | 设置为O0、O1、O2或O3以进行fp16训练(参见apex文档) |
| local_rank | int | -1 | 分布式训练的本地排名(-1:非分布式) |
评估
评估基于在STC数据集上微调后的模型所生成的结果进行。 (训练/验证集(百度网盘,Google Drive),测试集(百度网盘,Google Drive))。所有回复均采用Nucleus Sampling方案生成,阈值为0.9,温度为0.7。
自动评估
| 模型 | 模型规模 | PPL | BLEU-2 | BLEU-4 | Dist-1 | Dist-2 | 贪心匹配 | 嵌入平均 |
|---|---|---|---|---|---|---|---|---|
| Attn-Seq2seq | 73M | 34.20 | 3.93 | 0.90 | 8.5 | 11.91 | 65.84 | 83.38 |
| Transformer | 113M | 22.10 | 6.72 | 3.14 | 8.8 | 13.97 | 66.06 | 83.55 |
| GPT2-chitchat | 88M | - | 2.28 | 0.54 | 10.3 | 16.25 | 61.54 | 78.94 |
| GPTNovel | 95.5M | 21.27 | 5.96 | 2.71 | 8.0 | 11.72 | 66.12 | 83.34 |
| GPTLCCC-base | 95.5M | 18.38 | 6.48 | 3.08 | 8.3 | 12.68 | 66.21 | 83.54 |
| GPT2LCCC-base | 95.5M | 22.76 | 5.69 | 2.50 | 7.7 | 10.87 | 66.24 | 83.46 |
| GPTLCCC-large | 95.5M | 18.23 | 6.63 | 3.20 | 8.3 | 12.71 | 66.25 | 83.63 |
人工评估
我们还聘请了3位众包标注员,根据2/1/0评分标准,对每种模型的200个样本进行了流畅性、相关性和多样性方面的评估。更多详情请参阅我们的论文。
| 模型 | +2 | +1 | +0 | Kappa |
|---|---|---|---|---|
| Attn-Seq2Seq | 27.1% | 21.4% | 51.4% | 0.4544 |
| Transformer | 42.4% | 23.6% | 34.0% | 0.4429 |
| GPT2-chitchat | 24.3% | 19.1% | 56.6% | 0.3941 |
| GPTLCCC-base | 46.7% | 21.8% | 31.5% | 0.3954 |
| GPTLCCC-large | 48.6% | 24.5% | 27.0% | 0.4203 |
有害内容生成统计
我们随机选取了1000个生成样本,并统计了有害内容的生成情况:
| 重复 | 不雅词汇 | 其他不良情况 |
|---|---|---|
| 23 | 9 | 2 |
GPTLCCC-large 案例研究
STC 数据集生成的单轮示例(在 STC 上微调):
| 帖子 | 回复 |
|---|---|
| 这 居 然 是 北 京 不 是 哈 尔 滨 。 | 哈 尔 滨 的 天 气 好 像 比 北 京 好 点 , 我 这 里 就 是 小 雨 , 白 天 都 是 大 风 |
| 运 营 商 校 园 广 告 大 P K , 太 欢 乐 了 ! 哈 哈 哈 。 | 我 以 为 是 马 云 的 广 告 。 |
| D e l s a S p o s a 糖 果 色 系 列 婚 纱 , 粉 蓝 红 紫 , 俏 皮 又 清 新 , 你 喜 欢 吗 ? | 最 后 一 件 太 美 了 , 美 的 不 像 话 ! |
使用交互式脚本生成的多轮示例:
| 角色 | 回复 |
|---|---|
| 用户 | 别爱我没结果 |
| 机器人 | 没 结 果 的 爱 是 多 么 的 痛 。 |
| 用户 | 但是爱过就可以了 |
| 机器人 | 有 时 候 ,爱 情 就 是 一 场 游 戏 。 |
| 用户 | 输的总是我 |
| 机器人 | 我 爱 你 , 就 像 我 爱 你 一 样 。 |
| 用户 | 你可拉到吧 |
| 机器人 | 你 可 拉 到 吧 。 |
| 用户 | 别学我说话 |
| 机器人 | 我 说 话 就 是 你 不 行 。 |
| 用户 | 逼我动手是吧 |
| 机器人 | 不 , 是 逼 你 动 口 是 吧 |
作者
Yida Wang, Pei Ke, Yinhe Zheng, Kaili Huang, Yong Jiang, Xiaoyan Zhu, Minlie Huang
致谢
Zuoxian Ye, Yao Wang, Yifan Pan
免责声明
LCCC 数据集和预训练模型旨在促进对话生成的研究。本仓库中提供的 LCCC 数据集来源于多个渠道。尽管我们已进行了严格的清理工作,但仍无法保证所有不当内容已被完全过滤掉。本数据集中所包含的所有内容并不代表作者的观点。 本仓库仅包含构建实际对话模型所需的部分工具。本仓库中提供的解码脚本仅供研究使用。我们不对使用我们的模型生成的内容承担任何责任。
引用
如果您在研究中使用了本数据集或模型,请引用我们的论文:
@inproceedings{wang2020chinese,
title={A Large-Scale Chinese Short-Text Conversation Dataset},
author={Wang, Yida and Ke, Pei and Zheng, Yinhe and Huang, Kaili and Jiang, Yong and Zhu, Xiaoyan and Huang, Minlie},
booktitle={NLPCC},
year={2020},
url={https://arxiv.org/abs/2008.03946}
}
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。