自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(336)
  • 资源 (17)
  • 收藏
  • 关注

原创 【langchain】langchain调用huggingface本地模型基础demo

目前网上的langchain教程大多数都是关于如何调用OpenAI等远程模型,对于本地模型的调用示例写法比较少。而且langchain也在不停迭代,文档也比较杂。因此,本文将向大家介绍如何使用Langchain调用Hugging Face本地模型的基础demo,帮助大家快速开始langchain的“Hello World”。【注意】事先安装langchain_huggingface、langchain,并下载好模型权重。相关写法参考的是langchain官方文档。

2024-06-10 23:33:49 249 33

原创 【EventSource错误解决方案】设置Proxy后SSE发送的数据只在最后接收到一次,并且数据被合并

SSE前后端一切正常,但是`fetchEventSource `的`onmessage`回调函数只在所有流都发送完毕后,才会执行一次。

2024-05-18 23:16:59 810 74

原创 【EventSource错误解决方案】EventSource的onmessage回调函数不触发

客户端发送请求后,使用的`fetchEventSource `的`onmessage`回调函数不触发,根本就拿不到数据,但是`onopen`函数可以正常执行。

2024-05-18 23:05:27 345 10

原创 【Qwen模型】QWEN TECHNICAL REPORT

在阅读了本篇论文和`transformers`库里面的`Qwen2Model`源码之后,我观察到模型用的组件tricks有RoPE(苏剑林提出)、RMSNorm、SwiGLU、SdpaAttention等等;

2024-04-19 16:54:38 2646 91

原创 【mT5多语言翻译】之一——实战项目总览

【注】我的显卡是8GB显存的4060,现在电脑好像都有GPU专用内存(在内存里划nGB专门给显卡使用),我的GPU专用内存是8GB,所以算下来可以提供16GB显存,即使是全量参数微调电脑也是可以跑的,大家可以试一下。【注】官方只提供了mT5模型的无监督训练参数,并没有放出微调任务的参数,因此我们想直接开箱使用是不可以的,必须要自己微调一下才可以输出正常的文本。这一点和T5模型比较不同。只要是上述102种语言之间的翻译任务,mT5都可以训练。如果需要本项目的源代码,请扫描关注我的公众号,回复“多语言翻译”。

2024-04-11 01:20:09 1497 57

原创 【mT5多语言翻译】之六——推理:多语言翻译与第三方接口设计

因为训练方式有全量参数微调和PEFT微调两种,不同方式保存的模型不同。前者是全量参数,后者是PEFT添加的少量参数。【注】直接加载PEFT保存的少量参数,也可以加载到mT5模型本身的预训练参数。这是因为在peft模型保存的文件夹中有一个。在分别使用全量参数微调和PEFT微调训练完模型之后,我们来测试模型的翻译效果。然后就能去浏览器快乐地测试玩耍了。文件,里面保存了基座模型的地址。[2] 第三方接口设计。[1] 模型翻译推理。[1] 模型翻译推理。

2024-04-11 01:18:57 1618 21

原创 【mT5多语言翻译】之五——训练:中央日志、训练可视化、PEFT微调

但是由于我们的数据集很大,即使模型在验证集上的loss不再下降,也不应该主动把模型停止。因为大模型的训练可以抽象为“压缩数据”的概念,它没见过的数据就是不会产生相应的知识,所以最好还是让模型一直训练下去,直到把数据集训练完。使用PEFT只需要在原来的基础上加两行代码即可,其他模型训练阶段的代码完全不需要改变。因此,我们需要设计一个日志功能,让模型即可以实时的打印输出,又能同时记录输出到文件中,以便于我们后期查看。还有一个待解决的问题是,项目中不同文件的输出日志,我们需要将其定位到同一个log日志中。

2024-04-11 01:18:32 1657 9

原创 【mT5多语言翻译】之四——加载:加载数据集与模型

库也提供了非常友好的代码训练api,可能都不用写多少代码,即可开始自定义任务、模型的训练。但是在使用过程中,还是遇到了一些问题:1)莫名其妙的多消耗显存,由于封装的功能太多,我很难定位到哪里出了问题;2)它提供的训练配置中有很多我不需要的功能,比如检查点保存、内部日志等等,同样也是集成的功能太多,但是我不需要。这里选择手搓的原因是我觉得手搓的数据加载器更轻,可以非常直观的进行自定义,虽然代码少但是完全满足我们项目的功能需要。在训练过程中,我想使项目代码尽可能的“轻量化”,并且直观、易于修改。

