当前位置: 首页 > news >正文

在openi平台 基于华为顶级深度计算平台 openmind 动手实践

大家可能一直疑问,到底大模型在哪里有用。
本人从事的大模型有几个方向的业务。
基于生成式语言模型的海事航行警告结构化解析。
基于生成式语言模型的航空航行警告结构化解析。
基于生成式生物序列(蛋白质、有机物、rna、dna、mrna)的多模态性能预估。
基于生成式语言模型 检索增强的知识图谱增强的指令构建方法 通过结构化的规范性文档多个片段 实际业务案例 对事业单位内部文件合规性审查。
面向金融场景企业年报结构化解析与企业生成式BI构建。
面向上市公司ESG报告展开大模型赋能应用
ESG 是指环境(Environmental)、社会(Social)和公司治理(Governance)三个方面的表现标准,通常用于衡量和评估一家企业的可持续发展和社会责任。
可以基于大模型展开以下的业务体系。

  1. 文本挖掘与信息提取:

大模型能够从大量的文本数据中提取出有价值的ESG信息。例如,自动分析公司历史报告、新闻发布、财报或行业报告,识别出环境污染、社会责任、治理结构等关键因素。

  1. 趋势预测与情感分析:

通过对公司历史报告和外部新闻的情感分析,大模型可以识别出行业或公司的ESG趋势,预测公司未来在ESG方面的表现。

  1. ESG绩效评估:

结合公司披露的ESG数据与大模型分析结果,生成具体的ESG评分或评价报告,帮助投资者或其他利益相关者评估公司在可持续发展方面的实际表现。

面向法律法规的结构化解析与基于法律法规对合同条款的合规性检查与改写建议。
以上就是我做过的大模型应用
接下来我们实际操作一下华为的openmind平台。以这个为基础展开大模型普世性传播。
首先我们需要注册openi启智AI协作平台。
您的好友正在邀请您加入OpenI启智AI协作平台,畅享充沛的普惠算力资源(GPU/NPU/GCU/GPGPU/DCU/MLU)。
注册地址:https://openi.pcl.ac.cn/user/sign_up?sharedUser=nlp_future
推荐人:nlp_future
其次我们需要注册
https://modelers.cn/
魔乐社区
在魔乐社区中我们可以下载模型,上传我们训练好的模型,部署我们训练好的模型。

目前阶段通过招投标网站可以看到各地对大模型的应用有增无减。而部分招标单位因为性质特殊需要全国产化平台用来支持。
在这里插入图片描述

当然没限制使用python可是限制使用TensorFlow、pytorch。在这种背景下国产深度学习厂商们推出了mindspore、paddlepaddle、oneflow等基础深度学习架构平台。这也就是说如果我们不会国产化大模型工具链,很多的项目我们是无法推动的。
而今天我们要交流的是openmind,华为mind系列中的openmind。

openMind Library 介绍

openMind Library 是一个功能强大的深度学习开发套件,旨在提供简洁且易用的API,帮助开发者高效地进行深度学习模型的预训练、微调和推理等任务。无论是模型的开发、优化还是实际应用,openMind Library 都能为开发者提供全面的支持。它支持与主流深度学习框架(如 PyTorchMindSpore)的兼容,同时还原生支持昇腾 NPU 处理器,能够为开发者提供更高效的计算性能和优化能力。

核心特点:
  1. 简洁易用的API

    • openMind Library 提供了一个易于使用的API,设计上以降低开发门槛为目标,用户无需深入了解底层细节就能高效执行常见的深度学习任务,包括模型的预训练、微调和推理。用户只需调用高层次的接口,就可以实现快速开发和实验。
  2. 多框架兼容性

    • openMind Library 兼容目前主流的深度学习框架,支持 PyTorchMindSpore。这意味着用户可以在这两个框架中灵活选择,无论是在模型开发、训练还是推理阶段,都能够无缝切换和操作。
    • 该库可以在同一接口下处理不同框架的模型,极大地简化了跨框架的开发流程。
  3. 支持昇腾NPU

    • 昇腾NPU(AI处理器)是华为推出的一款高效能的硬件加速器,专门设计用于加速深度学习任务。openMind Library 原生支持昇腾NPU处理器,可以直接利用昇腾的高性能计算能力,提升训练和推理的速度和效率。
    • 对于需要大规模计算的深度学习任务(如图像识别、自然语言处理等),利用NPU硬件加速,可以显著提高模型的训练效率和推理性能。
  4. 多任务支持与灵活性

    • openMind Library 支持多个深度学习任务的开发,包括 图像分类、目标检测、语音识别、文本生成、情感分析 等任务。开发者只需要为任务选择合适的模型和配置,就能快速开始工作。
    • 除了传统的深度学习任务,openMind Library 还支持多模态任务,如结合文本和图像进行联合推理,扩展了模型应用的广泛性和灵活性。
  5. 自动化模型管理与推理

    • openMind Library 提供了类似 pipeline 的高层接口,支持自动化的模型管理、预处理、推理以及后处理,极大简化了用户的操作流程。开发者可以通过一行代码加载模型、执行推理并获得结果,避免了手动编写冗长代码的麻烦。
    • 此外,它支持定制化参数,能够根据不同的任务需求,自动调整模型配置和推理过程。

