自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 低成本微调长文本LLM

在有限的设备资源上微调长文本的LLM显得很重要了。中文Llama2-7b支持的最大长度为4k,Qwen1.5-7b支持的最大长度为32k,Qwen1.5-14b支持的最大长度为32k,Qwen-14b支持的最大长度为8k,Baichuan2-13b支持的最大长度为4k。在原有的预训练模型上微调比支持的最大长度的长的文本面临两个问题:如何修改旋转位置编码支持更长的文本,一个是有限的资源上LLM微调长文本。在采用LoRA的方式微调LLM,梯度更新的参数为每一层的线性层相应的lora参数,例如表达式中的。

2024-04-30 21:45:08 982

原创 低成本微调LLM

最近在微调不同量级上的大模型,包括Llama-2-7b,Llama-2-13b,Llama-2-70b,Yi-34b,Qwen-14b,Qwen-72b等大模型。在有限的资源上微调大模型,节约显存,可以考虑使用LoRA这个算法,来自论文《LoRA: Low-Rank Adaptation of Large Language Models》,目前可以用的包有两个,分别是loralib 和peft这两个包,其中peft 和huggingface 中的transformers结合一起使用非常方便大家的使用。LL

2024-04-13 17:27:34 804

原创 大模型字典中加入特殊字符

这里以llama2-7b为例介绍了添加字符的过程,有时候会碰到预训练模型的config.json中的vocab_size的值和tokenizer的字典的值大,可能是由于预训练的时候使用了megatron中的tp导致的,可以先把embedding和lm_header的这两层权重的维度截取到和tokenizer的字典的值一样大再进行添加tokens。一般在大模型中base字典中不包含这些特殊字符,然后在关于大模型的chat模型中字典会有这几个特殊字符的,只不过每一个大模型的特殊字符表示不一样。

2024-03-10 16:49:28 379

原创 生成模型的中Attention Mask说明

生成模型中的attention mask 学习理解

2022-09-25 17:49:43 5145 4

原创 CPT文本生成

文本生成

2022-08-06 17:44:12 890 1

原创 transformers中BertPreTrainedModel使用说明

transformers中学习记录

2022-07-16 15:26:06 4971 2

原创 关系抽取—OneRel

关系抽取

2022-07-10 13:56:23 2215 7

原创 标点恢复--Incorporating External POS Tagger for Punctuation Restoration

标点符号恢复

2022-07-02 11:54:47 1687 3

原创 文本纠错--CRASpell模型

文本纠错

2022-06-05 23:28:46 3364 6

原创 BertModel和BertForMaskedLM使用介绍

BertModel和BertForMaskedLM使用介绍在transformers中有BertModel和BertForMaskedLM这个类,直接调用。在实体抽取,文本分类等任务中常用使用的是BertModel获取句子的embedding 向量,BertForMaskedLM可以得到mask处的文字,最近在做一个任务遇到了BertForMaskedLM的使用,记录一下。BertModeltorch 代码如下import torchfrom transformers import BertMod

2022-05-28 23:04:08 9454 10

原创 DiffCSE

DiffCSE模型这篇论文DiffCSE: Difference-based Contrastive Learning for Sentence Embeddings提出了 DiffCSE,一种用于学习句子嵌入的无监督对比学习框架。 DiffCSE 学习对原始句子和编辑句子之间的差异敏感的句子嵌入,其中编辑句子是通过随机mask原始句子然后从masked language模型中采样获得的。DiffCSE是对SimCSE模型的优化。这篇论文是发表于2022NAACL,代码地址为代码论文亮点(1)目前在S

2022-05-21 17:29:22 890 3

原创 TableQA -- Tapas模型介绍

TableQA – TAPAS模型介绍TAPAS 是2020年谷歌在ACL中的TAPAS: Weakly Supervised Table Parsing via Pre-training提出来的。亮点(1) TAPAS模型在tableqa问题中不需要生成逻辑表达式。(2) TAPAS是采用弱监督方式训练,分别得到tableqa中的cell值和聚合函数TAPAS 模型TAPAS 是基于BERT encoder以及额外的表格位置embedding特征,模型加了两个分类层,分别选择表cell和聚合函

2022-04-30 22:17:13 1885

原创 Text-to-SQL---RAT-SQL模型

RAT-SQLRAT-SQL是微软在2020 ACL发表的论文RAT-SQL: Relation-Aware Schema Encoding and Linking for Text-to-SQL Parsers 提出来的,这个模型在Spider数据集上的结果为65.6%。RAT-SQL代码的地址为https://github.com/Microsoft/rat-sql,笔者尝试了paddle 版本的RAT-SQL代码https://github.com/PaddlePaddle/Research/tre

2022-02-19 18:14:03 2697 6

原创 Prompt-Learning