2024-04-11 01:17:52 1049 4

原创 【mT5多语言翻译】之三——数据集:多语言翻译数据集与预处理

【注】由于很多语言存在不同的版本,尤其是中文,有:lzh lzh_Hans nan wuu yue_Hans yue_Hant zho zho_Bopo zho_Bopo_CN zho_Bopo_TW zho_CN zho_Hans zho_Hans_CN zho_Hans_TW zho_Hant zho_Hant_CN zho_Hant_TW zho_TW这么多种版本或者方言,【注】Tatoeba翻译数据集里面提供的都是通用领域的数据,如果对领域知识有要求的,还是要使用自己的打标数据效果更好。

2024-04-11 01:17:12 1629 2

原创 【mT5多语言翻译】之二——模型:T5模型与mT5模型与前置知识

【注】具体来说,代码中把编码器、解码器整合到了T5Block里,又把交叉注意力和自注意力整合到了T5Attention里,所以在阅读源码的时候,得判断什么时候是解码器在运行、什么时候是编码器在运行,什么时候在算自注意力、交叉注意力。在编码器阶段,解码序列的id、mask没有,所以计算注意力时,会传输入序列的hidden_states、mask,这里的。之后,编码器会进行交叉注意力的计算,此时解码器已经拿到解码序列的自注意力向量hidden_states了,所以它不再需要解码序列的mask,所以此时的。

2024-04-11 01:16:09 1757 1

原创 【RMSNorm】Root Mean Square Layer Normalization

论文改进了大模型领域常用的`LayerNorm`,提出`RMSNorm`(均方差层归一化)。相比于`LayerNorm`,`RMSNorm`开销更小,训练更快,性能与`LayerNorm`基本相当。

2024-04-05 15:00:18 1964 40

原创 【T5中的激活函数】GLU Variants Improve Transformer

论文在各种激活函数之间做了对比实验,探究应用不同激活函数的FNN对T5模型的影响。最终`GEGLU`效果最好。

2024-04-04 20:57:37 1727 10

原创 【mT5模型】mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer

mT5是在T5基础上的多语言版本,现在终于可以炼自己的翻译模型了!并且从这篇论文中也能学到一些多语言数据集采样的tirck!

2024-04-04 14:42:57 1601 4

原创 【T5模型源码】深入T5模型:源码解析与实现细节

我们在日常业务中可能会遇到出海场景,会涉及多个地区和语言,目前来说mT5仍然是多语言翻译任务种比较fancy的模型。T5作为mT5的前身,模型结构和mT5没什么区别,本篇文章将详细介绍在`transformers`库中T5模型的源码。

2024-04-01 16:49:20 2388 23

原创 【T5模型】Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

从2024年各家对话大模型涌出的节点往前看,T5模型的工作确实属于承上启下了,既整合了19年之前比较杂乱的Prompt训练的状况(虽然只统一了分类、问答、翻译这几个常见的NLP任务),又为后续研究人员的工作做了铺垫。大厂还是非常有前瞻性的,并且像对话大模型这样的成果也只有企业(资金、商业目的)才能创新出来。

2024-04-01 16:47:44 1778

原创 深入解析大语言模型显存占用:训练与推理

本篇文章将帮助你优雅又快速地拒绝老板。看完本篇《深入解析大语言模型显存占用:训练与推理》,你将对模型占用显存的问题有个透彻的理解。

2024-03-27 00:55:35 3914 36

原创 【python导入包解决方案】linux环境下python文件无法导入其他文件夹中的python文件的解决方案

