一、 在茴香豆 Web 版中创建自己领域的知识问答助手
学习笔记:RAG:
RAG(Retrieval-Augmented Generation)是一种结合了信息检索和文本生成的自然语言处理技术。它通过将传统的语言模型生成方法与外部知识库检索相结合,能够在生成文本时利用大量非结构化数据,从而提高生成内容的准确性和相关性。 RAG 模型首先会接收到用户的查询请求,然后它会在预先构建的知识库中检索与查询相关的信息。这些信息可以是来自维基百科的文章、新闻报道、学术论文等,RAG 会从这些资料中提取出与查询最相关的片段。 接下来,RAG 会使用这些检索到的信息作为上下文,输入到一个序列到序列(Seq2Seq)的生成模型中。这个生成模型通常是基于Transformer架构的,如GPT或BART等。生成模型会结合检索到的信息和用户的原始查询,生成一个连贯、准确且信息丰富的回答。 RAG 的优势在于它能够结合检索到的外部信息和生成模型的能力,生成更加准确和丰富的回答。这使得它在问答系统、知识图谱补全、内容推荐等领域有着广泛的应用前景。
RAG的优点
-
增强的准确性和相关性:RAG模型通过从大量的非结构化数据中检索相关信息,能够生成更加准确和相关的答案。这种结合检索的方法使得模型在回答问题时可以利用到更多的事实依据,从而提高了输出内容的质量。
-
丰富的知识来源:由于RAG模型能够利用外部知识库,它能够访问和整合来自不同领域和来源的信息。这意味着模型不仅仅局限于训练数据中的知识,而是可以访问更广泛的信息,为用户提供更加全面的答案。
-
提高长尾问题的解答能力:对于一些特定的、不常见的问题,传统的语言模型可能由于缺乏足够的训练数据而难以生成满意的答案。而RAG模型可以通过检索相关信息来弥补这一不足,从而提高对长尾问题的解答能力。
线上茴香豆助手对话截图:
自己的服务器部署茴香豆 Web 版
由于内存不够,选择在云服务器上进行实验
笔记:
部署流程
1 修改配置文件
在这一步中,需要将下载的模型路径替换到config.ini
文件中的默认路径。这是为了确保茴香豆知识助手能够正确地加载和使用您指定的模型。我们需要修改三个模型路径,分别是用于向量数据库和词嵌入的模型、用于检索的重排序模型,以及本次选用的大模型。
2 创建知识库
在这一步中,我们将使用InternLM的Huixiangdou文档作为知识数据检索的来源。需要下载Huixiangdou的语料,并创建向量数据库。这个过程中,会使用到LangChain的模块,并指定了默认的嵌入和重排序模型。
此外,还需要创建两个额外的向量数据库,分别用于判断问题的接受与否。这两个数据库的来源是接受问题列表和拒绝问题列表,它们分别存储在good_questions.json
和bad_questions.json
文件中。
3 运行茴香豆知识助手
在这一步中,我们将测试茴香豆知识助手的效果。需要修改main.py
文件中的查询列表,并运行茴香豆。这将使用到RAG技术,它是一种非参数化的模型调优技术。我们使用的InternLM2-Chat-7B模型将根据您提供的数据库生成准确的答案。
总结
通过以上步骤,可以成功部署一个基于InternLM2-Chat-7B模型的茴香豆知识助手。这个助手能够根据提供的知识库和问题列表生成准确的答案,并且可以部署到即时通讯软件中,以提供实时的技术问答服务。
在 InternLM Studio
上部署茴香豆技术助手:
问题设置:
回答:
进阶作业:飞书创建机器人
效果展示