项目概述(必写):
基于Phi3的劳动法专家智能对话机器人
技术方案与实施步骤
- 模型选择(必写):
Phi-3是微软研究院推出的一系列小型语言模型(SLM),旨在提供与大型模型相美的语言理解和推理能力,同时保持较小的参数规模。Phi-3系列包括phi-3-mini、phi-3-small和phi-3-medium三个不同规模的版本,分别适合不同的应用场景和需求。这些模型不仅开源可商用,还在多项基准测试中展现出出色的性能。选择phi-3-small-128k-instruct的主要原因s是1.小型化设计 2.卓越性能 3.迅速响应 4.离线可用性 5.资源节省
参考微软Phi-3:小型而强大的AI模型解析与实战指南_phi3-CSDN博客
- 数据的构建(必写): 说明数据构建过程、向量化处理方法及其优势。
利用UnstructuredPDFLoader做非结构化数据加载,再通过NV-Embed-QA向量模型做向量化处理,主要的原因是NV-Embed 结合了独特的架构设计和训练方法,在性能上取得了突破性的进展,有较高的解码器 LLM 的嵌入能力
参考NV-Embed向量模型,基于双向注意力的LLM嵌入模型,MTEB 56项任务排名第一
实施步骤:
- 环境搭建:
-
下载安装Miniconda,安装完后打开Anaconda Powershell
-
创建Python 3.8虚拟环境 执行 conda create --name ai_endpoint python=3.8
-
进入虚拟环境 conda activate ai_endpoint
-
安装 nvidia_ai_endpoint工具 执行 pip install langchain-nvidia-ai-endpoints
-
安装Jupyter 执行pip install jupyterlab
-
安装langchain_core和langchain,unstructured,openai,langchain-community,numpy 执行pip install langchain_core langchain unstructured openai langchain-community numpy
-
打开jupyter lab 在终端上输入 jupyter lab
- 代码实现(必写):
- 注册Nvidia NIM APIs账号并参考说明取得NVAPI Key Try NVIDIA NIM APIs
- 项目成果与展示:
- 应用场景展示(必写): 通过智能对话机器人提供劳动法咨询服务。
- 功能演示(必写):
- 问题与解决方案:
- 问题分析:
1.在项目过程中一开始不熟悉也不了解Langchain和RAG工作流是如何编排的,且在做数据向量嵌入之前没有做清理,从而导致回答的问题准确性不高
2.在配置环境下载相关依赖包时网络经常超时
3.在分割清理字符时由于忽略了separator的作用,导致字符拆分失败从而嵌入向量化失败 - 解决措施:
1.文档提取后要做预处理如去掉空行,空格,特殊字符等后再做文本分割,文本分割要小于模型的最大Token长度
2.对于模型的选择可以多尝试
3.修改pip源为国内源 这里使用的时清华大学的镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
项目总结与展望:
- 项目评估: 该项目是较为简单的入门demo,目的是了解体会AI Agent的搭建过程和直观感受RAG解决的问题
- 未来方向:当前还是有很多的不足,只能算是一个入门的玩具,后面应继续改进,将更多的法律条文和案例处理成更高质量的向量数据库,并扩展为可语言交互,满足日常的法律咨询
附件与参考资料
微软Phi-3:小型而强大的AI模型解析与实战指南_phi3-CSDN博客
2024 NVIDIA开发者社区夏令营环境配置指南(Win & Mac)_csdn 2024nvidia开发者-CSDN博客
NV-Embed向量模型,基于双向注意力的LLM嵌入模型,MTEB 56项任务排名第一
Langchain检索-文件加载器-PDF
Quickstart (gradio.app)