NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手

这篇具有很好参考价值的文章主要介绍了NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  在文章NLP(六十)Baichuan-13B-Chat模型使用体验中,我们介绍了Baichuan-13B-Chat模型及其在向量嵌入和文档阅读上的初步尝试。
  本文将详细介绍如何使用Baichuan-13B-Chat模型来构建智能文档问答助手。

文档问答流程

  智能文档问答助手的流程图如下:

NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手,NLP,自然语言处理,人工智能

  • 文档加载(Document Loading):加载文档,文档格式为URL,PDF,Database。本项目暂时先支持txt文件,后续将支持更多文件格式;
  • 文档划分(Splitting):将文档按照特定格式进行划分,形成文档片段。本项目采用的文档划分方式为LangChain中的RecursiveCharacterTextSplitter,参考网址为:https://python.langchain.com/docs/modules/data_connection/document_transformers/text_splitters/recursive_text_splitter。
  • 文档存储(Storage):将划分后的文档进行向量嵌入,再插入至向量数据库。本项目采用的储存方式为ElasticSearch及向量数据库Milvus。
  • 文档召回:对于输入query,从文档存储中召回相关文档片段。本项目采用的召回方式为ElasticSearch中的内置BM25相似度算法及Milvus中的向量距离。
  • 问答输出:对于召回文档和输入query,构建合适的Prompt,利用大模型(LLM)输出最终答案。

  下面讲介绍细节。本项目已在Github上开源,项目网址为:https://github.com/percent4/document_qa_with_llm 。

环境搭建

  本项目开发的Web框架为Flask,API接口两个:文件上传接口和文档问答接口。文件上传接口如下:
NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手,NLP,自然语言处理,人工智能
  文档召回采用ElasticSearch和Milvus相结合的方式,设置ElasticSearch和Milvus召回最相似文本数量为2。
  ElasticSearch中创建的index为docs,mapping结构如下:

{
  "docs" : {
    "mappings" : {
      "properties" : {
        "cont_id" : {
          "type" : "integer"
        },
        "content" : {
          "type" : "text",
          "analyzer" : "ik_smart"
        },
        "source" : {
          "type" : "text"
        }
      }
    }
  }
}

其中source代表上传文档名称,cont_id为文本片段编号,content为文本片段。content字段采用的analyzer为ik_smart,该analyzer可较好地对中文进行分词。
  Milvus创建的collection为docs_qa,schema如下:

NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手,NLP,自然语言处理,人工智能
embeddings字段为Baichuan-13B-Chat模型的文本向量嵌入,向量维度为512,范数为1(即单位向量),搜索距离度量采用IP,即两个向量的内积。
  大模型采用Baichuan-13B-Chat,主要用于文本片段的向量嵌入和文档问答。关于Baichuan-13B-Chat模型的部署和使用,可参考文章NLP(六十)Baichuan-13B-Chat模型使用体验。

文档问答

  本文使用的文档为《封神》耗资30亿,第一部上映第次日,北京文化跌停,访问网址为:https://m.jrj.com.cn/madapter/stock/2023/07/22141537710254.shtml ,将其文本内容保存为txt文件,并通过文件上传接口,将数据内容插入至ES和Milvus。
  我们的问题(输入query)为:封神第一部什么时候上映的?,对其进行向量嵌入,在ES和Milvus中召回的相似文本为:

《封神》耗资30亿,第一部上映第次日,北京文化跌停热点快报 2023-07-22 14:15:04《封神第一部》刚刚上映,北京文化股价却出现下跌。7月21日,A股影视传媒板块震荡下挫,北京文化收于跌停,报7.56元,总市值54.12亿元,板块内个股慈文传媒、荣信文化、中国出版、上海电影等跟跌。值得关注的是,《封神第一部》7月20日才正式上映,北京文化为该影片的出品方。
落地误差只有1公里,3条飞船实现了第一阶段的全部任务。
北京文化曾成功投资《我不是药神》《战狼》《流浪地球》《你好,李焕英》等多部爆款影片。此前《封神第一部》宣布定档,北京文化曾迎来3连板。

  大模型问答的Prompt为:

[
    {
        "role": "system",
        "content": "你是一个出色的文档问答助手,回答要合理、简洁,回复语言采用中文,。若问题与文本片段相关,请根据给定的文本片段和问题,答案以\"根据文档知识\"开头若问题与文本片段相关性较小,则使用外部知识回答问题,答案以\"根据外部知识\"开头。"
    },
    {
        "role": "user",
        "content": "使用下面的文本片段列表,回答问题:封神第一部什么时候上映的?\n\n文本片段1: 《封神》耗资30亿,第一部上映第次日,北京文化跌停热点快报 2023-07-22 14:15:04《封神第一部》刚刚上映,北京文化股价却出现下跌。7月21日,A股影视传媒板块震荡下挫,北京文化收于跌停,报7.56元,总市值54.12亿元,板块内个股慈文传媒、荣信文化、中国出版、上海电影等跟跌。值得关注的是,《封神第一部》7月20日才正式上映,北京文化为该影片的出品方。\n文本片段2: 落地误差只有1公里,3条飞船实现了第一阶段的全部任务。\n文本片段3: 北京文化曾成功投资《我不是药神》《战狼》《流浪地球》《你好,李焕英》等多部爆款影片。此前《封神第一部》宣布定档,北京文化曾迎来3连板。\n"
    }
]

输出答案为:

根据文档知识,《封神第一部》于2023年7月20日上映。

更多测试内容可参考本项目的Github网址。

