扫码阅读
手机扫码阅读

动手做一个最小RAG——TinyRAG

17 2024-09-29

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:动手做一个最小RAG——TinyRAG
文章来源:
Datawhale
扫码关注公众号
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
扫码关注公众号