功能亮点

  1. 模型预训练与微调

    • openMind Library 提供了预训练模型的加载和微调接口,用户可以通过简单的 API 调用,加载各种领域的预训练模型(如BERT、ResNet、GPT等)。这些预训练模型可以用于加速模型开发和减少计算成本。
    • 在微调阶段,openMind Library 提供了灵活的超参数调节功能,可以帮助用户根据自己的数据集对模型进行微调,以适应特定的任务需求。
  2. 支持分布式训练

    • 对于大规模深度学习任务,openMind Library 支持分布式训练。无论是数据并行还是模型并行,用户都可以通过简洁的API轻松实现多机多卡训练,进一步提高训练效率。
  3. 硬件加速

    • openMind LibraryNPUGPUCPU 等硬件平台提供优化支持。对于昇腾NPU,openMind Library 提供了原生的硬件加速,确保能够高效地利用NPU的计算性能进行大规模训练和推理任务。
    • 对于GPU用户,openMind Library 同样支持对NVIDIA GPU的优化,尤其是在PyTorch框架下,能够利用GPU进行并行计算,加速深度学习训练。
  4. 跨平台支持

    • openMind Library 能够在多种操作系统上运行,包括 Linux、Windows、macOS 等。此外,它还支持在 昇腾NPU设备 上的优化运行,因此它特别适合华为云、昇腾硬件等高效计算平台。
  5. 可扩展性和定制化

    • openMind Library 提供了开放的架构,允许用户根据自己的需求定制扩展。开发者可以通过继承和扩展现有模块,添加自定义的处理流程、优化算法或者硬件适配,满足特殊应用场景的需求。
  6. 统一模型接口与推理流程

    • openMind Library 提供统一的推理接口,支持多种任务类型(如图像、文本、音频、多模态等)。开发者可以通过统一的接口快速实现多任务推理,而无需担心各类任务的具体实现细节。
    • 例如,用户只需定义任务类型(如文本分类、情感分析、图像识别等),然后通过简单的 API 调用加载和执行对应的预训练模型和推理过程。

应用场景

  1. 企业AI应用开发

    • 企业在实际应用中可以使用 openMind Library 进行AI模型的开发和部署。无论是做客户服务的聊天机器人,还是进行工业产品的视觉检测,openMind Library 都可以提供完整的开发支持。
    • 通过简单易用的API,企业开发者可以快速进行模型的训练、推理、微调等操作,加速AI应用的落地。
  2. 科研与实验

    • 在学术界,openMind Library 由于其框架兼容性、任务支持的广泛性,以及高效的训练和推理能力,能够成为科研人员进行AI实验的得力工具。无论是在自然语言处理、计算机视觉还是强化学习领域,openMind Library 都能提供丰富的功能支持。
  3. 边缘计算与物联网

    • 对于需要部署到边缘设备或物联网设备的深度学习任务,openMind Library 的硬件加速支持和多平台兼容性使其成为边缘计算应用的理想选择。昇腾NPU的硬件加速使得在资源有限的边缘设备上也能高效运行深度学习模型。

openMind Library 提供了一套简洁且强大的深度学习开发工具,帮助开发者和研究人员更快速、高效地进行模型训练、微调和推理。通过支持PyTorch和MindSpore框架以及原生兼容昇腾NPU处理器,它不仅简化了开发流程,还为大规模的计算任务提供了强大的硬件加速支持,广泛适用于企业AI应用、科研实验和边缘计算等多个场景。

接下来我们来聊聊如何通过openmind pipeline进行深度学习算法模型交互。

openmind.pipeline 是一个用于简化 AI 模型推理过程的接口方法,它将模型的预处理、推理、后处理等步骤封装在一起,使用户可以直接调用进行快速推理。通过该方法,用户可以轻松处理多种领域的模型,如文本、图像、语音等任务。

功能描述:

openmind.pipeline 方法将AI模型的各个步骤(如数据预处理、推理、后处理)进行封装,用户只需要调用该方法即可快速执行推理任务。

接口原型:

openmind.pipeline(task: Optional[str]=None,model=None,config=None,tokenizer=None,feature_extractor=None,image_processor=None,framework: Optional[Literal["pt", "ms"]]=None,**kwargs,
)

参数列表:

  • task (str, 可选):指定推理任务的名称,若提供该参数,则会使用对应任务的默认模型。常见任务如文本分类、情感分析、图片分类等。

  • model (str 或 PreTrainedModel 或 BaseModel 或 Model 或 Tuple[str, str], 可选):指定模型,可以是模型的Hub ID、本地模型路径或模型实例。支持PyTorch (PreTrainedModel) 或 MindSpore (BaseModel) 框架。

  • config (str 或 PretrainedConfig, 可选):指定用于模型初始化的配置项,通常是配置文件的路径或实例。

  • tokenizer (str 或 PreTrainedTokenizer 或 PreTrainedTokenizerFast 或 BaseTokenizer, 可选):用于模型数据编码的分词器。可以是模型的Hub ID、本地路径或 tokenizer 实例。若未提供,则会自动加载默认的 tokenizer。

  • feature_extractor (str 或 PreTrainedFeatureExtractor, 可选):用于非NLP任务(如语音、视觉等)的特征提取。可以是 Hub ID、本地路径或特征提取器实例。

  • image_processor (BaseImageProcessor, 可选):用于图像数据处理的图像处理器实例,支持图像任务中的数据预处理。

  • framework (Literal[“pt”, “ms”], 可选):指定后端框架,支持 "pt"(PyTorch) 或 "ms"(MindSpore)。

  • kwargs (可选):可定制化的额外参数,用于进一步控制 pipeline 的行为。常见的定制化选项包括:

    • revision:指定使用的模型版本,可以是分支名称、标签名称或提交ID。
    • use_fast:是否使用快速分词器。
    • token:用于访问Hub的非公开数据时需要的用户令牌。
    • device:指定 PyTorch 模型的设备,如 CPU、NPU。
    • device_map:在多设备之间分配模型的不同部分(仅支持PyTorch)。
    • torch_dtype:指定模型的 torch.Tensor 数据类型。
    • trust_remote_code:是否信任并运行从Hub加载的自定义代码(需要特别小心)。
    • audio_processor:用于音频数据处理的处理器(仅支持MindSpore)。
    • ge_config_path:MindSpore Lite 配置文件路径。
    • device_iddevice_target:在 MindSpore 中指定推理任务在哪个设备号上运行。

