🚀 自动释义模型
本项目是一个自动释义模型,该模型在论文 "AutoQA: From Databases to QA Semantic Parsers with Only Synthetic Training Data" (EMNLP 2020) 中被描述和使用,能够为句子提供高质量的释义。
✨ 主要特性
- 基于
facebook/bart-large
模型进行微调,在特定数据集上训练得到。
- 能够生成语法正确、多样化的句子释义。
- 支持通过调整参数控制释义的多样性。
📦 安装指南
文档未提及安装步骤,暂无法提供。
💻 使用示例
基础用法
使用 top_p=0.9
和 temperature
在 0
到 1
之间通常能得到较好的释义结果。
top_p = 0.9
temperature = 0.7
paraphrased_sentence = paraphrase_function(input_sentence, top_p=top_p, temperature=temperature)
高级用法
如果要对较长的输入(如段落)进行释义,需要先将输入拆分为单个句子。
paragraph = "This is a long paragraph. It contains multiple sentences."
sentences = paragraph.split('. ')
paraphrased_sentences = []
for sentence in sentences:
paraphrased_sentence = paraphrase_function(sentence, top_p=top_p, temperature=temperature)
paraphrased_sentences.append(paraphrased_sentence)
final_paraphrased_paragraph = '. '.join(paraphrased_sentences)
📚 详细文档
模型来源
本自动释义模型在论文 "AutoQA: From Databases to QA Semantic Parsers with Only Synthetic Training Data" (EMNLP 2020) 中被描述和使用。
训练数据
使用了 "Large-Scale, Diverse, Paraphrastic Bitexts via Sampling and Clustering" 中引入的 ParaBank 2 数据集的清理版本。ParaBank 2 是通过对英 - 捷克平行语料库中的捷克语部分进行回译构建的释义数据集。我们使用了 500 万对具有最高双条件交叉熵分数(对应最高释义质量)的句子对的子集,并且每个句子只使用提供的五个释义中的一个。清理过程包括移除看起来不像正常英语句子的句子,例如包含 URL、包含过多特殊字符等的句子。
训练过程
该模型从 facebook/bart-large
检查点开始,在上述数据集上进行了 4 个 epoch 的微调。我们使用基于黄金释义句子计算的词元级交叉熵损失。为确保模型输出符合语法,在训练过程中,我们使用回译的捷克语句子作为输入,人工编写的英语句子作为输出。训练使用大小为 1280 个示例的小批量进行。为提高训练效率,每个小批量通过将长度相似的句子分组在一起构建。
使用说明
使用 top_p=0.9
和 temperature
在 0
到 1
之间通常能得到较好的生成释义。较高的温度会使释义更加多样化,与输入的差异更大,但可能会稍微改变原句的含义。请注意,这是一个句子级的释义器。如果要使用此模型对较长的输入(如段落)进行释义,请确保先将输入拆分为单个句子。
🔧 技术细节
本模型基于 facebook/bart-large
进行微调,使用词元级交叉熵损失进行训练,通过回译的捷克语句子和人工编写的英语句子保证输出的语法正确性。训练过程中采用小批量训练,且将长度相似的句子分组以提高效率。
📄 许可证
本项目采用 Apache-2.0 许可证。
📖 引用
如果您在工作中使用了此模型,请使用以下引用:
@inproceedings{xu-etal-2020-autoqa,
title = "{A}uto{QA}: From Databases to {QA} Semantic Parsers with Only Synthetic Training Data",
author = "Xu, Silei and Semnani, Sina and Campagna, Giovanni and Lam, Monica",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP)",
month = nov,
year = "2020",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2020.emnlp-main.31",
pages = "422--434",
}