f
facebook/rag-token-nq
下载使用量0
模型介绍文件和版本

RAG

本文介绍的是论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 中提出的 RAG-Token 模型,作者为 Patrick Lewis、Ethan Perez、Aleksandara Piktus 等。

该模型为 uncased 模型,即大写字母会被转换为小写字母。

模型由 question_encoder、retriever 和 generator 组成。retriever 从上方链接的 wiki_dpr train 数据集中提取相关段落。 question_encoder 和 retriever 基于 facebook/dpr-question_encoder-single-nq-base 和 facebook/bart-large,这些模型是在 wiki_dpr QA 数据集上以端到端的方式共同微调的。

使用方法:

注意:以下使用示例中仅使用了 wiki_dpr 的 dummy 提取器,因为完整的 lecagy 索引需要超过 75 GB 的 RAM。 模型能够按照以下方式生成任何事实性问题的答案:

from transformers import RagTokenizer, RagRetriever, RagTokenForGeneration

tokenizer = RagTokenizer.from_pretrained("facebook/rag-token-nq")
retriever = RagRetriever.from_pretrained("facebook/rag-token-nq", index_name="exact", use_dummy_dataset=True)
model = RagTokenForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever)

input_dict = tokenizer.prepare_seq2seq_batch("who holds the record in 100m freestyle", return_tensors="pt") 

generated = model.generate(input_ids=input_dict["input_ids"]) 
print(tokenizer.batch_decode(generated, skip_special_tokens=True)[0]) 

# should give michael phelps => sounds reasonable

当然,我将提供专业、通俗、优雅且流畅的中文翻译。请您提供需要翻译的英文文本,我会按照您的要求进行翻译。