微调Mistral 7B以实现命名实体识别 (NER)

文章来源:fine-tuning-mistral-7b-for-named-entity-recognition-ner

2024 年 4 月 19 日

在自然语言处理(NLP)领域,命名实体识别(NER)被认为是一项关键任务,应用范围广泛,包括信息提取和问题解答系统。

Mistral 7B 是由 Mistral AI 开发的一种创新型开源大型语言模型,它的推出为 NLP 领域带来了重大变革。本文旨在深入探讨 Mistral 7B 在处理 NER 任务方面的能力,重点介绍如何对这一先进模型进行微调,以实现卓越的实体识别性能。

命名实体识别简介

命名实体识别(NER)是 NLP 的一项基本任务,主要用于识别文本中的命名实体并对其进行分类,例如人名、地点、组织、日期等。命名实体的精确识别对于信息检索、情感分析和知识图谱构建等众多下游应用至关重要。

传统的命名实体识别系统依赖于人工规则创建和特征工程技术,这些技术往往缺乏跨领域的可扩展性和鲁棒性。

然而,Mistral 7B 等深度学习和预训练语言模型的出现彻底改变了这一领域。这些模型提供了一种利用大量文本数据的数据驱动方法,从而提高了 NER 任务的性能和可扩展性。

锐意进取: Mistral 7B 与其他开源 LLM 的比较

Mistral 7B 作为领先的竞争者脱颖而出,提供了性能、效率和可访问性的独特融合。与同类产品相比,Mistral 7B 融合了创新的架构元素,如分组查询关注和滑动窗口关注,从而提高了推理速度和序列处理能力。

这些进步不仅使 Mistral 7B 与众不同,还凸显了它在各种自然语言处理(NLP)任务中的卓越适应性和弹性。此外,Mistral 7B 的 Apache 2.0 许可和社区驱动的开发方法营造了协作和创新的氛围,巩固了其在寻求最先进语言理解模型的研究人员和从业人员中的首选地位。

揭幕 Mistral 7B:NLP 领域的游戏规则改变者

Mistral 7B 是语言模型领域的创新力量,它拥有令人印象深刻的 70 亿个参数,经过精心设计,可以应对错综复杂的自然语言。

Mistral 7B 采用了分组查询关注(GQA)和滑动窗口关注(SWA)等最先进的功能,表现出无与伦比的性能和效率,成为包括命名实体识别在内的 NLP 任务的有力选择。

GQA 的加入使 Mistral 7B 能够加快推理速度,实现对文本数据的实时处理,这对于在动态环境中运行的 NER 任务来说是必不可少的能力。此外,SWA 使 Mistral 7B 能够有效地处理不同长度的序列,确保在各种文本输入中都能保持稳定的性能。

针对 NER 微调 Mistral 7B:释放其全部潜能

尽管 Mistral 7B 在预训练状态下表现出了令人印象深刻的能力,但通过微调过程,它的潜力得以充分发挥。在微调过程中,会对模型参数进行调整,以适应特定任务和数据集的复杂性。针对命名实体识别(NER)任务对 Mistral 7B 进行微调,需要在有注释的数据上进行额外的训练,使模型能够掌握特定领域的模式,提高识别实体的准确性。

安装微调 Mistral 所需的 Python 软件包和库

1

2

使用 UBIAI 工具进行数据标注和结构设计

在对 Mistral 7B 等大型语言模型进行微调时,数据的质量和相关性是对模型的性能和有效性产生重大影响的关键因素。利用高质量、有良好注释的数据可确保模型从准确且有代表性的示例中学习,从而提高其泛化和生成可靠输出的能力。

本教程的数据来源于 UBIAI,该平台以其强大的注释工具和全面的 NLP 功能而著称。利用 UBIAI 的注释功能,可以确保用于微调的数据经过精心标注,并针对手头的特定任务进行定制,从而最大限度地提高训练过程的有效性。

3

4

该代码从包含发票信息的文件中读取 JSON 数据。它将数据组织成结构化格式,确保没有重复注释。处理后的结果将被存储起来,用于进一步分析和微调 Mistral 的命名实体识别 (NER) 任务。

5

6

7

不同标签: {'人'、'产品'、'设施'、'金钱'、'事件'、'日期'、'组织'、'地点'}。

数据集由包含名称、文本和注释的文档组成。这些注释包括个人、组织、地点、设施、事件等各种实体,为命名实体识别(NER)任务提供了结构化数据。

8

9

