OSPP 2023 - 基于openEuler的Chatbot文本机器人服务

Published in Huazhong University of Science and Technology, 2023

Open Source Summer is a summer open source activity initiated and long-term supported by the “Open source Software Supply Chain Lighting Program” of the Institute of Software of the Chinese Academy of Sciences. It aims to encourage students to actively participate in the development and maintenance of open source software, cultivate and discover more excellent developers, promote the vigorous development of excellent open source software community, and help open source software supply chain construction.

以下为部分内容,其余请参见仓库链接

OpenEuler智能问答系统

系统简介

基于openEuler平台完成了一个文本机器人服务,该服务利用大模型技术和Chatbot技术,能够在对话中收集关键信息,也可以针对现有知识库对于相关问题进行回答,同时对于准确度要求较高的问题,同时融合了对话和信息检索的技术

原理介绍

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

基于知识库项目参考一种利用 ChatGLM-6B + langchain 实现的基于本地知识的 ChatGLM 应用。增加 clue-ai/ChatYuan 项目的模型 ClueAI/ChatYuan-large-v2 的支持。 受 GanymedeNil 的项目 document.ai 和 AlexZhangji 创建的 ChatGLM-6B Pull Request 启发,建立了全部基于开源模型实现的本地知识问答应用。

本项目中 Embedding 默认选用的是 GanymedeNil/text2vec-large-chinese,LLM 默认选用的是 ChatGLM-6B。依托上述模型,本项目可实现全部使用开源模型离线私有部署。

本模块过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

基于信息检索的模块则是通过构建检索对,对于专业领域的问题进行询问,使得回复关键问题的时候答案准确、全面、具体,可操作性强。