- 博客(47)
- 收藏
- 关注
原创 人工智能该如何学习?详细的AI学习路线与资料推荐
AI因你而升温,记得加星标哦!大家好,我是泰哥。本文可谓是千呼万唤使出来,很多同学问我,AI方向的知识多而杂,哪些该重点学习?学习路径又是怎么样的呢?今天,我将自己的学习路径及我所参考的资料全部免费分享出来,愿大家的AI学习进阶之路上多一些“温度”。学习途径在我学习人工智能的过程中,主要有以下两个途径:首先是B站。我将所有知识点所推荐的视频链接直接贴设为了超链接,点击可直达教程。第二是书籍。视频的讲解难免会不全面,很多时候我们需要翻阅书籍对知识进行查漏补缺、透彻理解。本文提及所有书籍在文.
2021-11-25 16:37:30 75374 24
原创 KV Cache:图解大模型推理加速方法
KV Cache 是大模型推理性能优化的一个常用技术,该技术可以在不影响任何计算精度的前提下,,提高推理性能。
2024-09-03 15:22:42 988
原创 代码与原理:混合精度训练详解
为了解决梯度过小数据下溢的问题,对前向计算出来的Loss值进行放大操作,也就是把FP32的参数乘以某一个因子系数后,把可能溢出的小数位数据往前移,平移到FP16能表示的数据范围内。float16和float32相比内存占用更少**,**通用的模型 fp16 占用的内存只需原来的一半,就意味着训练的时候可以用更大的batchsize,且在多卡训练时数据通信量大幅减少等待时间,还能加快计算节省模型的训练时间。在反向传播之前将梯度的值放大,然后在权重更新之后将放大的梯度缩放回来,在计算梯度后,使用。
2024-08-27 10:48:12 896
原创 大模型长文本阅读能力如何评估?
目前大模型上下文的阅读理解能力提升迅速,各大厂也都在积极整理数据集,类似LongBench的长文本测评数据集还有InfiniteBench、RULER等。第二类思路就是大海捞针,在没有标准验证集的情况下可以自己造数据集,因为可以自己找不相关文本并根据自己插入的文本生成相应问题。原文链接。
2024-08-15 09:17:16 476
原创 实战:手把手教你Prompt到底该怎么写
因为如果系统提示自带指令,那么这些系统提示就会与聊天中的每个新提示一起被自动考虑,就能确保LLM在聊天过程中一直可以接收这些提示,无论聊天时间多长。XML标签文本和问题中使用的名词,与系统提示中使用的名词相对应,这样LLM就能理解标签与系统提示指令之间的关系。我们的最新创新产品不仅仅是一款吹风机,它还是一个承诺,为那些热爱生活的人提供快速、轻柔、可靠的头发造型。因此,我们用作分隔符的XML标签是、<POLICY_SUMMARY>,确保LLM理解你的指令与用作分隔符的XML标签之间的关系。
2024-08-06 11:35:59 587
原创 LLaMA3:开源战胜闭源意味着什么?
LLaMA3-405B的模型效果已经赶上目前最好的闭源模型GPT-4o和Claude-3.5,这可能是未来大模型开源与闭源的拐点,这里就LLaMA3的模型结构、训练过程与未来影响等方面说说我的看法。
2024-07-30 09:59:42 710
原创 手把手带你从零推导旋转位置编码RoPE
RNN每个step的隐状态都取决于上一个step的输出,这种连续的状态转移方式使得RNN天然带有位置信息。而Transformer仅依靠Attention机制来关注序列中不同token之间的相关性,如果只使用token embedding就无法获得句子中字与字之间的位置信息,也就是说如果没有位置编码,输入“我不爱你”与“不我爱你”的效果是相同的,因此我们要在里面额外引入位置信息。下面我就为大家介绍位置编码的发展过程。
2024-07-26 09:14:44 1452
原创 Pytorch使用教学9-张量的线性代数运算
在机器学习建模过程中,经常会使用矩阵运算以提升效率,在深度学习中,往往会涉及矩阵的集合运算,就是三维或四维数据的计算。?本文首先介绍矩阵的构造,然后详解矩阵的运算与本质意义。
2024-07-25 09:31:23 1018
原创 Pytorch使用教学5-视图view与reshape的区别
有同学后台留言问为什么view有时可对张量进行形变操作,有时就会报错?另外它和reshape功能好像一致,有什么区别呢?本文就带你了解PyTorch中视图的概念。在PyTorch中对张量进行形变操作时,很多同学也会使用view方法,但是经过一系列变化后,你可能会发现你的张量错乱了,而且不能继续形变。或者你可能都不知道你的张量发生了变化,一直在处理错误数据…
2024-07-25 09:21:52 915
原创 Pytorch使用教学2-Tensor的维度
一般我们最常使用的就是flatten()与reshape()。仔细思考的同学们肯定也可以发现,reshape()也可以实现flatten()的功能,reshape()所需的参数就是张量中的元素数。Tensor是一个多维数组,它是标量、向量、矩阵的高维拓展。
2024-07-24 19:41:07 634
原创 Pytorch使用教学1-Tensor的创建
在我们不知道什么是深度学习计算框架时,我们可以把PyTorch看做是Python的第三方库,在PyTorch中定义了适用于深度学习的张量Tensor,以及张量的各类计算。就相当于NumPy中定义的Array和对应的科学计算方法,正是这些基本数据类型和对应的方法函数,为我们进一步在PyTorch上进行深度学习建模提供了基本对象和基本工具。因此,我们需要熟练掌握PyTorch中张量的基本操作方法。是一种包含单一数据类型元素的多维矩阵。
2024-07-24 19:39:57 594
原创 大模型常用评测基准汇总
在评测集维度,OpenAI和Google会直接使用Chatbot Arena的结果,在对大模型进行评估时,较为简单、高效、易操作的方式是关注Chatbot Arena的leaderboard。从榜单上可以看出中文大模型的效果还是差于国外大模型,这种落后不能单一归结为某一个原因,我们需要认识到在算力、算法、数据中的各种不足。征途漫漫,惟有奋斗。
2024-07-24 09:36:46 1355
原创 详解大模型PPO、DPO的训练过程
AI因你而升温,记得加个星标哦!大家好,我是泰哥。距离上次写技术贴已经1年有余,这一年当中算法技术的发展可以说是日新月异。今天和大家聊聊大模型的训练的三个阶段,分别为有监督学习(SFT)、奖励模型训练(RW)与强化学习(PPO)阶段,我对以上的训练过程会加上一些自己的理解。GPT使用Transformer decoder部分作为语言模型的框架,并将decoder中的Multi-head Attention层删除,其结构和计算过程如上图。
2024-07-10 15:51:19 1497
原创 Mysql经典面试题20道
SQL语句在工作与面试时都必不可少,下面我整理了20道题目供大家练习,常见的使用方法和开窗函数都有考察,来测测你的sql技能是否过关。
2023-05-05 15:06:59 4126 1
原创 Batch Normalization究竟学到了数据的什么信息?
原文链接:Batch Normalization究竟学到了数据的什么信息?大家好,我是泰哥。上节为大家介绍了数据归一化的发展历程,本节就讲讲Batch Normalization的计算思路,看看它究竟强在哪里?为什么它可以使模型梯度保持平稳。1 归一化不会改变数据分布任何归一化的本质都是对数据进行平移和放缩。平移:数据集每一列数据统一加上或减去某一个数缩放:数据集每一列数据统一除以或乘以某一个数import torchimport matplotlib.pyplot as plt#
2022-04-25 09:38:24 4740
转载 再聊聊梯度消失与梯度爆炸
原文链接:再聊聊梯度消失与梯度爆炸随着神经网络的层数变多、结构越来越复杂,模型在训练过程中就会遇到梯度消失和梯度爆炸导致模型不能有效收敛。那么你知道该问题是如何解决的吗?1 梯度消失与梯度爆炸神经网络在进行反向传播的过程中,各参数层的梯度计算会涉及到激活函数的导函数取值。具体来说,假设现在有一个三层的神经网络,XXX为输入,www为神经网络参数,F(x)F(x)F(x)为激活函数:y^=F(F(X∗w1)∗w2)∗w3\hat y = F(F(X * w_1) * w_2) * w_3y^=F(
2022-04-14 16:03:00 5154
原创 NLP标注神器:可同时对文本与实体进行标注
原文链接:NLP标注神器-可同时对文本与实体进行标注我之前做实体标注项目使用过标注精灵、BRAT、YEDDA、DeepDive等标注工具,这些工具虽然可以满足实体标注需求,但安装过程复杂、英文界面、有时会有卡顿,对标注人员都很不友好。而我目前要做的任务需要能同时对数据进行实体标注和文本分类标注,以上提到的工具都很难满足,分开标注效率又太低。于是我找到了rasa-nlu-trainer标注工具,免费、无需安装、无需注册、操作快捷且能同时标注,真是神器!今天就分享给大家。1 进入标注工具地址:https
2021-12-14 09:16:38 12026 4
原创 反向传播:计算图的追踪与停止
原文链接:计算图的追踪与停止反向传播梯度计算是模型收敛的必须手段,今天我们就看看PyTorch中反向传播是如何实现的。1 反向传播的基本过程x = torch.tensor(1., requires_grad = True)y = x ** 2z = y + 1与上节一样,我们构建x、y、z三者之间的函数关系。所谓反向传播,是在此前计算图中记录的函数关系中,反向传播函数关系,进而求得叶节点x的导数值。z# tensor(2., grad_fn=<AddBackward0>)
2021-12-13 14:21:10 1011
原创 Pytorch库的基本架构
原文链接:Pytorch库的基本架构介绍很多同学说每次使用PyTorch时都需要导入很多模块,非常混乱,今天我就将PyTorch常用的模块做一个总结梳理。首先要说明的是PyTorch这是torch的Python版本,所以导入的是torch而不是Pytorch:import torch1 运行基础torch.tensor:基础数据结构torch.autograd:自动微分模块2 torch.utils支持神经网络相关的数据预处理。数据导入与处理utils.datautils.
2021-12-13 14:15:58 5329
原创 详解Pytorch动态图的回溯机制
原文链接:详解Pytorch动态图的回溯机制大家好,我是泰哥。《5分钟精通PyTorch》经过1个月的连载,已经介绍了张量的常规操作以及运算技巧。之后的章节就进入到深度学习部分,会以理论与代码结合的方式为大家呈现,帮助大家理解其中细节。对于动态图回溯机制的学习与理解,首先从张量的微分计算开始入手。注意本节我们暂时不区分微分值、导数值、梯度值的区别,后续讲解梯度下降时再进行区分。不理解的同学统一理解为导数即可。1 Variable与requires_grad有同学会说在进行微分运算时需提前将Ten
2021-12-13 14:08:38 6008
原创 新发布的《人工智能训练师国家职业技能标准》该如何解读?
AI因你而升温,记得加星标哦!大家好,我是泰哥。最近《人工智能训练师国家职业技能标准》 (文末复制链接下载)发布后被刷屏,我就网上热门观点与大家分享,同时谈谈我个人的看法。原文链接:新发布的《人工智能训练师国家职业技能标准》该如何解读?01 作者:桔了个仔你属于什么级别《人工智能训练师技能标准》一共18页,大家可以直接跳到最后两页,它把把人工智能训练师分为了五级,大家可以看看自己所拥有的技能属于哪级?虽然看着好像自己能考一级,但这里面还是有工作年限要求的。五级:有一年以上的相关工作经.
2021-12-02 11:27:26 6700
原创 为什么线代在人工智能中被广泛应用?
原文链接:为什么线代在人工智能中被广泛应用?大家好,我是泰哥。在机器学习建模过程中,经常会使用矩阵运算以提升效率,在深度学习中,往往会涉及矩阵的集合运算,就是三维或四维数据的计算。它们的基础就是线性代数理论,而线代基础的核心又是矩阵,矩阵的本质其实是线性方程!是不是很神奇?本文首先介绍矩阵的构造,然后详解矩阵的运算与本质意义。一、矩阵形变的构造矩阵的形变与构造的方法与二维张量的方法相同。# 创建一个2*3的矩阵t1 = torch.arange(6).reshape(2, 3).float()
2021-12-01 23:05:18 1686
原创 Batch normalization和Layer normalization有什么区别?
AI因你而升温,记得加个星标哦!大家好,我是泰哥。在训练模型前,我们通常要对数据进行归一化处理来加速模型收敛。本文为大家介绍batch normalization和layer normalization的使用场景。1 为什么ML中用BN比较多?现在有一个batch内的人员特征数据,分别是年龄、身高和体重,我们需要根据这3个特征进行性别预测,在预测之前首先要进行归一化处理。ML & batch normalizationBN是针对每一列特征进行归一化,例如下图中计算的均值:BN这是.
2021-11-11 17:41:54 7972
转载 Python该如何优化代码进行提速?
在工作中,我们常常面临着代码提速优化问题,本文就为大家介绍几种Python常用的提速技巧。优化原则:1.先保证代码可以正确运行,再进行性能优化2.优化的选择通常是牺牲空间换取时间,所有我们需要权衡代价3.着重优化代码耗时的部分,通篇优化通常会降低代码的可读性0 定义耗时装饰器# 可监控程序运行时间import timedef clock(func): def wrapper(*args, **kwargs): start_time = time.time()
2021-11-03 11:24:07 459
原创 TensorFlow与PyTorch到底该如何选择?
后台很多同学问我深度学习框架到底该学TensorFlow还是PyTorch呢?我将在以下几个方面给出个人建议。一、易学性与操作性深度学习框架使用计算图来定义神经网络中执行的计算顺序。TF1使用的静态图机制,PyTorch使用动态图机制。静态图意味着计算图的构建和实际计算是分开完成(define and run)动态图意味着计算图的构建和实际计算是同时发生(define by run)有的同学可能对概念不太理解,我们通过一个例子来对比动态图和静态图机制在编程实现上的差异,分别基于TF1和PyTo
2021-11-03 11:22:17 8960
原创 Lock与RLock的区别
目录往期推荐介绍区别一区别二往期推荐Python多线程的使用Python线程池的使用Python多线程的安全问题B站同名【有温度的算法】已经上线想观看视频讲解的同学点击此处直达B站介绍在上节中为大家说明了线程访问临界资源,必须互斥的进行,从而引出了锁。在Python的threading模块中,为我们提供了Lock方法与RLock方法,都具备锁的功能,本节就为大家介绍一下两者在应用时的不同。区别一Lock被称为原始锁,一个线程只能请求一次;RLock被称为重入锁,可以被一个线程请求多次,
2021-09-03 14:08:54 1541
原创 Python多线程的安全问题
目录往期推荐介绍map方法submit+as_completed方法往期推荐Python多线程的使用Python线程池的使用B站同名【有温度的算法】已经上线想观看视频讲解的同学点击此处直达B站介绍因为新建线程系统需要分配资源、终止线程系统需要回收资源,所以如果可以重用线程,则可以减去新建/终止的开销以提升性能。同时,使用线程池的语法比自己新建线程执行线程更加简洁。Python为我们提供了ThreadPoolExecutor来实现线程池,此线程池默认子线程守护。它的适应场景为突发性大量请求或
2021-09-03 14:02:28 585
原创 Python线程池的使用
目录往期推荐线程池介绍map方法submit+as_completed方法往期推荐Python多线程的使用B站同名【有温度的算法】已经上线想观看视频讲解的同学点击此处直达B站线程池介绍因为新建线程系统需要分配资源、终止线程系统需要回收资源,所以如果可以重用线程,则可以减去新建/终止的开销以提升性能。同时,使用线程池的语法比自己新建线程执行线程更加简洁。Python为我们提供了ThreadPoolExecutor来实现线程池,此线程池默认子线程守护。它的适应场景为突发性大量请求或需要大量线程完
2021-08-20 14:04:28 696
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人