概述:
该RAG对话机器人可利用Rag技术对使用者的提问生成答案,可以文字的形式回答提问者。同时,该机器人采用微软phi-3-small-128k-instruct的模型,其具有高性能,低延迟,低成本的特点。
模型选择:
项目采用了英伟达NIM平台上的Meta LLaMA-3.1-405b-instruct模型与基于Phi-3-small-128k-instruct模型的RAG(检索增强生成)方案,目标是提供强大的自然语言处理能力与检索增强的生成机制。
LLaMA系列模型在生成式任务中表现优异,尤其适合指令驱动(instruct)的生成场景。LLaMA-3.1-405b是目前性能领先的大模型,具备广泛的知识储备,能够对复杂问题进行准确且深入的生成。
Phi-3-small模型参数规模相对较小(128k),具备较高的效率,特别适合检索任务。该模型可以在处理高效和准确的信息检索时保持较低的计算资源消耗。Phi-3-small-128k-instruct经过了专门的微调与优化,使其更适合用于与大语言模型的RAG集成,在快速检索与反馈上具备优势。
RAG架构的核心优势在于结合了检索与生成的双重能力。通过将生成任务与强大的信息检索模型配合,RAG可以在生成前查询大量知识库或文档,从而在生成时能够参考最新、最相关的信息,提高生成内容的准确性和一致性。
数据的构建:
数据向量化的意义在于它实现了一种可计算的表示方式来表达非结构化数据的语义信息。将非结构化数据映射到固定维度的向量空间中,使得机器可以“理解”这些数据的内在关联,并进行运算。例如,在向量空间中,语义相关的词语对应的向量之间距离较近,不相关词语距离较远。
数据向量化的详细过程请前往“代码实现”部分
实施步骤:
1.环境搭建
首先要安装Miniconda或Anaconda,随后在Anaconda Powershell中依次输入并运行以下代码:
conda create --name ai_endpoint python=3.8
conda activate ai_endpoint
pip install langchain-nvidia-ai-endpoints
pip install jupyterlab
pip install langchain_core
pip install langchain
pip install matplotlib
pip install numpy
pip install faiss-cpu==1.7.2
pip install openai
jupyter-lab
2.代码实现
1.登录NVIDA NIAPI-Key,获取API-Key(不是无限次的,不要泄露给他人)
2.部分代码截图:
在NVAPI Key处输入你刚才获得的Key
接下来,程序会运行这段代码,然后列出可供选择的模型名称,您可以尝试不同的模型
列表中的部分模型:
这里,我们选用的是phi-3-small-128k-instruct模型,接下来,我们需要初始化SLM
成果展示:
问题与分析:
问题:在准备环境时,因为各种原因,容易导致安装失败
措施:大部分的安装失败都与网络有关,建议大家使用清华的国内镜像网站进行下载,或者挂上梯子(梯子有风险,且不够稳定)
项目评估与未来:
此机器人虽然已经可以实现基本的文字问答,但功能还不够丰富,下一步可以继续引进Agent、语音问答等功能,或为其设计更加简洁,逻辑更加清晰的UI界面,使其拥有更高的实用价值
参考资料: