NVIDIA AI-AGENT夏季训练营
项目名称:AI-AGENT夏季训练营 — 基于RAG智能文档查阅助手
报告日期:2024年8月18日
项目负责人:lhl
项目概述:
搭建智能文档助手,可以帮助用户快速查阅和提取文档的关键内容,智能文档助手结合了LLM(大语言模型)和RAG(检索增强生成)技术为用户提供高效的文档阅读解决方案。它能够理解用户的查询意图,从大量的文档中检索出相关信息,并生成准确、连贯的回答。
技术方案与实施步骤
模型选择:
mistral-nemo-12b-instruct模型,通过NVIDIA NIM API的方式调用。
- 该模型支持128K长上下文
- 支持多语种,在英语、法语、德语、西班牙语、意大利语、葡萄牙语、中文、日语、韩语、阿拉伯语和印地语方面表现突出
- Mistral NeMo 使用基于 Tiktoken 的新分词器 Tekken,该分词器经过 100 多种语言的训练,能比以前 Mistral 模型中使用的 SentencePiece 分词器更有效地压缩自然语言文本和源代码
RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了信息检索和生成模型的技术。它旨在通过将外部知识源与生成模型相结合,提高生成内容的准确性和相关性。是通过将用户的查询或输入与外部知识源(如文档、数据库等)进行匹配,检索出与查询相关的信息,然后将这些信息作为上下文输入到生成模型中,以帮助模型生成更准确、更符合用户需求的回答或内容。
数据的构建:
通过NVIDIAEmbeddings工具类调用NIM中的" nv-embed-v1"向量化模型将数据向量化,存入本地向量数据库
nv-embed-v1是NVIDIA提供的一个文本嵌入模型,旨在用于各种任务,如检索、分类、聚类和语义文本相似性。根据搜索到的信息,nv-embed-v1在Massive Text Embedding Benchmark(MTEB)中取得了最高分数,并在多个任务上表现出色。
实施步骤:
-
环境搭建:
参考2024 NVIDIA开发者社区夏令营环境配置指南(Win & Mac)_csdn 2024nvidia开发者-CSDN博客 安装好Miniconda,同时创建好自己的conda环境。
1.代码实现:
1.安装各位各类环境依赖及工具
2.调用mistral-nemo-12b-instruct模型查询
可以看出直接调用文档,内容答非所问
3.加载NVIDIA_API_KEY
4.加载需要阅读的pdf文档
可以看到已经加载成功
5.清除冗余字符
6.embedding向量化我们的数据,并存储
7.调用RAG查询同样的问题,比对返回结果
文本内容:
可以看到根据PDF文件中的内容,准确回答了我们想要查阅的内容。
项目成果与展示:
- 文档查阅内容:
- LLM常规回答内容
- 使用了RAG之后回答内容
问题与解决方案:
- 问题分析: 使用ai-embed-qa-4报错问题。
- 解决措施: 更换nv-embed-v1解决。
项目总结与展望:
- 项目评估:
1作为一个从未写过代码的小白,本次训练营难度还是非常大的,没有做成进阶版一个可视化的界面,也未能做成语音对话,这次项目还有很多地方需要深究,这三天课太丰富了。几乎所有内容都为接触,后续还需要反复学习,做出完美的产品。
- 未来方向:
基于现在的学习规划,加强学习,做出完美的作品。
附件与参考资料
2024 NVIDIA开发者社区夏令营环境配置指南(Win & Mac)_csdn 2024nvidia开发者-CSDN博客