常见应用场景:

  • 文本任务:例如情感分析、文本生成、文本分类等。用户只需要传入相关任务名称和模型,openmind.pipeline 会自动处理文本的编码、模型推理和结果返回。

  • 图像任务:例如图像分类、目标检测、图像生成等。可以通过传入图像处理器和预训练模型来实现图像的推理。

  • 音频任务:例如语音识别、音频分类等,结合音频处理器,可以实现音频数据的处理和模型推理。

  • 多模态任务:支持处理包括文本、图像和音频在内的多模态任务,可以通过不同的处理器组合实现跨模态任务的推理。

示例:

1. 文本分类任务:
from openmind import pipeline# 使用默认模型进行情感分析
classifier = pipeline(task="sentiment-analysis")
result = classifier("I love this product!")
print(result)
2. 图像分类任务:
from openmind import pipeline# 使用预训练的图像分类模型进行推理
image_classifier = pipeline(task="image-classification", model="resnet50")
result = image_classifier("path/to/image.jpg")
print(result)
3. 多模态任务:
from openmind import pipeline# 多模态推理(如图像+文本)
multimodal = pipeline(task="image-captioning", model="blip")
result = multimodal("path/to/image.jpg")
print(result)

openmind.pipeline 提供了一个高效且易于使用的接口,用户无需关注繁琐的预处理、推理和后处理步骤,直接调用该方法即可执行各种AI模型任务。它支持多种任务类型、模型框架,并且可以通过丰富的参数定制化模型的行为,适应各种场景的需求。

接下来我们来聊聊如何通过openmind-cli命令行进行大模型交互。
以下是一份关于 openMind Library 命令行接口(CLI)的学习笔记:

一、整体概述

  • openMind Library 提供命令行接口(CLI),能让用户在 shell 环境下交互式地实现多种操作,涵盖文件上传、下载,模型的查询、删除、评估,以及单轮推理和多轮对话等功能。
  • openmind-cli 简化了操作流程,实现低代码模式,方便用户迅速启动并使用社区中的模型资源,达到开箱即用的效果,降低了技术门槛。
  • 安装 openMind Library 即可使用其命令行接口,详细安装步骤参考 openMind Library 安装指南。