Prompt-Learning    Prompt Learning(提示学习)是指对输入文本信息按照特定模板进行处理,把任务重构成一个更能充分利用预训练语言模型处理的形式。Prompting使得预训练模型和下游任务之间更加接近,这一点儿与fine-tuning不同,fine-tuning是使用预训练模型做下游任务,prompt learning是各种下游任务适应预训练模型,根据不同的预训练模型重构下游任务。不同的prompt learning学习任务这里重点介绍基于清华大学公开的openprompt

2022-02-15 23:26:52 3053

原创 Text-to-SQL模型----IRNet

Text-to-SQL模型----IRNET笔者最近在做Text-to-SQL任务,看了这篇论文记录一下理解过程,如有理解错误,欢迎大家指正。IRNET模型是微软2019年发表于ACL的论文,论文题目为Towards Complex Text-to-SQL in Cross-Domain Database with Intermediate Representation,论文下载地址https://arxiv.org/pdf/1905.08205.pdf代码地址为https://github.com/

2021-10-28 22:22:47 1241

原创 关系抽取模型----SpERT模型

关系抽取模型----SpERT模型SpERT模型是联合式抽取模型,同时抽取实体和关系。SpERT模型采用分类的思想实现联合抽取,实体抽取和关系抽取模型均为分类模型。SpERT模型是Span-based Joint Entity and Relation Extraction with Transformer Pre-training(2020)提出的,代码地址,SpERT模型(1) 实体抽取和关系抽取均采用分类的思想(2) 采用穷近的思想预测给定文本中所有可能的文本片段所属的实体类型(3) 关系

2021-08-15 20:21:21 7343 28

原创 BERT中的Tokenizer说明

BERT中的Tokenizer说明

2021-08-03 00:04:28 36437 3

原创 transformers加载roberta实现序列标注任务

transformers加载roberta实现序列标注任务最近在断断续续的学习hugging face的transformers,主要是运用transformers加载各种预训练模型实现序列标注。本次博客的主要内容是争对加载roberta预训练模型做序列标注任务。大致内容如下:(1)roberta 模型(2)transformers实现序列标注roberta模型争对bert模型,有很多改进版本的模型,roberta模型与bert模型有以下几个不同的地方,其中roberta的全称为Robustly

2021-07-04 23:13:11 1464 1

原创 Linux安装Python3.6.x

Linux安装Python3.6.x最近项目上要求安装python环境,本博客主要是记录安装介绍安装Python3.6.x的过程,包含以下过程:(1)安装python依赖环境 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum install gcc

2021-06-29 23:08:19 251

原创 利用transformers实现序列标注

利用transformers实现序列标注最近在学习transformers这个模块,用这个模块实现序列标注。transformers模块可以加载大部分的预训练模型,包括bert-base-uncased,bert-base-chinese,hfl/chinese-roberta-wwm-ext,hfl/chinese-roberta-wwm-ext-large等。最近一段时间在尝试加载不同的预训练模型做序列标注,比较效果。后期会更新不同预训练模型在同一数据集上的结果。环境为tensorflow==2.4.

2021-06-05 22:43:55 1009

原创 ARM64架构下安装Python package

ARM64架构下安装Python package最近公司的产品以及模型适配国产服务器,记录在ARM64服务器上安装Python package的过程。安装的Python package包含:(1)tensorflow == 1.14.0(2)Numpy(3)scipy(4)scikit-learn(5)gensim(6)Keras(7)h5py本次安装主要是在线安装package,在numpy,tensorflow,scipy,scikit-learn,gensim包的过程中会出错。安装

2021-05-30 23:17:40 5781 2

原创 买卖股票的最佳时机获得最大的收益

买卖股票的最佳时机获得最大的收益给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0解题思路(1)采用暴力法,找出数组中的差值最大的两个元素,差值为最大收益,同时卖出的价格要大于买入的价格,即 第j个元素大于第i个元素,j>i。def maxProfi

2021-05-22 11:00:43 202

原创 关系抽取--TPLinker

关系抽取–TPLinker最近在学习和整理关系抽取的模型,在学习的过程中对关系抽取有了进一步的认识。小白的学习之路漫长开始。转入今天的正题。TPLinker是一种关系抽取的新范式,不同于其他联合抽取模型,TPLinker是单阶段抽取模型,实体和关系公用同一个解码,同时避免偏差暴露,同时抽取实体和关系,并不是先抽实体再抽关系,累加实体抽取错误的误差,保证了训练和预测的一致性。TPLinker可以处理实体重叠的关系抽取问题。下面是TPLinker的模型结果图:TaggingTPLinker模型需要对关

2021-05-05 16:18:00 3989 5

原创 Torch模型转TensorFlow

