本地离线模型搭建指南-RAG架构实现

搭建一个本地中文大语言模型(LLM)涉及多个关键步骤,从选择模型底座,到运行机器和框架,再到具体的架构实现和训练方式。以下是一个详细的指南,帮助你从零开始构建和运行一个中文大语言模型。

本地离线模型搭建指南将按照以下四个部分展开

  1. 中文大语言模型底座选择依据
  2. 本地运行显卡选择
  3. RAG架构实现
  4. LLaMA-Factory训练框架及工具

3 RAG架构实现

3.1 什么是RAG

检索增强生成(Retrieval Augmented Generation, RAG) 是当前最热门的大语言模型(LLM)应用方案之一。RAG结合了信息检索和生成模型的优势,旨在增强生成式模型的知识覆盖和输出准确性。

3.2 为什么使用RAG

使用RAG的主要原因有以下几点:

  1. 知识的局限性:
    1. 现有的大模型(如ChatGPT、文心一言、通义千问等)的知识来源于它们的训练数据,这些数据主要是公开的网络数据。
    2. 对于一些实时性、非公开或离线的数据,大模型无法直接获取和使用。
  2. 幻觉问题:
    1. 大模型的输出基于数学概率,有时会出现“幻觉”——即生成看似合理但实际上错误的回答。
    2. 这种问题难以区分,尤其是在用户不具备相关领域知识的情况下。
  3. 数据安全性:
    1. 企业非常注重数据安全,不愿意将私有数据上传到第三方平台进行训练。
    2. 使用通用大模型可能会在数据安全和效果之间产生取舍。

RAG通过结合检索和生成的方式,能够有效解决上述问题。

3.3 RAG架构

RAG架构主要包括以下几个部分:

  1. 向量化:
    1. 将文本数据转化为向量矩阵,这个过程会直接影响后续检索的效果。
    2. 常见的embedding模型包括BERT、RoBERTa等,可以满足大部分需求。
    3. 对于特殊场景,可以选择微调现有的开源embedding模型,或直接训练适合自己场景的模型。
  2. 数据入库:
    1. 数据向量化后构建索引,并写入数据库。
    2. 适用于RAG场景的数据库包括FAISS、ChromaDB、Elasticsearch(ES)、Milvus等。
    3. 选择合适的数据库时,需要综合考虑业务场景、硬件和性能需求等因素。
  3. 检索模块:
    1. 在用户提出问题时,首先检索相关的文档或信息片段。
    2. 这些检索到的信息将作为生成模型的辅助输入。
  4. 生成模块:
    1. 利用检索到的信息和用户输入的问题,生成更加准确和相关的回答。
    2. 生成模型可以是预训练的大语言模型,如GPT-3等。
      在这里插入图片描述

3.4 RAG的工作流程

  1. 用户输入问题。
  2. 检索模块从数据库中检索相关信息。
  3. 生成模块结合用户输入和检索到的信息生成答案。
  4. 返回生成的答案给用户。

通过这种方式,RAG不仅能利用大模型的强大生成能力,还能结合实时、私有的数据源,提供更加精准和安全的解决方案。

3.5 embedding模型链接

模型名称描述获取地址
ChatGPT-EmbeddingChatGPT-Embedding由OpenAI公司提供,以接口形式调用。https://platform.openai.com/docs/guides/embeddings/what-are-embeddings
ERNIE-Embedding V1ERNIE-Embedding V1由百度公司提供,依赖于文心大模型能力,以接口形式调用。https://cloud.baidu.com/doc/WENXINWORKSHOP/s/alj562vvu
M3EM3E是一款功能强大的开源Embedding模型,包含m3e-small、m3e-base、m3e-large等多个版本,支持微调和本地部署。https://huggingface.co/moka-ai/m3e-base
BGEBGE由北京智源人工智能研究院发布,同样是一款功能强大的开源Embedding模型,包含了支持中文和英文的多个版本,同样支持微调和本地部署。https://huggingface.co/BAAI/bge-base-en-v1.5

更多详细信息和具体模型的链接,请访问

【关于NLP】那些你不知道的事

大模型RAG问答技术架构及核心模块:从Embedding、prompt-embedding到Reranker

RAG技术全解析:打造下一代智能问答系统

RAG 与微调在大模型应用中如何抉择

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模型+RAG(Retrieval-Augmented Generation)是一种结合了检索和生成的方法,用于实现数据采集。具体步骤如下: 1. 数据收集:首先需要收集大量的原始数据,可以是文本、图像、音频等形式的数据。这些数据可以从互联网、数据库、文档等多个渠道获取。 2. 数据预处理:对收集到的原始数据进行预处理,包括数据清洗、去重、标注等操作。这一步骤旨在提高数据的质量和准确性,为后续的模型训练做准备。 3. 模型训练:使用大模型进行训练,可以选择使用预训练的语言模型(如GPT)或自定义的模型。在训练过程中,可以采用生成式对抗网络(GAN)等方法来增强模型的生成能力。 4. 检索模块构建:为了提高生成结果的准确性和相关性,需要构建一个检索模块。该模块可以使用传统的信息检索技术,如倒排索引、向量检索等,也可以使用深度学习方法,如BERT、Dense Retrieval等。 5. 数据采集:利用构建好的检索模块,对用户提出的问题或需求进行检索,获取与之相关的数据。可以根据检索结果的相关性进行排序,选择最相关的数据进行生成。 6. 数据生成:基于检索到的数据,使用大模型进行生成。可以采用生成式模型,根据检索到的数据进行文本、图像等内容的生成。生成的结果可以根据需求进行进一步的处理和优化。 7. 结果评估:对生成的结果进行评估,可以使用人工评估或自动评估的方式。评估指标可以包括生成结果的准确性、流畅性、相关性等。 8. 迭代优化:根据评估结果,对模型和检索模块进行优化和调整。可以通过增加训练数据、调整模型参数、改进检索算法等方式来提升系统的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值