二、各功能接口介绍

  1. 本地模型查询(openmind-cli list)

    • 功能及支持框架:用于查询并回显本地已下载的模型清单,支持 PyTorch 和 MindSpore 框架,可以查询模型缓存目录和指定下载目录。
    • 接口调用示例及说明
      • 遍历查询环境变量所定义的缓存目录下存储的模型:直接使用 openmind-cli list 命令。
      • 遍历查询指定目录下的模型
        • 查询 ~/.cache2/openmind/hub 目录下缓存的模型,使用 openmind-cli list --cache_dir ~/.cache2/openmind/hub 命令,注意 --cache_dir 指定的缓存路径优先级高于环境变量所指定的缓存路径优先级。
        • 查询 ./ 目录下的模型,使用 openmind-cli list --local_dir./ 命令。
        • 同时查询 --local_dir--cache_dir 目录下的模型,使用 openmind-cli list --local_dir./ --cache_dir ~/.cache2/openmind/hub 命令。
    • 全量参数参考:可参考 openmind-cli list 接口文档。
  2. 本地模型删除(openmind-cli rm)

    • 功能及支持框架:用于删除给定的本地模型,可指定模型缓存目录以及本地目录,同样支持 PyTorch 和 MindSpore 框架。
    • 接口调用示例及说明
      • 删除默认缓存路径下的模型:例如删除 bluelm_7b_chat 模型,使用 openmind-cli rm PyTorch-NPU/bluelm_7b_chat 命令,会遍历查询默认缓存路径下的该模型,若找到则删除并回显执行结果以及原存储路径,未找到则报错反馈给用户。
      • 删除指定缓存路径下的模型:如删除 ~/.cache2/openmind/hub 目录下的 bluelm_7b_chat 模型,使用 openmind-cli rm PyTorch-NPU/bluelm_7b_chat --cache_dir ~/.cache2/openmind/hub 命令。
      • 删除指定本地路径下的模型:使用 openmind-cli rm PyTorch-NPU/bluelm_7b_chat --local_dir /your/local/path/ 命令,会遍历查询对应本地目录下的该模型,找到则删除,未找到报错。
      • 删除指定缓存路径和指定本地路径下的模型:使用 openmind-cli rm PyTorch-NPU/bluelm_7b_chat --local_dir /your/local/path/ --cache_dir ~/.cache2/openmind/hub 命令,遍历相应目录下的模型进行删除操作,找不到则报错,成功删除有对应回显示例展示。
    • 全量参数参考:参考 openmind-cli rm 接口文档。
  3. 文件下载(openmind-cli pull)

    • 功能及支持框架:用于下载指定模型/数据集/体验空间文件至缓存下载目录或本地下载目录,支持 PyTorch 和 MindSpore 框架。
    • 接口调用示例及说明
      • 下载至默认缓存下载路径:例如下载 PyTorch-NPU/bert_base_cased 至默认缓存下载路径,使用 openmind-cli pull PyTorch-NPU/bert_base_cased 命令,成功下载有相应回显示例。
      • 按照配置文件下载至默认缓存下载路径或指定缓存下载目录
        • 按照 config.yaml 中存储的配置项下载至默认缓存下载路径,使用 openmind-cli pull PyTorch-NPU/bert_base_cased --yaml_path./config.yaml 命令,若 config.yaml 中定义了 cache_dir,则下载至配置的下载路径。
        • 按照 config.yaml 中配置项下载至 --cache_dir 指定的缓存下载目录,使用 openmind-cli pull PyTorch-NPU/bert_base_cased --cache_dir ~/.cache2/openmind/hub --yaml_path./config.yaml 命令,此时 CLI 指令中定义的 --cache_dir 会覆盖 config.yaml 中以键值对形式定义的 cache_dir(若存在)。
    • 全量参数参考:参考 openmind-cli pull 接口文档。
  4. 文件上传(openmind-cli push)

    • 功能及支持框架:用于上传指定目录下的文件至指定仓库,支持 PyTorch 和 MindSpore 框架。
    • 接口调用示例及说明
      • 将当前目录下的文件上传至指定仓库:例如上传至 your_organization/your_repo 仓库,使用 openmind-cli push your_organization/your_repo --token xxx 命令,成功上传有相应回显示例。
      • 按照配置文件上传模型文件夹至指定仓库
        • 按照 config.yaml 中存储的配置项上传模型文件夹至 your_organization/your_repo 仓库,使用 openmind-cli push your_organization/your_repo --yaml_path./config.yaml 命令,此时 token 必须写入 config.yaml 中,还给出了 config.yaml 文件示例内容及各参数含义。
        • 按照 config.yaml 中配置上传指定文件夹路径的模型文件夹至指定仓库,使用 openmind-cli push your_organization/your_repo --folder_path ~/.cache2/openmind/hub --yaml_path./config.yaml 命令,若 config.yaml 中也定义了 folder_path,会被 CLI 指令中定义的覆盖,且注意 token 要写入 config.yaml 中。
    • 全量参数参考:参考 openmind-cli push 接口文档。
  5. 单轮推理(openmind-cli run)

    • 功能及支持框架:基于指定模型进行单轮推理,实现方式为 pipeline,兼容所有 pipeline 支持的模型,支持 PyTorch 和 MindSpore 框架,若推理不兼容的模型,pipeline 会给出对应模型的报错。
    • 接口调用示例及说明
      • 针对指定任务使用默认模型推理:例如针对 text-generation 任务,使用 PyTorch 框架下的默认模型 Baichuan/baichuan2_7b_chat_pt 进行推理,使用 openmind-cli run text-generation --framework pt --input "What is AI?" 命令。
      • 使用指定模型进行特定任务推理:使用 PyTorch-NPU/bert_base_cased 进行 fill-mask 任务推理,使用 openmind-cli run PyTorch-NPU/bert_base_cased --task fill-mask --input "An apple a day, keeps [MASK] away" 命令。
      • 结合配置文件及其他参数推理:通过加载 config.yaml 文件中配置的相关参数进行推理,如使用模型 PyTorch-NPU/bert_base_cased 进行 fill-mask 任务推理,使用 openmind-cli run PyTorch-NPU/bert_base_cased --input "An apple a day, keeps [MASK] away" --yaml_path./config.yaml 命令,且说明了命令行指定参数与 yaml 配置文件参数重名时,命令行指定参数优先级更高这一规则。
    • 全量参数参考:参考 openmind-cli run 接口文档。
  6. 多轮对话(openmind-cli chat)

    • 功能及操作说明:基于指定模型开启多轮对话,输入 exit 退出会话,输入 clear 清除上下文对话记忆。
    • 接口调用示例及说明
      • 使用指定模型开启多轮对话:例如使用 Baichuan/Baichuan2_7b_chat_pt 开启多轮对话,使用 openmind-cli chat Baichuan/Baichuan2_7b_chat_pt 命令。
      • 结合镜像或配置文件开启多轮对话
        • 通过指定 tag 的镜像使用模型开启多轮对话,如 openmind-cli chat Baichuan/Baichuan2_7b_chat_pt --docker openeuler-python3.9-cann8.0.rc2.beta1-pytorch2.1.0-openmind0.8.0 命令。
        • 加载 config.yaml 文件中配置的相关参数使用模型开启多轮对话,使用 openmind-cli chat Baichuan/Baichuan2_7b_chat_pt --yaml_path./config.yaml 命令,同样遵循命令行指定参数与 yaml 配置文件参数重名时,命令行指定参数优先级更高的规则。
    • 全量参数参考:参考 openmind-cli chat 接口文档。
  7. 大语言模型评估(openmind-cli lmeval)

    • 功能及支持框架:使用 EleutherAI lm-evaluatin-harness 评估 LLM,目前仅支持 transformersAutoModelForCausalLMAutoModelForSeq2SeqLM 类模型评估,且仅支持 PyTorch 框架。
    • 支持的任务类型及使用场景
      • arithmetic:评估模型进行基础算术运算能力,含加法、减法等基本数学问题,测试基本数学计算能力时可用。
      • gsm8k:包含一系列小学数学问题,用于评估模型解决实际数学问题尤其是多步骤推理问题的能力。
      • mmlu:多语言多项选择问题集,评估模型在不同语言和文化背景下的理解和推理能力,测试多语言泛化能力时使用。
      • mgsm_cot_native:要求模型用问题的语言生成中间推理步骤,评估多语言环境中复杂推理并生成推理步骤的能力。
      • mgsm_direct:要求模型直接解决问题,评估无辅助情况下解决数学问题的能力。
      • truthfulqa:评估模型在给定上下文中进行真实问答的能力,测试理解和回答真实世界问题的能力时用。
      • hellaswag:常识推理任务,要求从给定选项中选最合适的接下来可能发生的事件,测试常识推理和预测能力。
      • ai2_arc:需要模型深入推理和解决问题,包含科学问题等需复杂推理的任务,评估解决需深入推理和背景知识问题的能力。
    • 接口调用示例及说明
      • 使用不同数据集评估指定模型精度:分别给出了使用 arithmeticgsm8kmmlumgsm_cot_nativemgsm_directtruthfulqahellaswagai2_arc 等数据集评估 Baichuan/Baichuan2_7b_chat_pt 精度的示例及相应执行成功的结果展示(结果以表格形式呈现各指标数据)。
      • 显示当前支持的任务(评估集):使用 openmind-cli lmeval --tasks list 命令可查看当前支持的任务列表,如 arithmeticgsm8k 等。
    • 全量参数参考:参考 openmind-cli lmeval 接口文档。