Torch模型转TensorFlow笔者最近在学习NLP方面的知识,发现很多论文的代码是用Torch实现的,Torch的模型部署没有TensorFlow成熟,笔者初步尝试Torch模型转Tensorflow模型,并采用TensorFlow Serving加载模型。笔者只是简单的学习实现了一个demo,后面尝试将其他的Torch模型转TensorFlow碰到了困难,没找到解决办法。下面介绍Torch模型转TensorFlow的模型的demo,主要包含以下内容:(1)生成Torch模型(2)Torch模型

2021-05-01 20:21:58 2077

原创 LTP--提取时间人物地点

LTPLTP是哈工大社会计算与信息检索研究中心历时多年研发的一整套高效、高精度的中文自然语言处理开源基础技术平台。该平台集词法分析(分词、词性标注、命名实体识别)、句法分析(依存句法分析)和语义分析(语义角色标注、语义依存分析)等多项自然语言处理技术于一体。笔者尝试用LTP提取时间,人物,地点,言论观点句。LTP使用ltp_data_path = args["ltp_data_path"]# ner model pathner_model_path = os.path.join(ltp_data_

2021-04-24 23:34:55 1697

原创 关系抽取--CASREL

关系抽取–CASREL关系抽取是自然语言处理中的一个基本任务。关系抽取通常用三元组(subject, relation, object)表示。解决关系抽取的思路有两种:(1)已知两个实体subject和object,采用分类模型得到实体间的关系(2)抽取实体,预测实体间可能存在的关系。...

2021-04-17 21:04:59 7760 27

原创 关系抽取--R-BERT

关系抽取–R-BERT关系抽取是自然语言处理中的一个重要的任务。关系抽取任务分为pipline式抽取和joint line式抽取。其中pipline抽取的方式一般将关系抽取分为两个过程,分别是先进行实体抽取,在对实体进行分类得到实体间的关系,将关系抽取转化为一个分类问题。joint line式抽取是同时抽取实体和关系,joint line式关系抽取将会成为关系抽取的一个重要方向。本博客介绍一个关系抽取想法比较好的模型——R-BERT模型。内容大致分为以下几个部分:R-BERT模型R-BERT关键代码

2021-04-16 00:02:15 2859 2

原创 利用hugging face的Transformers实现文本分类

文本分类文本分类任务在实际工作中很常见,一般是多分类和多标签分类。多标签分类的内容参见博客https://blog.csdn.net/weixin_42223207/article/details/115036283。本文是以用hugging face的Transformers实现文本分类,采用的框架是tensorflow==2.4.0。本文的内容大致如下:数据tokenizer模型模型训练模型预测Flask服务数据tokenizer采用...

2021-04-10 23:42:51 1038 2

原创 利用hugging face的Transformers实现命名实体识别

命名实体识别命名实体识别(NER)是自然语言处理的基本任务之一,通常从文本中抽取出时间,地点,组织机构,人物等实体。目前大部分命名实体识别工作都是基于预训练模型上微调实现的。本博客是基于hugging face的Transformers实现的,框架采用的是tensorflow==2.4.0。数据特征利用transformers中的BertTokenizer构建数据特征,包括input_ids,token_type_ids,attention_mask。def create_inputs_target

2021-04-02 23:18:35 2304 4

原创 利用hugging face的Transformers实现多标签文本分类

多标签分类文本分类是自然语言处理的基本任务之一。大部分文本分类是多分类,即数据有多个标签。实际工作或者项目中会遇到多标签的文本。笔者利用hugging face的Transformers实现多标签文本分类。笔者的tensorflow版本为2.4.0,transformers的版本为4.2.0数据处理利用transformers中的BertTokenizer对数据进行Tokenizer。代码如下:def get_model_data(data, labels, max_seq_len=128): t

2021-03-20 22:22:50 4581 4

原创 Pandas 的DataFrame基本操作总结

Pandas 的DataFrame基本操作总结 最近在项目中使用到了Pandas的DataFrame,趁着新鲜劲儿,整理以下用到的知识,如果有不对的地方,请各位博主指正。本博客从DataFrame创建以及对DataFrame的空,筛选列等操作做介绍。1. 创建DataFrame输入可以是np.array, list,也可以是excel,csv等。df = pd.DataFrame([[1, "aa", 12, 67, "xian"], [2, "bb",

2020-11-15 19:08:17 525

原创 和为s的两个数字

这里写自定义目录标题题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^51 <= nums[i]

2020-08-03 17:30:06 95

原创 第一个只出现一次的字符

这里写自定义目录标题验证回文串valid-palindrome欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入验证回文串valid-palindrome欢迎使用Markdown编辑器你好!

2020-07-22 16:39:17 79 1

原创 验证回文串

记录力扣刷题的题解。题目为给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false...

2020-05-25 22:54:57 118

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除