微调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.xdnf.cn/news/1410522.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

tensorflow报错

参考 TensorFlow binary is optimized to use available CPU instructions in performance-critical operations._this tensorflow binary is optimized to use availab-CSDN博客 解决Python中cuBLAS插件无法注册问题_unable to register cudnn factory: attempting to re-CS…

SQL数据库

一.什么是数据库 数据库:存储数据的仓库,数据是有组织的进行存储。(database 简称DB) 数据库管理系统:管理数据库的大型软禁(DataBase Management System 简称DBMS) SQL:操作关系…

【MySQL 5.7安装时候 出现2503报错,解决方案】

MySQL5.7 安装遇 2503问题如何解决 1.能正常安装就点这里2.出现2503问题就看这2.1先看问题2.1.1在官网下载好安装包后,首先先确认安装包是否完整,排除安装包损坏的问题2.1.2 安装时候出现这个2503问题 2.2上解决方案2.2.1 打开任务管理器2.2.2 解决 1.能…

「C/C++ 01」volatile关键字 和 修改const修饰的变量

目录 一、修改const修饰的局部变量 二、无法修改const修饰的全局变量 三、volatile关键字 面试题】 一、修改const修饰的局部变量 可以通过指针和强转来修改const修饰的局部变量。 #include <iostream> using namespace std;int main(void) {const int a 1;int* pa (in…

hive表基本语法

hive表基本语法 青少年是一个美好而又是一去不可再得的时期 是将来一切光明和幸福的开端 目录 hive表基本语法 1.ROW FORMAT用法 2.LOCATION用法 3.EXTERNAL用法 &#xff08;外部表&#xff09; 4.STORED AS 用法&#xff1a;设置数据存储格式 5.TBLPROPERTIES 用法 6.P…

.位运算.

本题涉及到计算机组成与原理的相关知识 找了一篇相当不错的讲解&#xff0c;大家可以借鉴&#xff1a;位运算&#xff1a;按位与、按位或、按位异或、按位左移、按位右移-CSDN博客 给定一个长度为 n&#x1d45b; 的数列&#xff0c;请你求出数列中每个数的二进制表示中 11 的…

设计模式: 工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型…

网络架构建模:一个云案例研究-文章翻译

网络架构建模:一个云案例研究 摘要 互联网支持广泛服务的能力取决于网络架构以及未来网络所需的理论和实践创新。本文中的网络体系结构指的是计算机网络系统的结构及其物理组件、配置和通信协议之间的交互。多年来,人们对网络架构进行了各种各样的描述,其中有大量的表面图…

ICode国际青少年编程竞赛- Python-1级训练场-基本操作

ICode国际青少年编程竞赛- Python-1级训练场-基本操作 1、 Dev.step(3)2、 Dev.step(1)3、 Dev.step(7)4、 Dev.step(-1)5、 Dev.step(-5)6、 Dev.step(3) Dev.step(-8)7、 Dev.turnRight() Dev.step(1)8、 Dev.turnLeft() Dev.step(1)9、 Dev.step(4) Dev.tur…

Linux下top命令指标说明

目录 Linux下top命令指标说明1. 概览2. CPU利用率3. 内存利用率4. 进程信息 Linux下top命令指标说明 在Linux系统中&#xff0c;top 命令是一个用于实时监视系统运行状态的工具。通过 top 命令&#xff0c;我们可以了解系统的负载情况、CPU利用率、内存使用情况以及各个进程的…

免费开源语音克隆-GPT-SoVITS-WebUI只需 5 秒的声音样本

语音克隆-GPT-SoVITS-WebUI 强大的少样本语音转换与语音合成Web用户界面。 功能&#xff1a; 零样本文本到语音&#xff08;TTS&#xff09;&#xff1a; 输入 5 秒的声音样本&#xff0c;即刻体验文本到语音转换。 少样本 TTS&#xff1a; 仅需 1 分钟的训练数据即可微调模型…

Matlab|二阶锥松弛在配电网最优潮流计算中的应用

目录 一、主要内容 二、部分代码 三、程序代码 四、下载链接 一、主要内容 最优潮流计算是电网规划、优化运行的重要基础。首先建立了配电网全天有功损耗最小化的最优潮流计算模型&#xff1b;其次结合辐射型配电网潮流特点建立支路潮流约束&#xff0c;并考虑配电网中的可…

夸克网盘批量转存分享查询软件

夸克网盘批量转存分享软件&#xff0c;未解决批量转存困难问题以及批量分享困难问题&#xff0c;故研发此软件&#xff0c;无任何广告。 支持功能 夸克文件目录查询 自定义分页页码&#xff0c;分页数量 批量转存夸克文件 批量分享夸克文件 自定义导入夸克链接 使用教程…

四川景源畅信:抖音小店怎么运营?

在信息爆炸的今天&#xff0c;抖音小店凭借其便捷的操作和庞大的用户基础&#xff0c;成为了众多创业者和品牌商的新宠。如何运营好一个抖音小店&#xff0c;成为了许多商家亟待解决的问题。接下来&#xff0c;我们将从四个不同的方面&#xff0c;深入探讨抖音小店的运营之道。…

Android14之解决报错:libncurses.so.5与libtinfo.so.5缺少问题(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

linux实验小结

题目&#xff1a; 添加一个用户 loutest&#xff0c;使用 sudo 创建文件 /opt/forloutest&#xff0c;设置成用户 loutest 可以读写。截图 并把操作过程写入实验报告。 提示:如何创建一个文件呢?可以考虑 touch 命令&#xff0c;执 行 sudo touch /opt/forloutest 这个命令可…

Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint&#xff0c;基类选择 Asset Action Utility 在类默认值内&#xff0c;可以添加筛选器&#xff0c;筛选指定的类型 然后新建一个函数&#xff0c;加上4个输入&#xff1a;ReplaceFrom&#xff0c;ReplaceTo&#xff0c;Add…

Android手写自己的路由SDK

实现自己的路由框架 ​ 在较大型的Android app中常会用到组件化技术&#xff0c;针对不同的业务/基础功能对模块进行划分&#xff0c;从上到下为壳工程、业务模块、基础模块。其中业务模块依赖基础模块&#xff0c;壳工程依赖业务模块。同级的横向模块&#xff08;比如多个业务…

【数据库主从架构】

【数据库主从架构】 1. 什么是数据库的主从架构1.1 主从复制1.1.1 MySQL的主从主从复制技术三级目录 1. 什么是数据库的主从架构 随着公司业务线的增多&#xff0c;各种数据都在迅速增加&#xff0c;并且数据的读取流量也大大增加&#xff0c;就面临着数据安全问题&#xff0c;…

用栈实现队列——leetcode刷题

题目要求我们只用栈的基本操作 push to top 入栈&#xff0c;peek from top 返回栈顶元素&#xff0c;pop from top 移除并返回栈顶元素&#xff0c;size 栈的大小&#xff0c;is_empty 判断栈是否为空&#xff0c;这几个函数来实现队列&#xff0c;也就是说&#xff0c;我们在…