这份学习笔记对 openMind Library 命令行接口的各主要功能进行了梳理,方便后续使用时查阅各功能对应的命令、参数及使用场景等关键信息,有助于更高效地运用该命令行工具开展相关操作。

最后我们展开openmind的实际操作。

创建openi项目
在这里插入图片描述新建调试任务
在这里插入图片描述
选择华为64G显存计算资源 选择openmind镜像:openmind_cann8
在这里插入图片描述切换环境

conda activate openmind-pt

更新openmind

pip install -U openmind[pt]

在魔乐社区找到qwen2.5 7B instruct

通过openmind cli 下载 模型

openmind-cli pull AI-Research/Qwen2.5-7B-Instruct

通过openmind cli 与模型进行命令行对话

openmind-cli chat AI-Research/Qwen2.5-7B-Instruct

当然64GB的显存可以支撑足够大的模型我们也可以尝试与Qwen2.5-14B-Instruct、Qwen2.5-30B-Instruct进行生成交互。

除了算子层面的创新 openmind也欢迎产品层面的创新 例如基于openmind实现rag 基于openmind实现kag
在基于 openMind 实现 RAG(Retrieval-Augmented Generation)和 KAG(Knowledge-Augmented Generation)时,您可以使用一些先进、加轻量级或针对特定任务优化的模型,如 LLaMAQwenChatGLM。这些模型在不同的应用场景中表现出色,能够提升生成质量、上下文理解能力和生成效率。

下面是如何基于 openMind 库结合这些模型进行 RAGKAG 任务的实现思路:

1. 基于 openMind 实现 RAG (Retrieval-Augmented Generation) 与 LLaMA, Qwen, ChatGLM

RAG 概述:

RAG 通过结合外部检索模块和生成模块,使得生成模型可以结合从知识库中检索到的信息,生成更具上下文相关性的文本。对于 LLaMAQwenChatGLM 这些新兴模型,它们在自然语言理解和生成上都有出色的表现,适合用于 RAG 模式。

基于 openMind 实现 RAG 的思路:
  1. 检索模块

    • 知识检索openMind 提供强大的文本检索功能,可以结合 LLaMAQwenChatGLM 来从大规模文档库或外部知识库中检索相关信息。检索模块可结合 Dense Retriever(如 DPR)或 TF-IDF 等算法,获取最相关的文档片段。
    • openMind 提供了与这些模型无缝对接的接口,可以将检索到的信息传递给生成模块。
  2. 生成模块

    • LLaMAQwenChatGLM 都是非常适合生成任务的模型。在 openMind 框架下,可以将这些生成模型作为后端生成模块,与检索到的内容一起进行生成,提供更具上下文相关性的回答或文本。
    • LLaMA 是 Meta 提出的轻量级高效大模型,适用于多任务生成任务,能够在大规模数据上进行高效推理。
    • Qwen 是由阿里巴巴推出的开放模型,特别在处理中文语料方面表现突出,适合跨语言任务。
    • ChatGLM 是由智谱 AI 推出的对话生成模型,能够进行流畅的对话生成,尤其适用于问答和对话系统。
  3. 多任务协同

    • openMind 可以将 LLaMAQwenChatGLM 融合到多任务推理中,通过协同工作完成更复杂的生成任务。例如,您可以同时在一个模型中进行情感分析、实体识别和对话生成。
  4. 硬件加速

    • RAG 的实际推理过程中,结合 openMind 对 NPU、GPU 等硬件平台的优化支持,可以提高模型的推理效率,特别是在面对大规模检索和生成任务时,利用硬件加速可以显著缩短推理时间。
示例应用场景:
  • 智能问答系统:结合 LLaMAQwenChatGLM,在用户提问时,首先通过检索模块获取相关文档,然后使用生成模块结合外部知识生成准确的回答。

  • 跨语言对话系统:利用 Qwen 的跨语言处理能力,结合外部文档进行多语言问答或对话生成,能够实现更加流畅和智能的对话体验。

  • 文档自动生成:从外部知识库或企业文档中检索关键信息,并使用 LLaMAChatGLM 生成相关文档或总结。


