news 2026/10/28 5:47:38

大模型应用:关系抽取的分析和实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型应用:关系抽取的分析和实践

1 前言

关系抽取是自然语言处理中知识图谱构建的核心任务,目标是从非结构化文本中识别实体以及实体之间的语义关系,输出(头实体,关系,尾实体)结构化三元组,广泛用于知识库构建、舆情分析、智能问答、文档信息挖掘等场景。

传统关系抽取依赖复杂的特征工程,泛化能力有限;大模型凭借强大的语义理解能力,可以通过指令微调、提示词工程快速适配关系抽取任务。本文基于昇思 MindSpore 框架 + 昇腾 NPU 算力,完整讲解大模型做关系抽取的落地实践,包含任务介绍、环境准备、数据集处理、模型微调、推理验证、部署落地全流程,帮助开发者快速复现业务场景下的关系抽取能力。

2 任务背景与应用价值

2.1 什么是关系抽取

给定一段自然语句,模型识别出文本中的实体,并判断两两实体之间的关系类型。
示例输入:华为总部坐落于广东省深圳市
输出三元组:(华为,总部所在地,广东省深圳市)

分为两大技术路线:

1. 流水线方案:先实体识别,再做关系分类;

2. 联合抽取方案:实体、关系同步预测,减少误差传递,是大模型主流实践方案。

2.2 业务价值

● 知识图谱:从海量网页、文档、财报、病历文本自动构建知识三元组;

● RAG 知识库:把文档抽取结构化关系,增强检索问答的准确性;

● 行业场景:法律文书要素抽取、医疗实体关系挖掘、金融公告事件关系解析。

2.3 昇思 MindSpore 优势

昇思 MindSpore 具备自动并行、动静统一、全场景部署能力,深度适配昇腾 AI 处理器,支持大模型 LoRA 微调、全参数微调,训练阶段充分发挥 NPU 算力;训练完成后可以导出 MindIR,完成端边云多端推理部署,降低关系抽取大模型落地门槛。

3 实验环境准备

本次实践基于昇腾 910 NPU,完整软硬件环境配置如下:

组件

版本

硬件

Ascend 910 NPU(32GB)

CANN

7.0.RC1

MindSpore

2.5.0

Python

3.9

依赖库

datasets、transformers、peft、gradio

环境快速安装参考:

# 安装昇思MindSpore NPU版本 pip install mindspore==2.5.0 -f https://www.mindspore.cn/whl pip install datasets transformers peft gradio

4 数据集构建与处理

4.1 数据集选择

选用中文公开关系抽取数据集,也可以替换为企业自有领域数据。

● 通用领域:DuIE2.0(中文关系抽取标准数据集,包含 50 种关系类型)

● 领域场景:可构造自定义指令数据集,格式为指令微调格式。

4.2 大模型指令样本格式

采用指令微调范式,每一条样本构造如下:

{ "instruction": "请从文本中抽取实体关系三元组,输出(头实体,关系,尾实体)", "input": "华为总部坐落于广东省深圳市", "output": "(华为,总部所在地,广东省深圳市)" }

4.3 数据预处理核心逻辑

1. 读取原始数据集,转换为指令微调样本;

2. 使用 tokenizer 对instruction+input做文本编码;

3. 对 output 标签做编码,设置 loss mask,只计算输出部分损失;

4. 划分训练集、验证集,封装 MindSpore Dataset 迭代器。

提示:私有业务数据,需要做好数据清洗,过滤噪声文本,保证关系标签统一。

5 基于昇思实现大模型 LoRA 微调

直接全参数微调大模型占用显存高,实践中优先采用 LoRA 低秩微调,仅训练少量适配器参数,在昇腾 NPU 上即可完成训练。

5.1 模型加载

加载支持 MindSpore 后端的开源中文大模型基座(如 Qwen 系列),开启梯度检查点降低显存占用。

from mindformers import AutoModel, AutoTokenizer model = AutoModel.from_pretrained("qwen-7b") tokenizer = AutoTokenizer.from_pretrained("qwen-7b")

5.2 LoRA 配置

配置 LoRA 参数,仅对 Attention 层增加低秩矩阵,冻结基座主干权重。