现在,该数据集增加了一个全面的提示,划定了实体提取任务的说明。每条指令都为提取各种标签(包括日期、个人、组织、地点、设施、事件、金钱和产品)中的实体提供了精确的指导。提示强调了回答的准确性和相关性的重要性,提供了确保提取信息的一致性和全面性的指导原则。

这种结构化的提示有助于简化实体识别任务的数据处理,与 NER(命名实体识别)流程的目标完全一致。

10

11

这一过程包括将数据子集转换为字符串表示法,将其附加到列表中,并保存到 CSV 文件中。随后,CSV 文件被读入 Pandas DataFrame,并转换为 Hugging Face Datasets对象,以便进一步处理。

12

13

使用 BitsAndBytesConfig 配置加载 Mistral 7B 基本模型,可实现量化,从而提高内存使用效率和推理速度。此外,还加载了与 Mistral 7B 相关的标记符,确保为文本处理任务提供适当的填充和序列末端标记符设置。

14

15

本节代码使用 Weights & Biases (W&B) 平台对 Mistral 7B 的微调过程进行监控。通过使用所提供的 API 密钥与 W&B 进行身份验证,训练进度和性能指标将受到持续的实时监控。wandb.init() "函数会在指定项目("微调 Mistral 7B UBIAI")中启动新的运行,并将作业类型指定为 "训练"。启用匿名访问可确保训练数据的安全,同时促进协作监测和分析

16

初始化训练过程的超参数,定义输出目录、历时次数、批量大小、学习率和记录频率等设置。此外,它还会配置 SFTTrainer,指定模型、数据集、标记化器和其他相关参数,这些参数对微调 Mistral 7B 以完成给定任务至关重要。

17

18

19

试试我们的模型 使用用户提示测试 Mistral 7B

所提供的函数流将用户提示作为输入,并使用 Mistral 7B 模型根据该提示生成文本。它利用模型的 generate 方法,以用户提示为上下文生成文本。生成的文本将作为输出返回。

20

21

结果

22

结论

为命名实体识别微调 Mistral 7B 是实体识别任务的变革性方法,可提供更高的性能、适应性和效率。随着企业不断利用 NER 进行信息提取、知识发现等工作,Mistral 7B 所释放的功能为 NLP 的突破性进展铺平了道路。通过利用 Mistral 7B 的强大功能并针对 NER 进行微调,从业人员可以在理解和处理文本数据方面开启新的可能性,从而推动不同领域的创新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/5966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF基础应用

WPF参考原文 MVVM介绍 1.常用布局控件 1.1 布局控件 WPF(Windows Presentation Foundation)提供了多种布局容器来帮助开发者设计用户界面,以下是一些常用的布局: Grid: Grid是最常用的布局容器之一,它允许你通过定…

ArcGIS小技巧—基于点数据的密度分析(含练习数据)

关于空间点数据的密度分析,Arcgis Map中提供了基础的点密度分析和核密度分析。核密度分析可以通过手动设置搜索半径,调整密度分布的合理性。 但有时由于实际工作的需要,我们需要对研究范围做特定划分,比如根据格网规则划分做密度…

计算机毕业设计hadoop+spark+hive知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

黄河科技学院本科毕业设计 任务书 工 学部 大数据与计算机应用 科教中心 计算机科学与技术 专业 2018 级普本1/专升本1班 学号 学生 指导教师 毕业设计题目 基于实时音乐数据挖掘的个性化推荐系统设计与优化 毕业设计工作内容与基本…

Arcgis 数据分类+批量制作

1、计算统计数据 2、更改符号系统–做分类 右击图层属性–符号系统–已分类–分类 改为手动—设置分类 完成

vscode 插件 code settings sync(配置云端同步)

vscode 插件 code settings sync(配置云端同步) 电脑A和B,vscode配置都在A电脑上,此时你想要将A电脑的vscode配置同步到B电脑的vscode中 第一步:A电脑和B电脑都需要在VSCode中安装下图插件 code settings sync 第二步&…

钉钉手机端调试前端H5项目流程

此流程以Vue项目为例 一、操作步骤 在根目录下 vue.config.js 文件中将 devServer.host 设置为 0.0.0.0 // vue.config.js module.exports {devServer: {host: 0.0.0.0,...},...}本地启动项目,获取 Network App running at:- Local: http://localhost:8080/ -…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.9-1.10

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.9 归一…

msmpi 高性能并行计算 移植并行细胞自动机报错

报错情况如图 代码来源 元胞自动机生命游戏C语言并行实现 – OmegaXYZ 稍微修改,因为相对路径在 msmpi 10.1.1 中失效 Microsoft Windows [版本 10.0.22000.2538] (c) Microsoft Corporation。保留所有权利。C:\Users\ASUS>mpiexec -n 9 "C:\Users\ASUS\D…