2. 基于 openMind 实现 KAG (Knowledge-Augmented Generation) 与 LLaMA, Qwen, ChatGLM

KAG 概述:

KAG(Knowledge-Augmented Generation)通过结合外部结构化或非结构化知识源(如知识图谱、数据库等)来增强生成模型的输出。与 RAG 的检索不同,KAG 更加注重将深度学习模型与现有的专业知识库结合,从而提高生成内容的准确性和可信度。

基于 openMind 实现 KAG 的思路:
  1. 知识库集成

    • openMind 提供了与各种知识库的集成接口,可以将 LLaMAQwenChatGLM 与外部知识库(如知识图谱、专业领域数据库等)结合。通过开放接口,您可以将检索到的知识(例如事实性信息、规则或专家数据)注入到生成模块中,从而提高生成文本的可信度和准确性。
  2. 生成模块

    • 通过将 LLaMAQwenChatGLM 模型作为生成模块,结合外部知识库进行推理,生成准确、事实性强的内容。生成模型会根据提供的背景信息(如知识图谱中的实体关系或数据库中的记录)进行增强,从而生成更为精确的回答、文章或摘要。

    • LLaMAQwen 在处理开放域问题时非常强大,能够灵活地将知识整合到生成过程中,尤其是在跨领域的任务中非常高效。

    • ChatGLM 则适用于更具对话性的应用场景,在与用户互动时,能够通过集成的知识库生成更加自然且符合实际知识的回答。

  3. 知识推理与优化

    • KAG 任务不仅仅是将知识库信息传递给生成模型,还可以结合推理和优化算法,通过复杂的推理过程来生成更加深入和逻辑性强的内容。例如,在专业领域问答中,生成模型可以通过推理路径生成更符合实际的答案,而不是仅仅基于模板生成。
  4. 硬件加速

    • 同样,利用 openMind 对硬件的优化,特别是在处理需要大量知识库查询和生成的任务时,NPU、GPU 的加速能够显著提高推理速度,使得模型可以实时响应复杂的查询。
示例应用场景:
  • 学术文章生成:利用外部知识库中的学术资源或论文数据,结合 LLaMAQwen 生成高质量的学术文章、研究报告或文献综述。

  • 医疗领域:结合医疗知识图谱,使用 ChatGLMQwen 生成精准的医疗解答,支持医生和患者的互动,帮助生成个性化的健康建议。

  • 智能客服与法律顾问:通过将专业领域的知识库(如法律法规)与 LLaMAQwen 结合,生成准确的法律咨询答案。


通过将 LLaMAQwenChatGLM 等先进的生成模型与 openMind 库结合,您可以轻松实现 RAGKAG 任务。这些模型不仅能够提供高效的生成能力,还能根据外部知识库或检索系统的增强,使得生成内容更加精准、专业和上下文相关。在实际应用中,无论是智能问答、跨语言对话、文档生成,还是领域专业知识生成,这些模型都能够提供强大的支持。

相关文章:

在openi平台 基于华为顶级深度计算平台 openmind 动手实践

大家可能一直疑问,到底大模型在哪里有用。 本人从事的大模型有几个方向的业务。 基于生成式语言模型的海事航行警告结构化解析。 基于生成式语言模型的航空航行警告结构化解析。 基于生成式生物序列(蛋白质、有机物、rna、dna、mrna)的多模态…...

KF UKF

我需要Kalman 现在,主要是用来处理检测问题情况里的漏检,因为模拟了一段2D, (x,y)的数据,为了看效果,画的线尽量简单一点: import numpy as np import matplotlib.pyplo…...

中伟视界:AI智能分析算法如何针对非煤矿山的特定需求,提供定制化的安全生产解决方案

非煤矿山智能化改造,除了政策文件,上级监管单位需要安装的AI智能分析算法功能之外的,矿方真正关心的,能解决矿方安全生产隐患的AI智能分析算法功能有哪些呢? 经过与矿方的现场交流沟通,收集第一现场人员对安…...

Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失

Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失 Addressable Play Mode Script加载模式 选择 Use Existiing Build 1.Unity 切换到 PC 平台,执行 Addressable Build 运行,加载 bundle 内的预制体 显示正常 2.Unit…...

Pytest-Bdd-Playwright 系列教程(10):配置功能文件路径 优化场景定义

Pytest-Bdd-Playwright 系列教程(10):配置功能文件路径 & 优化场景定义 前言一、功能文件路径的配置1.1 全局设置功能文件路径1.2. 在场景中覆盖路径 二、避免重复输入功能文件名2.1 使用方法2.2 functools.partial 的背景 三、应用场景总…...

rust逆向初探

rust 逆向葵花宝典 rust逆向技巧 rust逆向三板斧: [!NOTE] 快速定位关键函数 (真正的main函数):观察输出、输入,字符串搜索,断点等方法。定位关键 加密区 :根据输入的flag,打硬件断点,快速捕获…...

【Linux】apt 关闭 ssl 认证

【注意】apt 关闭 ssl 认证可能会引起软件安装风险,请尽量避免关闭。 执行以下命令可以实现全局关闭 sll 验证。 echo Acquire::https::Verify-Peer "false"; >> /etc/apt/apt.conf.d/99disable-signature-verificationecho Acquire::https::Verif…...