总结

  本项目的Github网址为:https://github.com/percent4/document_qa_with_llm ,后续将持续优化这个项目,提升文档问答的方便性和智能性。
  本文详细介绍了如何使用Baichuan-13B-Chat模型来构建智能文档问答助手,希望能给读者们一些启发。

  欢迎关注我的公众号NLP奇幻之旅,原创技术文章第一时间推送。

NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手,NLP,自然语言处理,人工智能

  欢迎关注我的知识星球“自然语言处理奇幻之旅”,笔者正在努力构建自己的技术社区。文章来源地址https://www.toymoban.com/news/detail-609933.html

NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手,NLP,自然语言处理,人工智能

到了这里,关于NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NLP(六十八)使用Optimum进行模型量化

      本文将会介绍如何使用HuggingFace的 Optimum ,来对微调后的BERT模型进行量化(Quantization)。   在文章NLP(六十七)BERT模型训练后动态量化(PTDQ)中,我们使用PyTorch自带的PTDQ(Post Training Dynamic Quantization)量化策略对微调后的BERT模型进行量化,取得了模型推理性能的提升

    2024年02月09日
    浏览(46)
  • 【大模型】0.5B的大模型通义千问1.5-0.5B-Chat来了!!

    Qwen1.5是Qwen2的测试版,这是一个基于转换器的纯解码器语言模型,在大量数据上进行了预训练。与之前发布的Qwen相比,改进之处包括: 显著改善了人类对聊天模型的偏好; 对基本模式和聊天模式的多语言支持; 稳定支持32K上下文长度,适用于各种尺寸的模型 不需要trust_r

    2024年02月20日
    浏览(46)
  • NLP(六十四)使用FastChat计算LLaMA-2模型的token长度

    LLaMA-2模型部署   在文章NLP(五十九)使用FastChat部署百川大模型中,笔者介绍了 FastChat 框架,以及如何使用 FastChat 来部署百川模型。   本文将会部署LLaMA-2 70B模型,使得其兼容OpenAI的调用风格。部署的 Dockerfile 文件如下: Docker-compose.yml 文件如下: 部署成功后,会占用

    2024年02月12日
    浏览(44)
  • 基于SWIFT和Qwen1.5-14B-Chat进行大模型LoRA微调测试

    操作系统:Ubuntu 18.04.5 LTS (GNU/Linux 3.10.0-1127.el7.x86_64 x86_64) Anaconda3:Anaconda3-2023.03-1-Linux-x86_64 根据服务器网络情况配置好conda源和pip源,此处使用的是超算山河源 服务器硬件配置:CPU 96核;GPU 8×NVIDIA A100 40GB 通过源代码安装SWIFT: 创建一个新的conda环境: 激活刚刚创建的conda环境

    2024年03月09日
    浏览(51)
  • NLP(六十七)BERT模型训练后动态量化(PTDQ)

      本文将会介绍BERT模型训练后动态量化(Post Training Dynamic Quantization,PTDQ)。 量化   在深度学习中,量化(Quantization)指的是使用更少的bit来存储原本以浮点数存储的tensor,以及使用更少的bit来完成原本以浮点数完成的计算。这么做的好处主要有如下几点: 更少的模型

    2024年02月09日
    浏览(45)
  • Baichuan-13B:130亿参数的开源语言模型,引领中文和英文benchmark

    Baichuan-13B: 一个强大的开源大规模语言模型 标题:Baichuan-13B:130亿参数的开源语言模型,引领中文和英文benchmark Baichuan-13B是由百川智能开发的一个开源大规模语言模型项目,包含了130亿参数。该模型在中文和英文的权威benchmark上达到了同尺寸模型的最佳效果。这个项目发布了

    2024年02月16日
    浏览(53)
  • NLP(六十二)HuggingFace中的Datasets使用

       Datasets 库是 HuggingFace 生态系统中一个重要的数据集库,可用于轻松地访问和共享数据集,这些数据集是关于音频、计算机视觉、以及自然语言处理等领域。 Datasets 库可以通过一行来加载一个数据集,并且可以使用 Hugging Face 强大的数据处理方法来快速准备好你的数据集

    2024年02月15日
    浏览(46)
  • 大模型开发(十一):Chat Completions模型的Function calling功能详解

    授权声明: 本文基于九天Hector的原创课程资料创作,已获得其正式授权。 原课程出处:九天Hector的B站主页,感谢九天Hector为学习者带来的宝贵知识。 请尊重原创,转载或引用时,请标明来源。 全文共6000余字,预计阅读时间约15~25分钟 | 满满干货(附代码案例),建议收藏!

    2024年02月16日
    浏览(54)
  • LLaMA-Factory 8卡4090 deepspeed zero3 微调Qwen14B-chat

    环境安装 推荐使用docker,Ubuntu20.04 https://www.modelscope.cn/docs/%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85 下载模型 在modelscope主页,找到模型 https://modelscope.cn/models/qwen/Qwen-14B-Chat/summary 可以使用如下脚本 微调 使用LLaMA-Factory, 下载下面仓库的代码, https://github.com/hiyouga/LLaMA-Factory 在代码目录,

    2024年04月15日
    浏览(53)
  • 【Chatgpt4 教学】 NLP(自然语言处理)第十一课 n-gram模型原理

    我起/点更新NLP(自然语言处理)——《王老师带我成为救世主》 (1)--------------------------------------------------------------------------------------- 我:简要介绍n-gram模型及其优缺点; AI: n-gram模型是一种用于语言建模和文本生成的基本模型,它基于一个简单的假设:一个单词在出现

    2023年04月19日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包