from peft import LoraConfig lora_config = LoraConfig( r=8, lora_alpha=16, target_modules=["q_proj","v_proj"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM" )

5.3 训练流程

● 优化器:AdamWeightDecay;学习率设置2e-4;

● 训练轮次 epoch=3,设置梯度累积,适配单卡显存;

● 每轮结束在验证集评估 F1 指标(关系抽取核心评价指标:精确率 P、召回率 R、F1);

● 训练结束保存 LoRA 权重。

昇思 MindSpore 可以开启 NPU 混合精度,进一步加速训练。

6 推理测试

训练完成后,合并 LoRA 权重,执行关系抽取推理。

示例推理代码片段:

prompt = """请从文本中抽取实体关系三元组,输出(头实体,关系,尾实体) 输入文本:阿里巴巴成立于1999年,总部位于杭州。 输出:""" inputs = tokenizer(prompt, return_tensors="ms") output = model.generate(**inputs, max_length=128) print(tokenizer.decode(output[0], skip_special_tokens=True))

输出示例结果:
(阿里巴巴,成立时间,1999年)、(阿里巴巴,总部所在地,杭州)

效果调优小技巧

1. 如果抽取结果存在幻觉,可以增加 Few‑shot 示例到 prompt;

2. 领域数据不足,优先做提示词工程,再做微调;

3. 评估重点关注:关系类型漏检、实体边界错误、生成虚假三元组。

7 Gradio 可视化演示

基于 gradio 快速搭建简易 web 界面,输入文本直接输出关系三元组,方便业务人员快速测试效果。

import gradio as gr def predict(text): prompt = f"请从文本中抽取实体关系三元组,输出(头实体,关系,尾实体)\n输入文本:{text}\n输出:" inputs = tokenizer(prompt, return_tensors="ms") out = model.generate(**inputs,max_length=200) return tokenizer.decode(out[0],skip_special_tokens=True) demo = gr.Interface(fn=predict,inputs="text",outputs="text") demo.launch()

8 模型导出与部署

训练完成后,导出 MindIR 格式模型,使用 MindIE 推理服务,实现高并发线上关系抽取服务:

1. 将微调后模型导出 MindIR;

2. 通过 MindIE 拉起推理服务,对外提供 HTTP 接口;

3. 业务系统调用接口,传入待抽取文本,获取结构化三元组结果,对接知识图谱数据库。

9 总结与拓展

本篇实践完整演示了基于昇思 MindSpore 与昇腾算力,使用大模型完成关系抽取任务,从数据集准备、LoRA 微调、推理验证,到 Web 演示和线上部署完整链路。

拓展方向:

1. 支持文档长文本关系抽取,结合滑动窗口解决超长文本;

2. 支持重叠实体、嵌套实体的复杂联合关系抽取;

3. 结合 RAG 系统,将抽取出来的三元组存入图数据库,构建行业知识库。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 5:47:27

agent-skills:面向CLI的模型无关智能体能力协议

1. 项目概述:Agent-Skills 不是插件,而是一套可复用的智能体能力协议 “agent-skills”这个词最近在开发者社区里频繁出现,但它既不是某个具体软件的安装包,也不是某家大厂刚发布的闭源工具。我第一次在 GitHub 上看到它时&#…

作者头像 李华
网站建设 2026/10/28 5:46:56

手写四阶Runge-Kutta:从定步长实现到稳定性与误差控制

简介:本资源是一份面向高校理工科学生、科研人员及Matlab初学者的数值计算教学资料,系统讲解龙格-库塔(Runge-Kutta)方法的核心原理与工程实现。重点解析四阶五阶RK算法在Matlab中的应用逻辑,涵盖ode45等内置求解器的适…

作者头像 李华
网站建设 2026/10/28 5:45:30

外卖系统架构设计与SaaS化实践指南

1. 外卖系统选型与源码与 SaaS 实践的思考做外卖系统这些年,从零开始搭建过三套不同架构的平台,也参与过多个SaaS化改造项目。今天想聊聊在选型、源码管理和SaaS实践中的那些坑和经验。无论你是想自建外卖平台,还是准备做二开,这些…

作者头像 李华
网站建设 2026/10/28 5:44:46

2025全国省份点位数据可视化实战:shp与Excel全流程指南

省份点位数据的可视化这件事,我做过不下十个项目,从最开始的“拿到数据不知道从哪下手”,到后来能在一两个小时内把一套省级点位数据跑成可交付的地图,中间踩的坑基本都踩过一遍。这次拿到的标题是“2025全国省份点位数据&#xf…

作者头像 李华
网站建设 2026/10/28 5:44:45

jy901磁力计校准原理:最大-最小中心法与三维旋转操作解析

简介:本资源是一份面向嵌入式开发者与惯性导航初学者的MPU9050传感器校准技术文档,聚焦JY901系列模块的磁场与加速度双通道硬件级校准实践。文档系统梳理了平面校准与三维校准两种磁场标定策略的适用场景、操作要点及指令时序(含关键100ms间隔…

作者头像 李华
网站建设 2026/10/28 5:44:00

哈希表原理与应用:从基础到高级实践

1. 哈希表:程序员手中的万能钥匙第一次听说哈希表这个概念时,我正被一个数据查询性能问题困扰。当时需要从百万级用户数据中快速查找特定用户,用传统的数组遍历方式,每次查询都要耗费上百毫秒。直到同事建议"用哈希表试试&qu…

作者头像 李华