【算法】P5018 对称二叉树

题目 P5018 对称二叉树 https://www.luogu.com.cn/problem/P5018 代码 思路:领接表存储二叉树,unordered_map存储各个节点对应的值。dfs遍历一下各个子树的大小个数,再写个递归判断是否是对称二叉树,如果是就更新全局答案。 #…...

Unifying Top-down and Bottom-up Scanpath Prediction Using Transformers

Abstract 大多数视觉注意力模型旨在预测自上而下或自下而上的控制,这些控制通过不同的视觉搜索和自由观看任务进行研究。本文提出了人类注意力变换器(Human Attention Transformer,HAT),这是一个能够预测两种形式注意力…...

JavaSE(十四)——文件操作和IO

文章目录 文件操作和IO文件相关概念Java操作文件文件系统操作文件内容操作字节流FileOutputStreamFileInputStream代码演示 字符流FileWriterFileReader代码演示 缓冲流转换流 案例练习 文件操作和IO 文件相关概念 文件 通常指的是包含用户数据的文件,如文本文件、…...

【视觉SLAM】4b-特征点法估计相机运动之PnP 3D-2D

文章目录 0. 前言1. PnP求解1.1 直接线性变换DLT1.2 P3P1.3 光束平差法BA2. 实现0. 前言 透视n点(Perspective-n-Point,PnP)问题是计算机视觉领域的经典问题,用于求解3D-2D的点运动。换句话说,当知道 N N N个世界坐标系中3D空间点的坐标以及它们在图像上的投影点像素坐标…...

android 性能分析工具(04)Asan 内存检测工具

1 Asan工具简介 1.1 Asan工具历史背景 AddressSanitizer(ASan)最初由Google开发,并作为LLVM项目的一部分。ASan的设计目的是帮助开发者检测并修复内存错误,如堆栈和全局缓冲区溢出、使用已释放的内存等,这些问题可能…...

html中select标签的选项携带多个值

搜索参考资料&#xff1a;SELECT标签中的选项可以携带多个值吗&#xff1f; 【摘抄】&#xff1a; 它可能有一个select选项中的多个值&#xff0c;如下所示。 <select id"ddlEmployee" class"form-control"> <option value"">-- S…...

Lambda表达式如何进行调试

一、概述 Java8提供了lambda表达式&#xff0c;方便我们对数据集合进行操作&#xff0c;我们使用lambda表达式的时候&#xff0c;是不是有这样的疑问&#xff0c;如何对执行过程中的中间数据进行调试呢&#xff1f; 二、例子 在下面的例子中&#xff0c;我们实现随机最多生成…...

C++ —— 剑斩旧我 破茧成蝶—C++11

江河入海&#xff0c;知识涌动&#xff0c;这是我参与江海计划的第2篇。 目录 1. C11的发展历史 2. 列表初始化 2.1 C98传统的{} 2.2 C11中的{} 2.3 C11中的std::initializer_list 3. 右值引用和移动语义 3.1 左值和右值 3.2 左值引用和右值引用 3.3 引用延长生命周期…...

HTML5好看的音乐播放器多种风格(附源码)

文章目录 1.设计来源1.1 音乐播放器风格1效果1.2 音乐播放器风格2效果1.3 音乐播放器风格3效果1.4 音乐播放器风格4效果1.5 音乐播放器风格5效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&…...

C++设计模式行为模式———迭代器模式中介者模式

文章目录 一、引言二、中介者模式三、总结 一、引言 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 中介者模式可以减少对象之间混乱无序的依赖关系&…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十五,解码相关,将h264文件进行帧分隔变成avpacket

前提 前面我们学习了 将YUV数据读取到AVFrame&#xff0c;然后将AVFrame通过 h264编码器变成 AVPacket后&#xff0c;然后将avpacket直接存储到了本地就变成了h264文件。 这一节课&#xff0c;学习解码的一部分。我们需要将 本地存储的h264文件进行帧分隔&#xff0c;也就是变…...

力扣 LeetCode 104. 二叉树的最大深度(Day7:二叉树)

解题思路&#xff1a; 采用后序遍历 首先要区别好什么是高度&#xff0c;什么是深度 最大深度实际上就是根节点的高度 高度的求法是从下往上传&#xff0c;从下往上传实际上就是左右中&#xff08;后序遍历&#xff09; 深度的求法是从上往下去寻找 所以采用从下往上 本…...

如何高效实现汤臣倍健营销云数据集成到SQLServer

新版订单同步-&#xff08;Life-Space&#xff09;江油泰熙&#xff1a;汤臣倍健营销云数据集成到SQL Server 在企业信息化建设中&#xff0c;数据的高效集成和管理是提升业务运营效率的关键。本文将分享一个实际案例——如何通过新版订单同步方案&#xff0c;将汤臣倍健营销云…...

Vue3中使用:deep修改element-plus的样式无效怎么办?

前言&#xff1a;当我们用 vue3 :deep() 处理 elementui 中 el-dialog_body和el-dislog__header 的时候样式一直无法生效&#xff0c;遇到这种情况怎么办&#xff1f; 解决办法&#xff1a; 1.直接在 dialog 上面增加class 我试过&#xff0c;也不起作用&#xff0c;最后用这种…...

具身智能之Isaac Gym使用

0. 简介 Isaac Gym 是由 NVIDIA 提供的一个高性能仿真平台&#xff0c;专门用于大规模的机器人学习和强化学习&#xff08;RL&#xff09;任务。它结合了物理仿真、GPU加速、深度学习框架互操作性等特点&#xff0c;使得研究人员和开发者可以快速进行复杂的机器人仿真和训练。…...

