RAG应用开发
学习目标
学习完本部分,使学习者能够:
- 实现完整的RAG应用程序。
学习活动
阅读文档:RAG简介, 动手做一个最小RAG——TinyRAG, 通过 Llama3 和 ChromaDB 实现精确的文档查询
观看视频:吴恩达《使用向量数据库构建应用程序|Building Applications with Vector Databases》中英字幕
- 视频时长:1小时;
- 视频内容简介:向量数据库使用嵌入来捕获数据的含义,评估不同向量对之间的相似性,并浏览大型数据集以识别最相似的向量。在大型语言模型的背景下,向量数据库的主要用途是检索增强生成(RAG),其中文本嵌入被存储和检索用于特定查询。 然而,向量数据库的多功能性不仅限于RAG,还可以快速构建各种应用程序,几乎不需要编码。 在这门课程中,您将探讨使用向量数据库实现六个应用程序的方法:
- 语义搜索:创建一个搜索工具,超越关键词匹配,侧重于内容的含义,以便在用户问答数据集上进行高效的基于文本的搜索。
- RAG:通过合并模型未经过训练的来源的内容(例如使用Wikipedia数据集回答问题)来增强您的LLM应用程序。
- 推荐系统:开发一个将语义搜索和RAG结合起来的系统,以推荐主题,并使用新闻文章数据集进行演示。
- 混合搜索:构建一个应用程序,使用图像和描述性文本来查找物品,以电子商务数据集为例。
- 面部相似性:创建一个应用程序,用于比较面部特征,使用公众人物数据库来确定它们之间的相似性。
- 异常检测:了解如何构建一个异常检测应用程序,用于识别网络通信日志中的异常模式。
您将具备使用任何向量数据库构建应用程序的新想法。
阅读文档:用langchain构建RAG应用
阅读文档:用langchain构建本地RAG应用
实践
- 使用langchain、chromdb完整构造一个RAG应用,能够从文本、网页、pdf等文件形式中读入数据,选择合适的文本分片方式,存入向量数据库,能够选择合适的检索模块,能在对话中检索出相应文本并作答。
补充资料
观看视频:吴恩达最新《大型语言模型与语义搜索》|Large Language Models with Semantic search|中英字幕
- 视频时长:1小时;
- 视频内容简介:本课程教授利用LLM进行搜索所需的技术。 在整个课程中,您将探索密集检索等关键概念,它提升了检索到的信息的相关性,从而导致改进的搜索结果,超越了传统的关键词搜索,以及重新排名,它将LLM的智能注入您的搜索系统,使其更快更有效。 完成课程后,您将:
- 了解如何实现基本的关键词搜索,这是许多搜索系统在语言模型变得可访问之前的基础。
- 使用重新排名方法增强关键词搜索,该方法根据与查询的相关性对最佳响应进行排名。
- 通过使用嵌入(一种强大的自然语言处理工具)来实现密集检索,该工具使用文本的实际语义含义来进行搜索,并极大地改进了结果。 通过处理大量数据获得实际操作练习,并克服诸如变化的搜索结果和准确性等挑战。 将基于语言模型的搜索实现到您的网站或项目中。
文档阅读:RAG技术全解析
RAG applications are all about building connections between tools, databases, context lengths, embeddings, memories, etc. You need frameworks like LangChain, LlamaIndex, FastRAG to build these.
Step-by-step tutorial to build a Q&A RAG pipeline by LangChain
LangChain’s RAG from Scratch playlist on YouTube is pretty detailed and amazing.