InduQuest: 基于大语言模型与RAG技术的工业基础知识问答助手

InduQuest: 基于大语言模型与RAG技术的工业基础知识问答助手

在工业领域,知识的获取和应用至关重要。为了提高技术人员和工程师在日常工作中获取准确信息的效率,我们开发了一个名为 InduQuest 的工业基础知识问答助手。该系统创新性地将大语言模型(LLM)与检索增强生成(RAG)技术相结合,旨在提供高效、精准的工业知识问答服务。

项目概述

InduQuest 结合了大语言模型的自然语言处理能力和RAG技术的高效检索功能,专注于处理复杂的工业技术内容。通过这一技术融合,InduQuest 不仅提升了对工业知识的解析能力,还极大地提高了从海量文献中提取关键信息的效率。这一工具为工业领域的知识获取和应用提供了全新的方法和视角。

技术方案与实施步骤

模型选择

我们选择了Phi-3-mini模型,这一模型因其参数较少而具备更强的可部署性和更快的推理速度,适合在不同端侧设备上运行。该模型可以通过Ollama、LM Studio、LlamaEdge等工具进行调用,并且支持在CPU、NPU、GPU等多种加速设备上进行运算。此外,我们还结合了RAG技术,进一步增强了检索结果的准确性。

数据的构建

为了实现高效的工业知识问答功能,我们从大量工业文献中收集了丰富的文本数据。经过清洗和分词处理,确保数据的质量和一致性。接着,我们使用预训练语言模型(如BERT或GPT)将文本转化为高维向量,以捕捉其语义信息,并构建了一个基于向量检索的高效数据库(如FAISS)。这一数据库可以快速检索和查询最相关的工业知识段落,确保生成模块能够提供符合实际需求的高质量回答。

实施步骤

环境搭建

  1. 注册 NIM:访问 https://build.nvidia.com/explore/discover 并完成注册。
  2. 安装 Python 3.10.x+:下载 Anaconda(https://www.anaconda.com/products/distribution)。
  3. 配置环境变量:在系统中添加 Anaconda 安装目录下的 Scripts 文件夹路径至PATH变量中。
  4. 检查安装:在Terminal中输入 conda --version 检查 Conda 是否正确安装。
  5. 建立并激活虚拟环境:运行 conda create -n ai-agent 创建虚拟环境,并使用 conda activate ai-agent 激活。
  6. 安装 .NET 8:下载并安装 .NET 8(https://dotnet.microsoft.com/)。
  7. 安装 Visual Studio Code 及其插件:包括.NET Extension Pack、Python、Jupyter等。
  8. 安装 Python 库 Jupyter Notebook:运行 pip install jupyter 并在终端中输入 jupyter notebook 启动。
  9. 安装 NVIDIA 的 AI Foundation Endpoints 库:运行 pip install --upgrade --quiet langchain-nvidia-ai-endpoints 安装。

代码实现

关键代码实现步骤如下:

# 使用Nvidia Api Key
import getpass
import os
if os.environ.get("NVIDIA_API_KEY", "").startswith("nvapi-"):
    print("Valid NVIDIA_API_KEY already in environment. Delete to reset")
else:
    nvapi_key = getpass.getpass("NVAPI Key (starts with nvapi-): ")
    assert nvapi_key.startswith("nvapi-"), f"{nvapi_key[:5]}... is not a valid key"
    os.environ["NVIDIA_API_KEY"] = nvapi_key

from langchain_nvidia_ai_endpoints import ChatNVIDIA
ChatNVIDIA.get_available_models()

# 初始化SLM, 使用phi-3-small-128k-instruct
llm = ChatNVIDIA(model="ai-phi-3-small-128k-instruct", nvidia_api_key=nvapi_key, max_tokens=512)
result = llm.invoke("Describe the key differences between AC and DC motors.")
print(result.content)

# 初始化Embedding Model, 使用ai-embed-qa-4向量模型
from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings
embedder = NVIDIAEmbeddings(model="ai-embed-qa-4")

# 获取文本数据集
import os
from tqdm import tqdm
from pathlib import Path

ps = os.listdir("./industrial_data/")
data = []
sources = []
for p in ps:
    if p.endswith('.pdf'):
        path2file="./industrial_data/"+p
        with open(path2file, encoding="utf-8") as f:
            lines = f.readlines()
            for line in lines:
                if len(line) >= 1:
                    data.append(line)
                    sources.append(path2file)

# 后处理
documents = [d for d in data if d != '\n']
len(data), len(documents), data[0]

# 测试与调优

我们通过设计和执行多个测试用例,确保系统在不同的使用场景下都能表现出色。性能调优也在测试过程中进行,以提升响应速度和准确性。

# 集成与部署

说明各模块的集成方法及如何将系统部署到实际运行环境中。

# 项目成果与展示

## 应用场景展示(必写)

InduQuest 系统可应用于多个场景:

1. **技术支持**:帮助工程师或技术人员快速获取关于工业设备、工艺流程和技术标准的准确信息,支持快速且准确的决策。
2. **员工培训**:在企业培训中作为知识问答助手,帮助新员工快速了解行业基础知识和企业规范,提高培训效率。
3. **客户服务**:集成到客户支持平台中,为客户提供即时的技术咨询,帮助解决产品或技术中的常见问题。

## 功能演示

系统能够通过用户输入的查询,快速检索和整合相关工业文献,生成准确的技术知识回答。用户输入关于某种设备操作步骤的问题,系统将提供详细且准确的操作指南。功能演示将附上用户查询界面和系统回答的截图,展示从输入问题到生成回答的完整过程。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/034aa1a4867e4d7cafb87d5e9723209b.png#pic_center)

# 项目总结

InduQuest 是一款高效、精准的工业基础知识问答助手,凭借其先进的技术,能够极大提升工业领域知识获取的效率和质量。期待通过该工具,推动工业技术人员的知识应用和决策过程迈上新的台阶。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值