Promptriever:信息检索模型,支持自然语言提示响应用户搜索需求

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: Promptriever 是一种新型信息检索模型,由约翰斯·霍普金斯大学和 Samaya AI 联合推出。该模型能够接受自然语言提示,并以直观的方式响应用户的搜索需求。通过在 MS MARCO 数据集上的训练,Promptriever 在标准检索任务上表现出色,能够更有效地遵循详细指令,提高查询的鲁棒性和检索性能。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 模型类型:新型信息检索模型,支持自然语言提示。
  2. 功能特点:动态调整相关性,提高检索鲁棒性和性能。
  3. 技术架构:基于双编码器架构和大型语言模型。

正文(附运行示例)

Promptriever 是什么

公众号: 蚝油菜花 - promptriever

Promptriever 是由约翰斯·霍普金斯大学和 Samaya AI 联合推出的新型检索模型。它能够像语言模型一样接受自然语言提示,并以直观的方式响应用户的搜索需求。该模型基于 MS MARCO 数据集的指令训练集进行训练,在标准检索任务上表现出色,能够更有效地遵循详细指令,提高对查询的鲁棒性和检索性能。

Promptriever 展示了将大型语言模型的提示技术与信息检索相结合的潜力,为用户提供更自然、更高效的搜索体验。

Promptriever 的主要功能

  • 接受自然语言提示:能理解并响应自然语言形式的提示,让用户用更自然的方式表达搜索需求。
  • 动态调整相关性:根据用户的具体指令动态调整搜索结果的相关性,例如,根据用户对搜索结果的具体要求(如时间范围、特定属性)过滤和排序文档。
  • 提高检索鲁棒性:基于理解和处理自然语言中的细微差别,增强模型对于不同查询表达的鲁棒性。
  • 提升检索性能:基于提示进行超参数搜索,改善检索结果的质量。

Promptriever 的技术原理

  • 双编码器架构:基于双编码器(bi-encoder)架构,用大型语言模型(如 LLaMA-2 7B)作为其背后的支持模型。
  • 指令训练数据集:从 MS MARCO 数据集中筛选和发布新的指令级训练集,在训练中包含定义查询相关性的自然语言指令。
  • 指令生成:用语言模型生成更具体的指令,指令能添加额外的要求或明确排除某些类型的文档。
  • 指令负例挖掘:基于生成和过滤(query, passage)对,创建出在加入特定指令后相关性降低的负例,迫使模型学习如何根据指令调整相关性判断。
  • 零样本提示技术:基于零样本提示技术进行超参数搜索,类似于语言模型的提示,改善检索性能。

如何运行 Promptriever

环境设置

首先,确保你已经安装了 Conda 和必要的依赖项:

bash setup/install_conda.sh # 如果你还没有安装 Conda
bash setup/install_req.sh
pip install git+https://github.com/orionw/tevatron

运行 MSMARCO 实验

你可以通过以下命令运行 MSMARCO 实验:

bash msmarco/encode_corpus.sh <output_path> <model_name>
bash msmarco/encode_queries.sh <output_path> <model_name>
bash msmarco/search.sh <output_path>

运行 BEIR 实验

你可以通过以下命令运行 BEIR 实验:

bash scripts/beir/matrix_of_corpus.sh
bash scripts/beir/matrix_of_prompts.sh
bash scripts/beir/search_all_prompts.sh <output_path>

或者,你也可以只运行一个模型:

bash beir/run_all.sh <model_name> <output_nickname>
bash beir/run_all_prompts.sh <model_name> <output_nickname>
bash beir/search_all_prompts.sh <output_path>

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
23天前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
81 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
探索深度学习中的Transformer模型及其在自然语言处理中的应用
探索深度学习中的Transformer模型及其在自然语言处理中的应用
62 5
|
2月前
|
机器学习/深度学习 自然语言处理 PyTorch
从零开始构建nlp情感分析模型!
本教程介绍了如何使用PyTorch和Hugging Face的Transformers库构建一个情感分析模型。主要内容包括导入所需库、读取训练数据集、加载预训练的BERT模型和分词器、定义情感数据集类、划分训练集和验证集、创建数据加载器、设置训练参数、训练模型、评估模型性能以及定义和测试预测函数。通过这些步骤,可以实现一个简单而有效的情感分析模型。
221 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
117 0
|
3月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
95 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
3月前
|
机器学习/深度学习 自然语言处理 并行计算
探索深度学习中的Transformer模型及其在自然语言处理中的应用
【10月更文挑战第6天】探索深度学习中的Transformer模型及其在自然语言处理中的应用
220 0
|
3月前
|
机器学习/深度学习 自然语言处理 异构计算
【NLP自然语言处理】初识深度学习模型Transformer
【NLP自然语言处理】初识深度学习模型Transformer
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【NPL自然语言处理】带你迅速了解传统RNN模型
【NPL自然语言处理】带你迅速了解传统RNN模型
|
5月前
|
自然语言处理
【NLP】from glove import Glove的使用、模型保存和加载
使用 from glove import Glove 进行词向量训练、保存和加载的基本示例。
74 2
【NLP】from glove import Glove的使用、模型保存和加载
|
5月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
273 2

热门文章

最新文章

相关产品

  • 自然语言处理