扫码阅读
手机扫码阅读
动手做一个最小RAG——TinyRAG
92 2024-09-29
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:动手做一个最小RAG——TinyRAG
文章来源:
Datawhale
扫码关注公众号
Datawhale干货
作者:宋志学,Datawhale成员
本文由宋志学介绍如何一步一步实现一个简化版的RAG模型,即Tiny-RAG。
1. RAG 介绍
RAG模型通过在生成答案前从文档数据库中检索信息,提高了内容的准确性和相关性。RAG包含几个基本结构:向量化模块、文档加载和切分模块、数据库、检索模块和大模型模块。流程包括索引、检索和生成。
2. 向量化
向量化是RAG的基础,涉及文档片段向量化。通过构建一个Embedding基类可以方便地扩展代码,示例中展示了使用OpenAI API进行文档片段向量化。
3. 文档加载和切分
文档加载和切分类负责将文档切分成片段。文档可以是任何文本格式,如pdf、md或txt。切分时要考虑重叠内容和句子完整性。
4. 数据库和检索
数据库负责存储文档片段和向量表示。检索是通过问题向量化和相似度计算来实现的,没有使用成熟的数据库,而是便于理解和修改的Numpy。
5. 大模型模块
大模型模块根据检索到的文档回答问题。通过实现一个BaseModel基类,可以快速地扩展到其他模型。示例使用InternLM2-chat-7B模型。
6. LLM Tiny-RAG Demo
演示了Tiny-RAG模型的使用,包括加载和切分文档、向量化、保存和加载数据库、问题的检索和回答。
7. 总结
文章总结了Tiny-RAG应包含的内容,并鼓励读者给项目点赞。
想要了解更多内容?
查看原文:动手做一个最小RAG——TinyRAG
文章来源:
Datawhale
扫码关注公众号
Datawhale的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线