Andy_shenzl
你看不懂的世界,背后都是原理
展开
-
白话transformer(一):注意力机制
前面我们分篇讲述了transformer的原理,但是对于很多刚接触transformer的人来说可能会有一点懵,所以我们接下来会分三篇文章用白话的形式在将transformer 讲一遍。前文链接注意力机制其实最大的作用就是对词嵌入也就是embedding的优化,下面我们来看下是怎么做到的。原创 2024-03-04 15:07:26 · 1833 阅读 · 0 评论 -
白话transformer(二):Q K V矩阵
前面说了注意力机制的工作原理,本次来看看为了实现自注意力机制,Q K V矩阵是如何实现的。白话transformer(二)原创 2024-03-13 09:17:07 · 2866 阅读 · 0 评论 -
白话transformer(三):Q K V矩阵代码演示
在前面讲解了QKV矩阵的原理,属于比较主观的解释,下面用简单的代码再过一遍加深下印象。白话transformer(三)原创 2024-03-15 07:55:31 · 1881 阅读 · 0 评论 -
白话transformer(四):整体架构介绍
transformer现在是最主流的深度学习框架,尤其是大模型的流程让transformer的作用更加凸显,他可以对话、分类、生成文本等功能,那么他到底是如何工作的呢。原创 2024-03-19 09:20:13 · 1169 阅读 · 0 评论 -
白话transformer(五):位置编码
在前面其实讲过,这次我们具体看看他的数学原理白话transformer(五)原创 2024-03-21 09:12:59 · 1379 阅读 · 0 评论 -
白话transformer(六)编码器与解码器
今天我们将探讨Transformer模型中的两个核心组件:编码器和解码器。我们将通过一个具体的任务——将中文算术表达式翻译成英文——来深入理解这两个组件的工作原理。transform的原始论文中,整体的架构是有编码器和解码器组成的,但是根据任务不同,有的只需要编码器,比如Bert;有的只需要使用解码器,比如GPT系列模型;还有的是需要编码器和解码器都使用的,比如机器翻译任务。原创 2024-04-15 09:22:42 · 1513 阅读 · 0 评论 -
Bert基础(一)--自注意力机制
当下最先进的深度学习架构之一,Transformer被广泛应用于自然语言处理领域。它不单替代了以前流行的循环神经网络(recurrent neural network, RNN)和长短期记忆(long short-term memory, LSTM)网络,并且以它为基础衍生出了诸如BERT、GPT-3、T5等知名架构。本文将带领你深入了解Transformer的实现细节及工作原理。原创 2024-02-19 13:24:29 · 1472 阅读 · 0 评论 -
Bert基础(二)--多头注意力
为了确保结果准确,我们不能依赖单一的注意力矩阵,而应该计算多个注意力矩阵,并将其结果串联起来。使用多头注意力的逻辑是这样的:使用多个注意力矩阵,而非单一的注意力矩阵,可以提高注意力矩阵的准确性。也就是说,我们可以应用在上篇中学习的计算注意力矩阵Z的方法,来求得多个注意力矩阵。我们已经知道,为了计算注意力矩阵,需要创建三个新的矩阵,分别为查询矩阵、键矩阵和值矩阵。,那么可以直接将所有的注意力头(注意力矩阵)串联起来,并将结果乘以一个新的权重矩阵。,就可以依次得出对应的查询矩阵、键矩阵和值矩阵。原创 2024-02-20 16:08:33 · 1132 阅读 · 0 评论 -
Bert基础(三)--位置编码
这样一来,输入矩阵不仅有词的嵌入值,还有词在句子中的位置信息。下图是一个编码器模块,从中我们可以看到,在将输入矩阵送入编码器之前,首先要将位置编码加入输入矩阵中,再将其作为输入送入编码器。前馈网络的参数在句子的不同位置上是相同的,但在不同的编码器模块上是不同的。(1) 将输入转换为嵌入矩阵(输入矩阵),并将位置编码加入其中,再将结果作为输入传入底层的编码器(编码器1)。只需将输入矩阵X与计算得到的位置编码矩阵P进行逐元素相加,并将得出的结果作为输入矩阵送入编码器中。代入pos值,我们得到结果。原创 2024-02-21 16:35:57 · 1876 阅读 · 0 评论 -
Bert基础(四)--解码器(上)
因此,一个解码器(第一个除外)将有两个输入:一个是来自前一个解码器的输出,另一个是编码器输出的特征值。同理,我们也不是将输入直接送入解码器,而是将其转换为嵌入矩阵,为其添加位置编码,然后再送入解码器。,我们不是将输入直接送入解码器,而是将其转换为嵌入矩阵(输出嵌入矩阵)并添加位置编码,然后再送入解码器。,我们将输入转换为嵌入(我们称之为嵌入值输出,因为这里计算的是解码器在以前的步骤中生成的词的嵌入),将位置编码加入其中,然后将其送入解码器。需要注意的是,这里使用的数值是随机的,只是为了方便理解。原创 2024-02-22 13:21:29 · 1391 阅读 · 0 评论 -
Bert基础(五)--Bert基本原理
我们将开始了解流行且先进的文本嵌入模型BERT。由于在许多自然语言处理任务上的卓越表现,BERT彻底改变了自然语言处理的方法。首先,我们将了解什么是BERT,以及它与其他嵌入模型的区别。然后,我们将详细分析BERT的工作原理和基础配置。接下来,我们将通过两个任务来了解BERT模型是如何进行预训练的。这两个任务分别为掩码语言模型构建和下句预测。然后,我们将分析BERT的预训练过程。最后将讲解几种有趣的子词词元化算法,包括字节对编码、字节级字节对编码和WordPiece。原创 2024-03-25 09:21:56 · 999 阅读 · 0 评论 -
Bert基础(六)--Bert模型预训练
在本节中,我们将学习如何对BERT模型进行预训练。假设我们有一个模型m。首先,我们使用一个大型数据集针对某个具体的任务来训练模型m,并保存训练后的模型。然后,对于一个新任务,我们不再使用随机的权重来初始化模型,而是用已经训练过的模型的权重来初始化m(预训练过的模型)。也就是说,由于模型m已经在一个大型数据集上训练过了,因此我们不用为一个新任务从头开始训练模型,而是使用预训练的模型m,并根据新任务调整(微调)其权重。这是迁移学习的一种类型。原创 2024-03-25 11:19:33 · 1294 阅读 · 0 评论 -
Bert基础(七)--Bert实战之理解Bert模型结构
在篇我们将详细学习如何使用预训练的BERT模型。首先,我们将了解谷歌对外公开的预训练的BERT模型的不同配置。然后,我们将学习如何使用预训练的BERT模型作为特征提取器。此外,我们还将探究Hugging Face的Transformers库,学习如何使用Transformers库从预训练的BERT模型中提取嵌入。接着,我们将了解如何从BERT的编码器层中提取嵌入,并学习如何为下游任务微调预训练的BERT模型。原创 2024-03-26 09:21:52 · 1346 阅读 · 0 评论 -
Bert基础(八)--Bert实战之理解Bert微调
到目前为止,我们已经介绍了如何使用预训练的BERT模型。现在,我们将学习如何针对下游任务微调预训练的BERT模型。需要注意的是,微调并非需要我们从头开始训练BERT模型,而是使用预训练的BERT模型,并根据任务需要更新模型的权重。在本节中,我们将学习如何为以下任务微调预训练的BERT模型。原创 2024-03-26 13:38:30 · 2050 阅读 · 0 评论 -
Bert基础(九)--Bert变体之ALBERT
在接下来的几篇,我们将了解BERT的不同变体,包括ALBERT、RoBERTa、ELECTRA和SpanBERT。我们将首先了解ALBERT。ALBERT的英文全称为A Lite version of BERT,意思是BERT模型的精简版。ALBERT模型对BERT的架构做了一些改变,以尽量缩短训练时间。本章将详细介绍ALBERT的工作原理及其与BERT的不同之处。原创 2024-04-01 15:26:48 · 1434 阅读 · 0 评论 -
Bert基础(十)--Bert变体之RoBERTa
RoBERTa是BERT的另一个有趣且流行的变体。研究人员发现,BERT的训练远未收敛,所以他们提出了几种对BERT模型预训练的方法。RoBERTa本质上是BERT,它只是在预训练中有以下变化。原创 2024-04-02 09:27:23 · 1004 阅读 · 0 评论 -
Bert基础(十一)--Bert变体之ELECTRA
ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately,高效训练编码器准确分类替换标记)是BERT的另一个变体。我们已知要使用掩码语言模型构建任务和下句预测任务对BERT进行预训练。在掩码语言模型构建任务中,我们随机掩盖15%的标记,并训练BERT来预测被掩盖的标记。但是,ELECTRA没有使用掩码语言模型构建任务作为预训练目标,而是使用一个叫作替换标记检测的任务进行预训练。原创 2024-04-03 09:24:49 · 852 阅读 · 0 评论 -
Bert基础(十二)--Bert变体之知识蒸馏原理解读
知识蒸馏(knowledge distillation)是一种模型压缩技术,它是指训练一个小模型来重现大型预训练模型的行为。知识蒸馏也被称为师生学习,其中大型预训练模型是教师,小模型是学生。让我们通过一个例子来了解知识蒸馏是如何实现的。假设预先训练了一个大模型来预测句子中的下一个单词。我们将大型预训练模型称为教师网络。我们输入一个句子,让网络预测句子中的下一个单词。它将返回词表中所有单词是下一个单词的概率分布,如图所示。为了更好地理解,我们假设词表中只有5个单词。原创 2024-04-03 15:34:21 · 866 阅读 · 0 评论 -
Bert基础(十三)--Bert变体之知识蒸馏训练
请注意,我们是将特定任务的知识从教师迁移给学生,因此,要先针对特定任务微调预训练的BERT-large模型,然后将其作为教师。因此,在进行蒸馏时,也就是在将知识从教师(BERT-base模型)迁移到学生(TinyBERT模型)时,我们使用相同的数据集。这里,我们使用大型的预训练BERT模型(BERT-base模型)作为教师,并通过蒸馏将知识迁移到小型的学生BERT模型(TinyBERT模型)。我们将特定任务的知识从教师迁移给学生,因此,如前所述,将采用为特定任务微调后的预训练的BERT模型作为教师。原创 2024-04-19 09:20:55 · 807 阅读 · 0 评论 -
Bert基础(十四)-- 实战篇:transformer-中文多分类
transformer的原理部分在前面基本已经介绍完了,接下来就是代码部分,因为transformer可以做的任务有很多,文本的分类、时序预测、NER、文本生成、翻译等,其相关代码也会有些不同,所以会分别进行介绍但是对于不同的任务其流程是一样的,所以一些重复的步骤就不过多解释了。原创 2024-03-19 18:22:45 · 894 阅读 · 0 评论 -
Bert基础(十五)-- Bert中文文本分类任务(colab)
train_data 是一个包含输入数据的字典,其中 “input_ids” 是模型输入的token ID,“attention_mask” 是用于标识输入序列中哪些位置是有效的前景tokens,“labels” 是序列分类任务的标签。我们可以自己打印下我们前面定义好的训练数据,如下TensorDataset 将数据转换为一个PyTorch张量数据集,其中每个样本是一个包含input_ids、attention_mask和label的元组。原创 2024-02-07 13:29:36 · 1232 阅读 · 0 评论 -
Bert基础(十六)--Bert实战:中文文本分类任务-- transformers库实现
Hugging Face 的 Transformers 库是一个开源库,它提供了大量预训练的模型,用于自然语言处理(NLP)任务,如文本分类、命名实体识别、机器翻译、问答系统等。这个库的特点是易于使用,支持多种模型架构,包括但不限于 BERT、GPT、RoBERTa、XLNet 等,并且可以轻松地在不同的任务上微调这些模型。以下是使用 Hugging Face Transformers 库进行情感分类的基本步骤:fill:#333;color:#333;color:#333;fill:none;原创 2024-04-19 11:31:50 · 2947 阅读 · 0 评论 -
Bert基础(十七)--Bert实战:中文情感识别
说了中文分类的过程,这次说一下情感分类相关的代码,其实情感分类也属于中文多分类的一种,知识情感分类一般会专门区分出来,但是代码基本是一致的,基本步骤:fill:#333;color:#333;color:#333;fill:none;1 加载数据集2 数据预处理3 创建模型4 创建评估函数5 创建训练器6 训练模型7 评估8 预测。原创 2024-04-24 09:22:23 · 1355 阅读 · 0 评论 -
Bert基础(十八)--Bert实战:NER命名实体识别
命名实体识别(NER)是自然语言处理(NLP)中的一项关键技术,它的目标是从文本中识别出具有特定意义或指代性强的实体,并对这些实体进行分类。这些实体通常包括人名、地名、组织机构名、日期、时间、专有名词等。NER在许多实际应用中都非常重要,如信息提取、文本挖掘、机器翻译、自动摘要等。实体的边界识别:这部分任务是要确定文本中实体的起始和结束位置,即在文本中准确地定位出实体的边界。确定实体的类型:在识别出实体的边界之后,还需要确定每个实体的具体类型,如人名、地名、机构名等。例如,在处理文本。原创 2024-04-24 11:03:39 · 2466 阅读 · 0 评论 -
Bert基础(十九)--Bert实战:文本相似度匹配
文本匹配是指计算机系统识别和确定两段文本之间关系的任务。这个概念非常广泛,涵盖了各种场景,其中文本之间的关系可以是有相似度、问答、对话、推理等。在不同的应用场景下,文本匹配的具体定义可能会有所不同。本次先介绍最简单的文本相似度计算的任务,后面将其他的信息检索、机器翻译、文本生成、对话系统等任务进行实战。基本步骤:fill:#333;color:#333;color:#333;fill:none;1 加载数据集2 数据预处理3 创建模型4 创建评估函数5 创建训练器6 训练模型7 评估。原创 2024-04-29 10:04:47 · 1690 阅读 · 0 评论 -
Bert基础(二十)--Bert实战:机器阅读理解任务
也就是Tanoue在原始文本中占一个字符,但是分词后,它占了三个,所以我们在定位答案的起始位置时需要根据一个字符进行定位,但是我们训练处理的时候时使用编码后的input_ids,所以我们就必须把offsets_mapping和原始的内容匹配好才能根据起始位置找到真正的答案。同时答案可能同时出现了多个窗口,因为有数据的重复,而且相似的答案也可能会出现在不同的位置,所以我们后面处理的时候需要进行对比。:北京是中国的首都,它是一座历史悠久的城市,有着丰富的文化遗产和现代化的城市景观。原创 2024-04-29 15:22:57 · 2146 阅读 · 0 评论 -
Bert基础(二十一)--Bert实战:文本摘要
文本摘要(Text Summarization),作为自然语言处理(NLP)领域的一个分支,其核心目标是从长篇文档中提取关键信息,并生成简短的摘要,以提供对原始内容的高度概括。这一过程不仅有助于用户迅速把握信息的核心,而且对于有效组织和归纳大量的文本数据至关重要。文本摘要的任务可以根据不同的输入和输出进行分类。首先,根据输入文档的数量,可以将摘要任务分为单文档摘要和多文档摘要。单文档摘要专注于处理单个文档,而多文档摘要则需要整合多个相关文档的信息。原创 2024-04-30 14:54:33 · 1593 阅读 · 0 评论 -
Bert基础(二十二)--Bert实战:对话机器人
生成式对话机器人是一种能够通过自然语言交互来理解和生成响应的人工智能系统。它们能够进行开放域的对话,即在对话过程中,机器人可以根据用户的需求和上下文信息,自主地生成新的、连贯的回复,而不仅仅是简单地检索或匹配预先设定好的答案。生成式对话机器人是一种强大的AI工具,它们能够与人类进行自然的语言交流,并在各种场景下提供帮助和服务。随着技术的不断进步,生成式对话机器人的应用范围还在不断扩大,未来它们将在更多领域发挥重要作用。因果语言模型。原创 2024-05-11 16:35:37 · 418 阅读 · 0 评论