🚀 自動釋義模型
本項目是一個自動釋義模型,該模型在論文 "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",
}