这里写自定义目录标题
AI-AGENT夏季训练营 — RAG智能对话机器人
一、技术方案与实施步骤
1.1 模型选择
本次项目采用的是ChatGLM3-6B和RAG模型,其中ChatGLM3-6B由智谱AI和清华大学KEG实验室联合发布的对话预训练模型,它属于第三代对话模型,具有强大的对话流畅性和功能支持 。这个模型以其60亿参数量和创新的GLM架构,在对话理解与生成能力上表现出色 。
该模型具有如下几个特点:
- 强大的基础模型:ChatGLM3-6B-Base使用了多样的训练数据和合理的训练策略,在多个数据集上展现出强大的性能 。
- 完整的功能支持:模型采用新设计的Prompt格式,增强了能力,并且原生支持工具调用、代码执行和Agent任务等复杂场景 。
- 全面的开源序列:除了对话模型ChatGLM3-6B,还开源了基础模型ChatGLM3-6B-Base和长文本对话模型ChatGLM3-6B-32K 。
而RAG(Retrieval-Augmented Generation)模型是一种结合了信息检索(IR)和自然语言生成(NLG)的技术,它在处理复杂查询和生成信息丰富的回答方面表现出色 。以下是RAG模型的一些主要优势: - 提高准确性和效率:RAG通过检索外部知识库来辅助生成文本,使得生成的内容更加准确,同时提高了处理复杂查询的效率 。
- 实现即时知识更新:RAG模型的知识库可以即时更新,确保了模型能够处理最新的信息,避免了因模型训练数据过时而导致的知识缺失问题 。
- 可解释性强:RAG的答案直接来源于检索库,用户可以验证答案的准确性,增加了对模型输出的信任度 。
- 高度定制和安全性:RAG可以根据特定领域的知识库进行定制,实现快速适应特定领域,同时通过限制知识库权限,可以确保敏感信息不被泄露 。
- 避免“幻觉”问题:RAG通过检索外部信息作为输入,辅助大型模型回答问题,减少生成不准确信息的问题,增加回答的可追溯性 。
- 数据隐私和安全:RAG可以将知识库作为外部附件管理企业或机构的私有数据,避免数据在模型学习后以不可控的方式泄露 。
- 信息的实时性:RAG允许从外部数据源实时检索信息,因此可以获取最新的、领域特定的知识,解决知识时效性问题 。
. 成本和响应速度:RAG相比于微调模型具有训练时间短和成本低的优势;而与长文本处理相比,则拥有更快的响应速度和低得多的推理成本 。
RAG模型的这些优势使其在问答系统、文档生成和自动摘要、智能助手和虚拟代理、信息检索和知识图谱填充等多个应用场景中具有广泛的应用潜力
1.2 数据的构建
数据构建过程、向量化处理方法及其优势是信息检索和自然语言处理中的关键步骤,尤其是在使用RAG(Retrieval-Augmented Generation)模型时。以下是这些步骤的概述:
- 数据构建过程:
- 数据收集:收集相关领域的文本数据,可能包括书籍、文章、网页、数据库等多种形式的文档。
- 数据预处理:
1. 清洗:去除无关内容,如广告、版权信息等。
2. 格式化:统一数据格式,便于处理。
3. 分词:对于中文等语言,进行分词处理。 - 文档切分:将长文档分割成小块或段落,以适应模型的输入限制,并保持语义的连贯性。
- 标注(可选):如果需要,对数据进行标注,如问答对、实体识别等。
- 构建知识库:将处理后的数据组织成易于检索的知识库。
- 向量化处理方法
- 选择嵌入模型:选择适合的嵌入模型,如Word2Vec、BERT、GPT等,这些模型能够将文本转换为数值向量。
- 训练嵌入模型:
1. 语料库输入:提供大量文本数据训练嵌入模型。
2. 学习词向量:模型学习文本中每个词或短语的向量表示。 - 向量化:使用训练好的嵌入模型将文本数据转换为向量形式。
- 构建索引:在向量数据库中为向量化的数据构建索引,以优化检索效率。
优势
- 语义理解:向量化能够捕捉文本的深层语义信息,而不仅仅是表面的关键词匹配。
- 高效检索:向量数据库优化了处理和存储大规模向量数据的效率,使得在面对海量数据时能够迅速检索出相关信息。
- 泛化能力:向量化处理不仅限于文本数据,还可以处理图像、音频等多模态数据。
- 快速响应:向量数据库支持快速检索,即使在数据量增长时也能保持查询的响应时间。
- 可扩展性:向量数据库能够水平扩展,以支持更多的数据和更复杂的查询。
- 减少歧义:向量化处理减少了自然语言中的歧义性,提供更精确的信息检索。
- 支持复杂查询:向量化使得能够执行更复杂的查询,如基于语义相似度的搜索。
- 提高模型性能:在RAG模型中,向量化处理提高了检索的准确性,进而提升了生成文本的质量和相关性。
通过这些步骤和优势,RAG模型能够更有效地结合检索和生成过程,提供更准确、更丰富的信息和回答。
1.3 实施步骤
第一步:使用NVIDIA_API_KEY
第二步:初始化SLM
第三步:初始化ai-embed-qa-4向量模型
第四步:获取文本数据集
第五步:进行一些基本的清理并删除空行
第六步:
6.1 将文档处理到 faiss vectorstore 并将其保存到磁盘
6.2 重读之前处理并保存的 Faiss Vectore 存储
第七步:提出问题并基于phi-3-small-128k-instruct模型进行RAG检索
1.3.1 环境搭建
1 创建Python环境
首先安装miniforge,下载地址为: link
安装完之后,在系统环境变量的path添加下列就行了,根据自己的路径修改:
在打开的终端中按照下面的步骤执行,配置环境:
- 创建python 3.8虚拟环境
mamba create --prefix=C:\miniforge3\envs ai_endpoint python==3.9.19
- 进入虚拟环境
mamba activate ai_endpoint
- 安装nvidia_ai_endpoint工具
pip install langchain-nvidia-ai-endpoints
- 安装Jupyter Lab
pip install jupyterlab