【大数据学习 | Spark】spark-shell开发

spark的代码分为两种 本地代码在driver端直接解析执行没有后续 集群代码&#xff0c;会在driver端进行解析&#xff0c;然后让多个机器进行集群形式的执行计算 spark-shell --master spark://nn1:7077 --executor-cores 2 --executor-memory 2G sc.textFile("/home/ha…...

《Python制作动态爱心粒子特效》

一、实现思路 粒子效果&#xff1a; – 使用Pygame模拟粒子运动&#xff0c;粒子会以爱心的轨迹分布并运动。爱心公式&#xff1a; 爱心的数学公式&#xff1a; x16sin 3 (t),y13cos(t)−5cos(2t)−2cos(3t)−cos(4t) 参数 t t 的范围决定爱心形状。 动态效果&#xff1a; 粒子…...

Jmeter 如何导入证书并调用https请求

Jmeter 如何导入证书并调用https请求 通过SSL管理器添加证书文件 支持添加的文件为.p12&#xff0c;.pfx&#xff0c;.jks 如何将pem文件转换为pfx文件&#xff1f; 在公司内部通常会提供3个pem文件。 ca.pem&#xff1a;可以理解为是根证书&#xff0c;用于验证颁发的证…...

Python程序15个提速优化方法

目录 Python程序15个提速优化方法1. 引言2. 方法一&#xff1a;使用内建函数代码示例&#xff1a;解释&#xff1a; 3. 方法二&#xff1a;避免使用全局变量代码示例&#xff1a;解释&#xff1a; 4. 方法三&#xff1a;使用局部变量代码示例&#xff1a;解释&#xff1a; 5. 方…...

足球虚拟越位线技术FIFA OT(二)

足球虚拟越位线技术FIFA OT&#xff08;二&#xff09; 在FIFA认证测试过程中&#xff0c;留给VAR系统绘制越位线的时间只有90秒&#xff08;在比赛中时间可能更短&#xff09;&#xff0c;那么90秒内要做什么事呢&#xff0c;首先场地上球员做出踢球动作&#xff0c;然后VAR要…...

centos7.9单机版安装K8s

1.安装docker [rootlocalhost ~]# hostnamectl set-hostname master [rootlocalhost ~]# bash [rootmaster ~]# mv /etc/yum.repos.d/* /home [rootmaster ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [rootmaster ~]# cu…...

图像编辑一些概念:Image Reconstruction与Image Re-generation

图像编辑本质上是在“图像重建”&#xff08;image reconstruction&#xff09;和“图像再生成”&#xff08;image re-generation&#xff09;之间寻找平衡。 1. Image Reconstruction&#xff08;图像重建&#xff09; 定义&#xff1a;图像重建通常是指从已有的图像中提取信…...

【STM32】在 STM32 USB 设备库添加新的设备类

说实话&#xff0c;我非常想吐槽 STM32 的 USB device library&#xff0c;总感觉很混乱。 USB Device library architecture 根据架构图&#xff1a; Adding a custom class 如果你想添加新的设备类&#xff0c;必须修改的文件有 usbd_desc.cusbd_conf.cusb_device.c 需要…...

自己如何建设网站/宁波正规优化seo价格

C编译器生成的默认函数话题引入&#xff1a; 对象的赋值与复制是如何进行的&#xff1f;他们的区别是什么&#xff1f;如果一个空的自定义类型能否执行这些操作&#xff1f; 对象赋值&#xff1a;通过“ ”运算符重载 User a(10),b; b a; 对象复制&#xff1a;调用拷贝构造函…...

在wordpress中rss订阅的步骤是什么?/sem竞价托管多少钱

多核CPU中&#xff0c;要很好地发挥出多个CPU的性能的话&#xff0c;必须保证分配到各个CPU上的任务有一个很好的负载平衡。否则一些CPU在运行&#xff0c;另外一些CPU处于空闲&#xff0c;无法发挥出多核CPU的优势来。要实现一个好的负载平衡通常有两种方案&#xff0c;一种是…...

比较好的营销网站/百度营销推广靠谱吗

其实在matlab中调用系统函数fspecial和imfilter这两个函数就能很简单的实现动感模糊&#xff0c;不过我可不想就这样简单的实现&#xff0c;所以就自己从头写了。动感模糊最复杂的就是构造卷积矩阵了&#xff0c;卷积矩阵由两个参数决定&#xff0c;模糊半径r和模糊角度theta&a…...

网站制作应该选什么/如何在百度上做广告

v-model v-bind v-on v-if v-for v-html v-pre v-text v-show...

北京建委官网站/深圳网络公司推广平台

Layer.Color 属性用来获取或指定图层的覆盖颜色。 VBA参考代码 下面的VBA代码例子将活动层中的颜色覆盖设置为True&#xff0c;将覆盖颜色设置为RGB红色。OverrideColor 表示是否覆盖颜色&#xff0c;RGBAssign 用来分配一个RGB颜色给指定的图层。 ActiveLayer.OverrideColo…...

创建吃的网站怎么做/竞价账户

1.doc文档的查看是这样的需要转换成html&#xff0c;保存路径&#xff0c;直接打开html浏览 2.应用Microsoft.Office.Interop.Word组件 3.操作代码 object filePath Server.MapPath("doc文件相对路径"); object readOnly true; object addToRecentFiles false; ob…...