自然语言处理
文章平均质量分 92
好名让狗申请了
这个作者很懒,什么都没留下…
展开
-
N10 - NLP中的注意力机制
在没有本节学习之前,我一直以为注意力机制就是Transformer中使用的自注意力机制。通过注意力机制的过程学习,我才发现,自注意力机制只是注意力机制中的一种,并且Transformer这种也只是自注意力机制的一种实现形式。宏观上来看,自注意力机制可以用在更广泛的场景中,比如计算一下特征图每层之间的注意力分数,叫做通道注意力机制。原创 2024-08-29 13:51:02 · 981 阅读 · 0 评论 -
N9 - seq2seq翻译实战使用Pytorch实现
这样做的好处是,解码器可以直接获得正确的输入信息,加快训练速度,并且在训练早期提供更准确的梯度信号,帮助解码器更好地学习。直观上打破了我对模型的一些印象,由于RNN模型是迭代的,并且Encoder的原始输入是数字化后的文本,Decoder的原始输入是一个语句开始标记,所以将它们直接分开实现起来更容易,逻辑上更清晰。在训练过程中,Teacher Forcing将目标序列的真实值作为解码器的输入,而不是使用解码器自己的预测结果。如何将数据转换为模型能够处理的格式,是把模型应用到实际任务中最重要的一个部分。原创 2024-08-23 15:30:19 · 911 阅读 · 0 评论 -
N8 - 使用Word2Vec进行文本分类
通过对新增的两个章节的回顾和本章的任务的训练,让我印象最深刻的就是这个函数的使用。通过它把一个简单的yield函数变成了数据集,具体的dataset不需要自己来实现,这样做的好处是非常快捷。但是这种方式应该仅限于数据量不大的情况下使用,如果数据量太大,它会全部加载到内存中,这时候就应该使用自定义的数据集,通过索引来进行取数据,具体的逻辑更加灵活,不用在没有训练的时候就把数据加载到内存里。原创 2024-08-16 15:57:51 · 1065 阅读 · 0 评论 -
N5 - 使用Gensim库训练word2vec模型
通过本次实验,我发现传统的机器学习与深度学习任务比起来,节约的计算机性能不是一点半点。因此在一个任务使用传统的机器学习方法就可以取得不错的效果时,其实根本就没有必要使用深度学习模型。通过word2vec模型的部分应用效果,感觉效果比深度学习模型差别很大,有可能是因为停用词只去除了标点符号,但是中文有很多常见的停用词,如“的”,“了”这种词汇,但是有些动词在句子中是有意义的,在相似问题中却是没什么意义,就像上面搜索与沙瑞金相似度较高的词汇,竟然出现了“做”, “像”这种动词,显然是不太合理的。原创 2024-08-05 18:01:35 · 413 阅读 · 0 评论 -
N4 - Pytorch实现中文文本分类
通过测试,发现这个模型的效果还是不错的。大部分的句子可以给出正确的分类。和上节相比,中文数据集的文本分类任务和英文数据集的文本分类主要差异在tokenizer(分词器)上。英文的分词非常简单,英文的词之间天然有间隔,所以可以直接使用标点和空格来分割。中文就不太一样,中文需要一个好的断句工具才行,jieba库就是这么一个工具。在大部分的中文自然语言处理任务中,都可以看到它的身影。原创 2024-08-02 17:55:05 · 860 阅读 · 1 评论 -
书生大模型实战营闯关 - 8GB显存玩转书生大模型demo
创建一个使用10%GPU算力,cuda12.2系统的开发机,并启动。由于开发机的IO性能较差,开发机共享盘中已经创建好了本次实验所需要的conda环境。原创 2024-07-31 15:21:46 · 1104 阅读 · 0 评论 -
N3 - Pytorch文本分类入门
文本分类任务,关键的是前面对文本的处理,合并,嵌入,最后的分类反而非常简直,直接使用了一层全连接层就可以达到不错的效果了。在复现的过程中,由于使用的库版本不一致导致torchtext库部分代码无法正常运行,卡了好久,后面搜索了一些之前打卡的同学的博客,才找到解决方案。复现模型时尽量不要使用最新的版本,而是使用原来的版本,先运行起来,再改动。原创 2024-07-25 14:35:42 · 979 阅读 · 0 评论 -
N2 - Embeddingbag与Embedding
在没有进行代码实践以前,我一直以为词嵌入是基于输入的,不论是句子还是词汇,输出的都是固定维度的向量。也就是EmbeddingBag,而真正的Embedding是只针对词来做处理的。还有一个值得注意的点是,EmbeddingBag层计算时要求输入的offsets其实是每个句子的起始索引。这里面包含了两个知识点,一个是,我们使用torch.cat实际将两个句子无缝合并成了一个向量。然后使用offsets来提供每个句子的起始索引。因此登假设offsets中有N个索引,最终的输出结果就是(N,32)维度的向量。原创 2024-07-18 13:20:10 · 611 阅读 · 0 评论 -
N1 - OneHot编码
通过本节的学习学会了如何将文本转换为one-hot编码,但是也发现在中文自然语言处理中,使用one-hot编码是有局限性的,通过使用结巴分词来进行分词处理,然后再转换为one-hot编码,可以获得比较简短的词向量。这种编码方式不仅能够避免不必要的关系假设,还能够提供清晰的输入表示,有助于模型的学习和泛化。one-hot编码的基本思想是将每个类别映射到一个向量,其中只有一个元素的值为1,剩下的全部为0。这样,每个类别之间是相互独立的,不存在顺序或者距离关系。最早期的文本数字化方法,就是将文本转换为字典序列。原创 2024-07-13 08:19:34 · 630 阅读 · 0 评论