MacBook Pro 原生安装 Ubuntu 24.04 ARM 版

趁着休假整理家里闲置的设备,看到了一台许久不用的 M2 芯片的 MacBook Pro,想着或许应该把它改造成 ARMv64 的 CI/CD 构建机,于是就有了这篇文章。 本篇文章适用于 M1、M2 全系列的设备,包括:MacBook Air、MacBook Pr…

JMeter性能压测脚本录制

第一步:电脑打开控制面板设置代理服务器 第二步:jmeter的测试计划添加一个HTTP(S)脚本记录器 在脚本记录器里配置好信息,然后保存为脚本文件(.*表示限定) 此方框内容为项目地址(可改…

单链表经典算法

一,移除链表元素 思路一 遍历数组,如果遇到链表中的元素等于val的节点就执行删除操作 typedef struct ListNode ListNode;struct ListNode* removeElements(struct ListNode* head, int val) {if(headNULL){return NULL;} ListNode*pnewhead(ListNode*)m…

大数据之数据仓库技术:ETL工具和Kettle简介

大数据之数据仓库技术:ETL工具和Kettle简介 ETL简介ETL工具和KettleKettle家族 Kettle资源KettlePack 任务调度工具 ETL简介 ETL(Extract-Transform-Load): 在大数据技术领域内,用来描述将数据从 来源端 经过 抽取(extract), 转换(transform), 加载(loa…

【Vue】结合ElementUI实现简单数据请求和页面跳转功能

一、准备工作 1、创建一个Vue-cli程序 之前的博客有。各位看官姥爷,可以自查。 2、安装ElementUI 在创建Vue-cli程序的过程中,需要在控制台执行以下指令: #安装 element-ui npm i element-ui -S #安装 SASS 加载器 cnpm install sass-loa…

毫米波雷达多人呼吸心跳检测MATLAB仿真

本文基于TI的IWR1642毫米波雷达 2T4R MIMO阵列,通过实际采集数据算法仿真,实现多人呼吸心跳检测。 文章末尾给出了本文的仿真代码。 主要内容包含: (1)雷达参数设定 (2)ADC数据导入 &#xff08…

一对一WebRTC视频通话系列(一)—— 创建页面并显示摄像头画面

本系列博客主要记录WebRtc实现过程中的一些重点&#xff0c;代码全部进行了注释&#xff0c;便于理解WebRTC整体实现。 一、创建html页面 简单添加input、button、video控件的布局。 <html><head><title>WebRTC demo</title></head><h1>…

【算法基础实验】图论-深度优先搜索和深度优先路径

深度优先(DFS) 理论基础 深度优先搜索&#xff08;DFS, Depth-First Search&#xff09;是图和树的遍历算法中的一种&#xff0c;它从一个节点开始&#xff0c;沿着树的边走到尽可能深的分支&#xff0c;直到节点没有子节点为止&#xff0c;然后回溯继续搜索下一个分支。DFS …

ubuntu外置网卡配置AP模式

外置网卡RTL8811CU设置 UBUNTU使用RTL8811CU网卡&#xff08;包含树莓派&#xff09; 外置网卡配置AP模式流程 1. 检查网卡支持情况&#xff08;是否支持AP模式&#xff09; iw list找到以上部分&#xff0c;发现支持AP 2. 安装依赖 sudo apt-get update sudo apt-get in…

c语言从入门到函数速成(1)

温馨提醒&#xff1a;本篇文章适合人群&#xff1a;刚学c又感觉那个地方不怎么懂的同学以及以及学了一些因为自身原因停学一段时间后又继续学c的同学 好&#xff0c;正片开始。 主函数 学c时最先学的是我们c语言程序的主体函数&#xff0c;c的主函数有两种写法&#xff0c;这…

25 JavaScript学习:var let const

JavaScript全局变量 JavaScript中全局变量存在多种情况和定义方式&#xff0c;下面详细解释并提供相应的举例&#xff1a; 使用var关键字声明的全局变量&#xff1a; var globalVar "我是全局变量";未使用var关键字声明的变量会成为全局变量&#xff08;不推荐使用&…

【御控物联网平台】物联网数据传输数据格式

物联网平台常用设备消息的标准数据格式为JSON&#xff0c;但是不同厂家、不同型号设备数据传输格式各异&#xff0c;给物联网平台带来数据解析的压力。御控物联网平台提供支持JSON数据消息解析功能的代码库&#xff08;JS、Java、.Net&#xff09;&#xff0c;实现设备自定义JS…