尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DensePhrases安装部署教程:如何10分钟从0到第一次短语检索(附CUDA/Apex环境避坑清单)

DensePhrases安装部署教程:如何10分钟从0到第一次短语检索(附CUDA/Apex环境避坑清单) DensePhrases安装部署教程如何10分钟从0到第一次短语检索附CUDA/Apex环境避坑清单【免费下载链接】DensePhrases[ACL 2021] Learning Dense Representations of Phrases at Scale; EMNLP2021: Phrase Retrieval Learns Passage Retrieval, Too https://arxiv.org/abs/2012.12624项目地址: https://gitcode.com/gh_mirrors/de/DensePhrasesDensePhrases 是普林斯顿 NLP 提出的短语检索模型ACL 2021 / EMNLP 2021基于整本英文维基百科的数十亿稠密短语向量对自然语言提问实时返回短语、句子、段落或文档。本文是一份完整的安装部署教程10 分钟从环境搭建跑到第一次短语检索并附 CUDA/Apex 环境避坑清单帮你绕开新手最常踩的坑。 1分钟搞懂 DensePhrases 是什么DensePhrases 由Question Encoder处理查询和Phrase Encoder处理文本中的短语两个编码器组成先用短语编码器把维基百科全部短语压缩成向量并建立 Faiss 索引查询时问题编码器生成向量通过近邻检索一步返回短语或对应粒度的上下文。官方 Demo 中你只需输入一个英文问题即可实时看到短语检索结果 环境要求与硬件避坑清单项目要求说明Python3.7main分支固定版本PyTorch1.9.0通过 conda 安装CUDA Toolkit11.0先用nvidia-smi核对磁盘≥ 220GB数据 模型 索引内存50~100GB加载短语索引无需 SSDGPU11GB 显存可选也支持纯 CPU 模式⚠️ CUDA/Apex 避坑清单先核对 CUDA 再装 PyTorch运行nvidia-smi查看驱动支持的最高 CUDA 版本。cudatoolkit 与 PyTorch 不匹配如装了 10.2是导致faiss-gpu、Apex 安装失败的头号原因。Apex 必须先装DensePhrases 依赖混合精度克隆 NVIDIA 官方 Apex 仓库后执行python setup.py install官方安装命令见 README.md 的 Installation 一节。transformers 版本要与分支对齐main/v1.0.0使用transformers2.9.0v1.1.0分支使用transformers4.13.0混装会直接导致加载模型时报错。faiss 要用 GPU 版requirements.txt 中锁定faiss-gpu1.6.5依赖 CUDA 11.0无 GPU 的机器可换用 CPU 版 faiss。注意大小写敏感预训练模型对大小写敏感查询是小写语料如 NQ时建议开启--truecase参数见 densephrases/options.py。 10分钟安装部署5个步骤步骤1克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/de/DensePhrases cd DensePhrases pip install -r requirements.txt python setup.py develop 默认main分支锁定transformers2.9.0若想用新版transformers4.13.0克隆时加-b v1.1.0。步骤2配置工作目录source config.shconfig.sh 会交互式设置三个环境变量并自动创建目录DATA_DIR数据集、SAVE_DIR模型与索引、CACHE_DIRTransformers 缓存并建议写入~/.bashrc一劳永逸。注意它会提示基础目录至少需要 220GB 磁盘。步骤3下载预训练模型与短语索引source download.sh # 交互式选择data / wiki / models / indexdownload.sh 支持四类资源models8GB 全部预训练模型、index74GB 全维基短语索引、data1GB 数据集、wiki5GB 维基转储。省盘技巧官方还提供 37GBmedium与 21GBsmall的更小索引NQ 效果仅从 41.3 EM 小幅降到 38.0 EM。小索引放入dump/start/目录后用index_namestart/1048576_flat_OPQ96_small指定即可。步骤4make draft 一键验证安装make draft MODEL_NAMEtestMakefile 中的draft目标会跑通「训练小模型 → 生成短语向量 → 建索引 → 压缩元数据 → 评估」完整流程约 10 分钟。无报错即代表环境配置成功性能数字可忽略。步骤5第一次短语检索from densephrases import DensePhrases model DensePhrases( load_dirprinceton-nlp/densephrases-multi-query-multi, dump_dir/path/to/densephrases-multi_wiki-20181220/dump, ) # 短语级检索 model.search(Who won the Nobel Prize in peace?, retrieval_unitphrase, top_k5) # [Denis Mukwege,, Theodore Roosevelt, Denis Mukwege, John Mott, Mother Teresa] # 同一句查询切换粒度句子 / 段落 / 文档 model.search(Why is the sky blue, retrieval_unitsentence, top_k1) model.search(What is the history of internet, retrieval_unitdocument, top_k3)retrieval_unit支持phrase/sentence/paragraph/document四种粒度加return_metaTrue还能拿到原文出处、标题、得分等元信息。无 GPU 的机器加上devicecpu并调小max_query_length即可运行更多用法见 examples/README.md。️ 加分项部署自己的短语检索 Demo想要一个自己的「DensePhrases 短语检索」页面只需两个服务# 1) 查询编码器服务端口 1111 nohup python run_demo.py --run_mode q_serve \ --load_dir princeton-nlp/densephrases-multi-query-multi \ --cuda --max_query_length 32 --query_port 1111 log_q.log # 2) 短语索引服务端口 51997加载需几分钟 nohup python run_demo.py --run_mode p_serve \ --index_name start/1048576_flat_OPQ96 \ --cuda --truecase \ --dump_dir $SAVE_DIR/densephrases-multi_wiki-20181220/dump/ \ --query_port 1111 --index_port 51997 log_p.log 也可以用 Makefile 简写make q-serve/make p-serve。启动后访问http://localhost:51997纯 CPU 模式去掉--cuda即可。硬件需求50~100GB 内存单张 11GB 显卡可选。️ 从训练到推理短语检索全流程如果你想自训模型或构建自定义索引完整流程分四步单段落训练对齐查询-短语表示→ 建索引IVFOPQ 压缩向量→ 查询侧微调适配实体链接、槽位填充等新任务→ 推理。对应入口脚本train_rc.py阅读理解训练、generate_phrase_vecs.py生成短语向量、build_phrase_index.py构建索引、train_query.py查询侧微调、eval_phrase_retrieval.py评估。 关键文件路径速查文件作用config.sh一键配置 DATA_DIR / SAVE_DIR / CACHE_DIRdownload.sh交互式下载数据集、模型、短语索引requirements.txt依赖清单torch 1.9.0、faiss-gpu 1.6.5Makefile训练 / 建索引 / 评估 / Demo 快捷命令run_demo.pyWeb 演示服务入口examples/README.md多粒度检索、CPU 模式、实体链接等示例densephrases/options.py全部命令行参数定义✅ 总结三句话记住部署要点环境三件套Python 3.7 PyTorch 1.9.0CUDA 11.0 ApexApex 要先装版本混装是最大坑部署三步走source config.sh→source download.sh→make draft验证一行代码出结果model.search(查询, retrieval_unitphrase)21GB 小索引 CPU 模式让中配机器也能玩短语检索。至此你的 DensePhrases 短语检索环境已完全就绪输入自己的第一个问题试试吧【免费下载链接】DensePhrases[ACL 2021] Learning Dense Representations of Phrases at Scale; EMNLP2021: Phrase Retrieval Learns Passage Retrieval, Too https://arxiv.org/abs/2012.12624项目地址: https://gitcode.com/gh_mirrors/de/DensePhrases创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表