英文

grammar-synthesis-small(beta版)

该模型是 google/t5-small-lm-adapt 用于对扩展版本的 JFLEG 数据集进行语法修正的经过微调的版本。

在Python中使用(在pip install transformers之后):

from transformers import pipeline
corrector = pipeline(
              'text2text-generation',
              'pszemraj/grammar-synthesis-small',
              )
raw_text = 'i can has cheezburger'
results = corrector(raw_text)
print(results)

Google Colab here 中查看一个简单的演示。

模型描述

本意是创建一个文本到文本的语言模型,成功完成对可能具有大量错误的潜在语法不正确的文本的“一次性语法校正”,并且不能在语法正确的文本/信息上进行语义改变。

可以通过对 other grammar correction models 中的一些较重错误的示例进行对比来看出区别 :)

限制

  • 数据集:cc-by-nc-sa-4.0
  • 模型:apache-2.0
  • 这仍然是一个正在进行中的工作,尽管在很多情况下对“一次性语法校正”可能是有用的,但请确认输出的正确性。

用例

显然,这一部分很一般,因为可以使用“通用一次性语法校正”来做很多事情。一些想法或用例:

  • 修正高错误率的语言模型输出。一些示例可能是音频转录(ASR)(这确实是一些示例)或类似手写OCR的东西。
    • 进一步调查,根据使用的模型/系统,可能值得在类型字符的OCR之后应用这一技术。
  • 修正/填充文本生成模型生成的文本,使其连贯/去除破坏对话连贯性的明显错误。我在 this OPT 2.7B chatbot-esque model of myself 的输出上使用了这个。
  • 这是一个在CPU上运行带有波束搜索的模型的示例:

  • original response:
                    ive heard it attributed to a bunch of different philosophical schools, including stoicism, pragmatism, existentialism and even some forms of post-structuralism. i think one of the most interesting (and most difficult) philosophical problems is trying to let dogs (or other animals) out of cages. the reason why this is a difficult problem is because it seems to go against our grain (so to
    synthesizing took 306.12 seconds
    Final response in 1294.857 s:
            I've heard it attributed to a bunch of different philosophical schools, including solipsism, pragmatism, existentialism and even some forms of post-structuralism. i think one of the most interesting (and most difficult) philosophical problems is trying to let dogs (or other animals) out of cages. the reason why this is a difficult problem is because it seems to go against our grain (so to speak)
    

    注意:我使用了一些其他的逻辑,删除了这个聊天机器人环境中最后一个句子末尾的句号。

  • 与上述第2点有些相关,修正所谓的 tortured-phrases ,这些是语言模型生成的明显痕迹。注意,其中一些没有修复,特别是当它们涉及特定领域的术语时(例如,不规则林地而不是随机森林)。
  • 训练和评估数据

    需要更多信息?

    训练过程

    训练超参数

    在训练过程中使用了以下超参数:

    • 学习率:0.0004
    • 训练批大小:16
    • 评估批大小:16
    • 种子:42
    • 分布式类型:多GPU
    • 梯度累积步数:32
    • 总训练批大小:512
    • 优化器:Adam,betas=(0.9,0.999),epsilon=1e-08
    • 学习率调度程序类型:cosine
    • 学习率调度程序预热比例:0.03
    • 训练周期数:4

    训练结果

    框架版本

    • Transformers 4.20.1
    • Pytorch 1.11.0+cu113
    • Datasets 2.3.2
    • Tokenizers 0.12.1