英文

LongForm-OPT-125M

LongForm数据集是通过提供增强的指令来利用英文语料库示例创建的。我们从现有的语料库(如C4和维基百科)中选择一组多样化的人工编写文档,并通过LLM生成给定文档的指令。然后,我们使用结构化语料库示例(如Stack Exchange和WikiHow)和任务示例(如问答、电子邮件写作、语法错误修正、故事/诗歌生成和文本摘要)扩展这些示例。

Github Repo: https://github.com/akoksal/LongForm

对于LongForm OPT和LLaMA模型:使用[EOI]表示指令的结束。

如何加载

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("akoksal/LongForm-OPT-125M")
tokenizer = AutoTokenizer.from_pretrained("akoksal/LongForm-OPT-125M")

instruction = "Write an essay about meditation. [EOI]"
torch.manual_seed(42)
input_ids = tokenizer(instruction, return_tensors="pt").input_ids
target_ids = model.generate(input_ids, do_sample=True, max_new_tokens=50, top_p=0.9)
tokenizer.decode(target_ids[0])
# Output:
# > Write an essay about meditation. [EOI]Meditation, or 'Maraise', is
# a method that is used to meditate in the Tibetan and Malay Buddhist
# religions. It is a combination of meditation with Tibetan prayer.
# Meditation is an art in itself. Meditation is a form of practice

评估

我们在文中对LongForm模型和基线进行了深入评估。我们提供了模型在域外数据集上的METEOR分数。在所有任务中,配方生成(RGen)、长篇问题回答(ELI5)、短篇故事生成(WritingPrompts/WP)方面,LongForm模型优于先前的经过指令调优的模型。

All Recipe Generation ELI5 Writing Prompts
T0++ 10.9 18.7 3.8 10.2
Tk-Instruct 6.3 12.9* 3.6 2.4
Flan-T5 10.6 20.9* 3.5 7.4
Alpaca-LLaMA-7B 14.6 19.5 12.5 11.8
OPT-30B 11.1 18.6 12.2 2.6
1233321 16.3 20.2 18.3 10.6
1234321 17.8 15.5 17.9 19.9
1235321 17.7 16.9 17.2 19.0
1236321 ‡ 19.7 21.7 18.6 18.9

LongForm-OPT模型的较小版本也可用:

‡:由于LLaMA模型的限制,我们只能公开发布LongForm-LLaMA-7B和预训练LLaMA-7B之间的差异。

限制

LongForm数据集和模型主要关注长文本生成,在NLP中涉及结构化预测任务方面存在一些限制。此外,我们观察到LongForm模型可能存在类似LLM中出现的幻觉问题。

许可证

LongForm项目受MIT许可证的约束,其中包括OpenAI施加的自定义限制(用于指令生成部分)以及语言模型(OPT、LLaMA和T5)的许可证。

引用

@misc{koksal2023longform,
      title={LongForm: Optimizing Instruction Tuning for Long Text Generation with Corpus Extraction}, 
      author={Abdullatif Köksal and Timo Schick and Anna Korhonen and Hinrich Schütze},
      year={2023},
      eprint={2304.08460},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}