当然也可以在环境变量里把你项目地址添加进去,这样也会搜索到。但是如果你的项目要是经常换机器跑,或者机器环境经常重置的话,这样做似乎不太方便。python的一个特点就是,会搜索命名空间软件包地址里面的每个文件来导入。如上图,我有个python项目叫。这个目录,所以会报错。文件时,只会默认把父级目录(也就是。文件夹里面是我的主程序,然后去调。写以下的代码,把项目目录添加到。会自动把项目根地址添加到。文件夹当作自定义包,里面的某个函数并运行。

2024-03-25 14:43:38 1532 22

原创 HuggingFace库中BERTForxxx模型代码详细分析 使用BERT进行无监督预训练

相信大家对BERT论文中随机抽取15%的token来MASK印象深刻,我在HF库的源码中找了半天也没找到随机MASK的具体实现。知道最后才发现,随机MASK是在数据准备阶段做的。在做`MLM`任务(无监督)之前,我们先是有输入`input_id`,然后从中抽取15%,再按8:1:1的比率进行MASK、不变、随机(就像论文中说的那样),其他位置设置为`-100`,然后组成一个向量`mlm_label`,表示`MLM`任务的标签。在最后计算交叉熵损失的时候,对于标签为`-100`的数据,是不会进行计算的

2024-02-06 02:20:19 3448 101

原创 帅气的性能监控平台Grafana(Windows下使用Grafana监控系统指标与GPU指标)

最近想研究一下大模型占显存与内存的预估方法,还想测一下`Redis`和`Mysql`的性能对比,但是`Windows`原生提供的性能监控工具实在是太难看了,而且也不好用。之前打工的时候有注意到一款名为`Grafana`的仪表盘监控平台,所以试了一下,感觉不错。

2024-02-01 21:27:54 4262 46

原创 交叉熵损失函数求导与Softmax函数求导

前情提要。

2024-01-27 14:56:10 3127 35

原创 Transformer原理与代码实现

在通过线性层学习QKV向量之后,Q和K经历点积矩阵乘法以产生得分矩阵:得分矩阵决定了一个单词在其他单词上的关注程度。因此每个单词都有一个与时间步长中的其他单词相对应的分数。分数越高,注意力越集中。这就是Q映射到K的方式:然后,分数通过除以Q和K的维度的平方根而缩小。这是为了获得更稳定的数据,否则可能会产生爆炸效果。下一步,使用softmax来得到注意力权重,返回0到1之间的概率值。通过做softmax,高分得到提高,低分受到抑制。这样模型可以决定对哪些单词的注意力更高哪些单词的注意力比较低。

2024-01-15 15:04:05 4155 88

原创 Navicat迁移局域网内其他PC机的MySQL数据库

查看局域网IP。

2024-01-10 14:00:43 3993 55

原创 【Pytorch】理解自动混合精度训练

更大的深度学习模型需要更多的计算能力和内存资源。一些新技术的提出,可以更快地训练深度神经网络。我们可以使用 FP16(半精度浮点数格式)来代替 FP32(全精度浮点数格式),研究人员发现串联使用它们是更好的选择。有的 GPU(例如 Paperspace 提供的 Ampere GPU)甚至可以利用较低级别的精度,例如 INT8。

2023-12-06 22:07:11 10739 149

原创 【ElementUI】一行代码解决图片预览

只需要在图片标签上加入。

2023-12-04 18:00:57 3862 42

原创 【富文本编辑器】原生JS使用WangEditor和vue上传图片前后端demo

第一步 HTML。

2023-12-03 21:15:16 3655 24

原创 抑制过拟合——从梯度的角度看LayerNorm的作用

在深入探索`transformer`模型时,一个不可忽视的组成部分便是`LayerNorm`,它在模型的优化过程中起着关键作用。相比之下,虽然`BatchNorm`也广泛应用于各种网络模型中,但在很多情况下`LayerNorm`表现出更优的效果。然而,对于为何`LayerNorm`优于`BatchNorm`,目前学界还没有形成统一的看法。

2023-11-30 23:35:50 4110 28

原创 抑制过拟合——Dropout原理

在机器学习领域,尤其是当我们处理复杂的模型和有限的训练样本时,一个常见的问题是过拟合。简而言之,过拟合发生在模型对训练数据学得太好,以至于它捕捉到了数据中的噪声和误差,而不仅仅是底层模式。具体来说,这在神经网络训练中尤为常见,表现为在训练数据上表现优异(例如损失函数值很小,预测准确率高)而在未见过的数据(测试集)上表现不佳。

2023-11-30 16:40:59 3105 8

原创 优化器原理——权重衰减(weight_decay)

在深度学习中,优化器的 `weight_decay` 参数扮演着至关重要的角色。它主要用于实现正则化,以防止模型过拟合。过拟合是指模型在训练数据上表现优异,但在新的、未见过的数据上却表现不佳。这通常是因为模型学习了训练数据中的噪声和细节,而不是数据背后的真实模式。

2023-11-29 18:29:22 4496 15

原创 神经网络可视化——基于torchviz绘制模型的计算图

第一步、安装 graphviz 和 torchviz 库。

2023-11-28 16:09:14 3421 19

原创 【古诗生成AI实战】之五——加载模型进行古诗生成

这部分是项目中非常激动人心的一环,因为我们将看到我们的模型如何利用先前学习的知识来创造出新的古诗文本。这是一个重要的里程碑,因为训练好的模型是我们进行文本生成的基础。* 生成文本:从初始文本(例如“天”)开始,逐字生成新的文本,直到达到指定长度(如32个字符)。在这部分内容中,我们将探讨如何使用预训练的模型来生成文本,例如古诗。:输入四个字ABCD,手动在第1、9、17、25个位置赋值A、B、C、D,其余部分由模型生成。现在,接下来的步骤是加载这个训练好的模型,然后使用它来生成古诗。

2023-11-27 00:10:12 3333 16

原创 【古诗生成AI实战】之四——模型包装器与模型的训练

中存储的正是这些词的概率。为了生成文本,我们提取每个位置上概率最高的词的索引,然后根据这些索引在词典中查找对应的词。此外,为了提高配置的灵活性和可维护性,我们将所有的配置项(如批量大小、数据集地址、训练周期数、学习率等)抽取出来,统一放置在一个名为。为此,我们采取了进一步的措施:在模型外面再套上一个额外的层,我称之为模型包装器。的含义是:对于每个批次中的文本,每个文本在序列的每个位置上,都有vocab_num个可能的词可以填入,而。类是围绕一个神经网络语言模型的封装器,提供了模型的初始化和数据处理的方法。

2023-11-27 00:09:50 2936 3

原创 【古诗生成AI实战】之三——任务加载器与预处理器

在构建词汇表的过程中,预处理器会在每个文本样本的前后分别添加开始和结束标记,这有助于模型理解文本的边界。这种设计不仅适用于我们当前的古诗生成任务,还可以方便地应用于其他类型的文本任务,比如文本分类任务,或是适配transformers库中的模型(例如Bert、GPT)。在本项目中,由于我们只使用了大约7千个词,所以我们需要从这些庞大的word2vec库中提取出仅与我们词典中存在的字词相对应的向量。的类,这个类的核心作用是处理不同类型的数据集,比如训练集、验证集和测试集,以及对单个文本样本的特定处理。

2023-11-27 00:09:27 2815

原创 【古诗生成AI实战】之二——项目架构设计

值得注意的是,虽然第三方Word2Vec库通常非常庞大,大约有1GB的大小,并且包含了30万到100万个单字和词汇,但我们的字典大小大约只有7千左右(比如,Bert的词典大小也只有3万)。例如,如果输入序列是[B,床,前,明,月,光,E],那么我们将这个序列向左偏移一个单位作为训练标签,即目标序列是[床,前,明,月,光,E,E]。这个生成过程非常有趣,因为它不仅展示了模型学习古诗的结构和语言风格的能力,而且还允许我们以创造性的方式使用模型,无论是模仿经典古诗风格,还是创作全新的诗句。

2023-11-27 00:09:03 2949 3

原创 【古诗生成AI实战】之一——实战项目总览

了解PyTorch的基本操作,如张量的处理、模型的构建和训练过程,对于后续实战项目至关重要。这些知识不仅是本项目的基础,也是进入AI领域的基本要求。无论你是AI领域的新手,还是有一定基础的学习者,这个项目都能为你提供宝贵的学习机会。这些技术不仅可以应用于古诗创作,还能为你日后的相关AI项目打下坚实的基础。准备好这些知识后,你将更有信心和能力投入到实战项目中,不仅能够理解项目的核心机制,还能够根据自己的需求进行创新和调整。这不仅有助于优化古诗生成的效果,还能让你更好地理解和掌握AI模型的工作原理。

2023-11-27 00:08:25 3144 1

原创 一文了解Word2vec 阐述训练流程

在机器学习领域,嵌入(embeddings)的概念无疑是其中最令人兴奋的创新之一。想象一下,每当你与`Siri`、`Google Assistant`、`Alexa`或`Google Translate`互动,甚至在使用具有下一个词预测功能的手机输入法(比如苹果输入法、搜狗输入法)时,你其实都在享受词嵌入模型带来的便利。这些技术在过去几十年里取得了巨大进步,尤其是近期基于上下文的词嵌入技术的发展,催生了`BERT`、`GPT2`、`ChatGPT`等领先的预训练模型。

2023-11-20 00:42:55 4192 36

原创 n-gram语言模型——文本生成源码

在自然语言处理的领域中,n-gram语言模型是一种基础而强大的工具。它通过考虑词汇的序列来预测文本内容,从而有效地用于文本生成任务。这篇博客中将探讨如何利用n-gram模型,特别是在处理中文文本时,使用jieba进行分词和nltk库进行模型构建。

2023-11-11 18:00:20 4484 37

原创 n-gram语言模型——句子概率分布计算与平滑

语言模型(Language Model, LM)在自然语言处理(NLP)领域扮演着核心角色,特别是在统计模型驱动的汉语自动分词和句法分析等领域。目前,广泛采用的是N-gram语法模型,这种模型以其构建的简便性和直观性而著称,但同时也因数据稀疏性问题而不得不使用平滑(Smoothing)技术。

2023-11-11 00:13:24 3818 6

原创 【backward解决方案与原理】网络模型在梯度更新时出现变量版本号机制错误

报错详情。

2023-11-05 11:49:36 3432 19

原创 Linux通过QQ邮箱账号使用mailx发送邮件

Linux通过QQ邮箱账号使用mailx发送邮件 第一步:安装mailx。

2023-10-08 18:57:05 4829 93

原创 【计算机网络】你真的懂学校的校园网吗?

第一步:从了解本机的ip开始。

2023-10-07 21:22:47 5876 14

图像处理 手写体英文字母的目标检测与识别 代码与实验报告

随着计算机视觉方向的发展与各种开源库的涌现,目标检测与图像识别的步骤也越来越规范并且趋于简单化。 本次大作业采用Pycharm编辑器,应用Python的OpenCV图像处理库,基于深度学习的卷积神经网络来识别图像中的手写的大写英文字母。具体功能步骤是:对图像进行切片、目标检测、图像识别、图像定位、识别出来的字母重新写入到图片中。

2023-01-24

神经网络实现英文文本分类(pytorch)

本资源附有配套的7篇博客辅助讲解。 教程博客地址为:https://blog.csdn.net/qq_43592352/article/details/122960985 代码架构强,非常易于理解。 代码拓展性强,方便移植使用自己的数据集、模型。 代码主要采用pytorch实现。

2022-02-16

鸢尾花(iris)数据集

Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。

2021-09-05

江南大学计算机网络期末试卷--历年.zip

江南大学计算机网络期末试卷--历年。共8张。

2020-06-10

飞机大战-横版.zip

横版的飞机大战 原文地址:https://blog.csdn.net/qq_43592352/article/details/103052604

2020-04-30

三级联动-级联选择器.zip

三级联动-级联选择器 原文地址:https://blog.csdn.net/qq_43592352/article/details/100266253

2020-04-30

jQuery轮播图插件.zip

JQ的轮播图 原文地址:https://blog.csdn.net/qq_43592352/article/details/100144024

2020-04-30

3D-PlaneWar.zip

3d飞机大战 原文地址:https://blog.csdn.net/qq_43592352/article/details/100132818

2020-04-30

网页彩点背景.zip

JS动态背景,原文地址:https://blog.csdn.net/qq_43592352/article/details/88625248

2020-04-28

--表格-插件.zip--

Vue封装的表格插件,原文地址:https://blog.csdn.net/qq_43592352/article/details/102145364

2020-04-28

--日历模板.zip--

win10日历样式模板,原文地址:https://blog.csdn.net/qq_43592352/article/details/89765700

2020-04-28

--水果连连看.zip--

水果连连看游戏代码。原文地址:https://blog.csdn.net/qq_43592352/article/details/103179880

2020-04-28

是男人就下一百层.zip

是男人就下一百层游戏代码。原文地址:https://blog.csdn.net/qq_43592352/article/details/89929154

2020-04-28

--飞机大战.zip--

飞机大战的源代码。原文地址:https://blog.csdn.net/qq_43592352/article/details/88058449

2020-04-28

---JS爬虫.zip---

js爬虫的代码。原文地址:https://blog.csdn.net/qq_43592352/article/details/90647787

2020-04-28

---指尖大冒险.zip---

指尖大冒险的游戏代码压缩包。原文地址:https://blog.csdn.net/qq_43592352/article/details/90383837

2020-04-28

五子棋web版代码压缩包.zip

五子棋web版代码压缩包,原文地址:https://blog.csdn.net/qq_43592352/article/details/104106272

2020-04-27

空空如也

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

TA关注的人

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