昇腾社区首页
中文
注册

MxRAGCache缓存和自动生成QA

样例介绍

本样例基于构建知识库检索问答增加MxRAGCache缓存和生成QA的功能,自动生成QA功能支持解析markdown文档,并存入MxRAGCache缓存功能。使用memory cache和similarity cache作为缓存使用。
图1 基于Cache缓存的RAG SDK问答流程

前提条件

  • 已经在MindIE容器中下载和运行Llama3-8B-Chinese-Chat大模型,模型下载链接:链接
  • RAG SDK的容器内能够访问Llama3-8B-Chinese-Chat大模型的路径下的config.json和tokenizer.json,用于计算文本token大小。
  • 已经基于《MindIE安装指南》中的“方式三:容器部署方式”章节完成在宿主机上的容器化部署,并参考《MindIE Motor开发指南》中的“快速开始 > 启动服务”章节启动服务。
  • 已经完成安装RAG SDK
  • 已经下载嵌入模型“acge_text_embedding”和reranker模型“bge-reranker-large”,并放在2.a中运行容器时配置的模型存放目录下。模型下载链接:
    • acge_text_embedding模型:链接
    • bge-reranker-large模型:链接

操作步骤

  1. 编译检索算子,以实现检索功能。
    cd $MX_INDEX_INSTALL_PATH/tools/ && python3 aicpu_generate_model.py -t <chip_type> && python3 flat_generate_model.py -d <dim> -t <chip_type>  && cp op_models/* $MX_INDEX_MODELPATH 
    • MX_INDEX_INSTALL_PATH、MX_INDEX_MODELPATH变量已在~/.bashrc中配置,无需单独配置。具体配置值请查看~/.bashrc。
    • -d <dim>表示embedding模型向量化后的维度,因acge_text_embedding嵌入模型向量维度为1024,这里设置为-d 1024。
    • -t <chip_type>表示芯片类型。对于Atlas 300I Duo 推理卡,可在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,将查询到的“Name”最后一位数字删掉,即是<chip_type>的取值。对于Atlas 800I A2 推理服务器,可在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,取“Name”对应的字段。
  2. 创建领域知识文档。

    在/home/HwHiAiUser目录下创建文档gaokao.md,编码格式为utf-8,内容如下:

    2024年高考语文作文试题
    新课标I卷
    阅读下面的材料,根据要求写作。(60分)
    随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?
    以上材料引发了你怎样的联想和思考?请写一篇文章。
    要求:选准角度,确定立意,明确文体,自拟标题;不要套作,不得抄袭;不得泄露个人信息;不少于800字。

    所选大模型训练截止日在2024年以前,模型本身未学习“2024年高考语文作文试题”相关知识。

  3. 参见并运行Demo中rag_demo_cache_qa.py代码文件,请根据实际情况修改代码中的文件路径、模型路径和大模型IP和port等默认参数,详细参数设置请参见readme.md文件。
  4. 执行样例代码。
    python3 rag_demo_cache_qa.py  --query "请描述2024年高考作文题目"
  5. 运行两次样例代码,获取结果。
    # 第一次运行结果和第二次回答一致,但第二次运行时命中缓存返回,回答时间大幅减少
    {'query': '请描述2024年高考作文题目', 'result': '根据您提供的信息,2024年高考语文作文试题的具体内容尚未公开。通常,高考作文题目会在考试当天或考试前一段时间由教育部门公布。因此,无法为您提供2024年高考作文题目具体内容。\n\n不过,根据您提供的信息,题目可能会围绕“随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?”这一主题展开。学生需要根据这个问题,选准角度,确定立意,明确文体,自拟标题,并在不少于800字的范围内进行写作。\n\n如果您需要进一步的指导或帮助,例如如何构思作文、如何组织思路、如何提高写作质量等,我可以提供一些一般性的建议。', 'source_documents': [{'metadata': {'source': '/home/HwHiAiUser/gaokao.md'}, 'page_content': '2024年高考语文作文试题\n新课标I卷\n阅读下面的材料,根据要求写作。(60分)\n随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?\n以上材料引发了你怎样的联想和思考?请写一篇文章。\n要求:选准角度,确定立意,明确文体,自拟标题;不要套作,不得抄袭;不得泄露个人信息;不少于800字。\n'}]}
    耗时:0.0007343292236328125s