面向多语言问答研究与开发的前沿存储库。
PrimeQA 是一个公共开源存储库,使研究人员和开发者能够训练最先进的问答模型。通过使用 PrimeQA,研究人员可以复现最新 NLP 会议论文中概述的实验,同时还能下载预训练模型(来自在线存储库)并在自己的自定义数据上运行。PrimeQA 基于 Transformers 工具包构建,并使用可直接下载的 datasets 和 models。
PrimeQA 中的模型支持端到端的问答。PrimeQA 通过以下方式回答问题:
- 信息检索:使用传统模型(例如 BM25)和神经模型(例如 ColBERT)检索文档和段落
- 多语言机器阅读理解:根据源文档或段落提取和/或生成答案。
- 多语言问题生成:支持针对表格和多语言文本的有效领域自适应生成问题。
- 检索增强生成:结合检索到的段落,使用 GPT-3/ChatGPT 预训练模型生成答案。
支持的模型(适用于基准数据集)示例包括:
- 使用 BM25 的传统 IR Pyserini
- 使用 ColBERT、DPR 的神经 IR(与 Stanford NLP IR 合作,由 Chris Potts 和 Matei Zaharia 领导)。
- 使用 XLM-R 的机器阅读理解:复现实验以达到 TyDI 排行榜榜首,性能类似于 IBM GAAMA 系统。即将推出:复现 GAAMA 在 Natural Questions 上性能的代码。
PrimeQA 在多个排行榜(XOR-TyDi、TyDiQA-main、OTT-QA 和 HybridQA)上名列前茅。




# cd 到项目根目录
# 如果想在 GPU 上运行,请确保正确安装 torch
# 例如,对于 torch 1.11 + CUDA 11.3:
pip install 'torch~=1.11.0' --extra-index-url https://download.pytorch.org/whl/cu113
# 使用 pip 以可编辑 (-e) 或非可编辑方式安装,并安装所需额外组件(例如 tests)
# 示例安装命令:
# 最小安装(非可编辑)
pip install .
# GPU 支持
pip install .[gpu]
# 完整安装(可编辑)
pip install -e .[all]
请注意,依赖项(在 setup.py 中指定)被固定以提供稳定的体验。从源代码安装时可以修改这些依赖项,但这并非官方支持。
注意: 在许多环境中,基于 conda-forge 的 faiss 库性能显著优于 pip 默认安装的版本。要从 conda-forge 安装 faiss 库,请使用以下步骤:
conda install -c conda-forge faiss=1.7.0 faiss-gpu=1.7.0
setup.py 中,删除与 faiss 相关的行:"faiss-cpu~=1.7.2": ["install", "gpu"],
"faiss-gpu~=1.7.2": ["gpu"],
pip install 命令。BM25 检索需要 Java 11。按如下方式安装 Java:
conda install -c conda-forge openjdk=11
开源社区成员发表了几篇关于如何使用 PrimeQA 满足其需求的博客。阅读其中一些:
1. PrimeQA and GPT 3
2. Enterprise search with PrimeQA
3. A search engine for Trivia geeks
要运行单元测试,首先需要安装 PrimeQA。
确保使用 pip 安装时包含 [tests] 或 [all] 额外选项。
然后可以通过 pytest 运行测试,例如:
pytest --cov PrimeQA --cov-config .coveragerc tests/
更多信息,请参阅:
- 我们的 tox.ini
- pytest 和 tox 文档
| 章节 | 描述 |
|---|---|
| 📒 文档 | 完整的 API 文档和教程 |
| 🏁 快速导览:PrimeQA 入口 | PrimeQA 的不同入口:信息检索、阅读理解、表格问答和问题生成 |
| 📓 教程:Jupyter Notebooks | 开始 QA 任务的 Notebooks |
| 📓 GPT-3/ChatGPT Reader Notebooks | 开始使用 GPT-3/ChatGPT reader 组件的 Notebooks |
| 💻 示例:在各种 QA 任务上应用 PrimeQA | 在一系列 QA 任务上微调 PrimeQA 模型的示例脚本 |
| 🤗 模型共享与上传 | 与社区上传和分享您的微调模型 |
| ✅ 拉取请求 | PrimeQA 拉取请求 |
| 📄 生成文档 | 文档工作方式 |
| 🛠 Orchestrator 服务 REST 微服务 | PrimeQA Orchestrator 微服务的概念验证代码 |
| 📖 工具 UI | 演示 UI |
![]() |
斯坦福大学 NLP | ![]() |
伊利诺伊大学 |
![]() |
斯图加特大学 | ![]() |
圣母大学 |
![]() |
俄亥俄州立大学 | ![]() |
卡内基梅隆大学 |
![]() |
马萨诸塞大学 | ![]() |
IBM 研究 |