- 博客(98)
- 收藏
- 关注
原创 LLM 能力与特点
大型模型不仅可以缩短每个具体应用的开发周期,减少所需人力投入,也可以基于大模型的推理、常识和写作能力,获得更好的应用效果。因此,大模型可以成为 AI 应用开发的大一统基座模型,这是一个一举多得、全新的范式,值得大力推广。在 2021 年,斯坦福大学等多所高校的研究人员提出了基座模型(foundation model)的概念,清晰了预训练模型的作用。这是一种全新的 AI 技术范式,借助于海量无标注数据的训练,获得可以适用于大量下游任务的大模型(单模态或者多模态)。智能体(Agent)
2024-08-11 17:01:31
441
原创 RAG简介
大模型幻觉问题(Hallucination in Large Language Models)是指在大型语言模型(LLM)生成文本时,模型可能会产生不正确、无意义或与训练数据无关的内容。这种现象通常发生在模型试图生成看似合理但实际不准确的信息时。RAG可从外部知识库检索事实,以最准确、最新的信息为基础的自然语言模型(LLM),并让用户深入了解LLM的生成过程。
2024-08-01 09:07:36
342
原创 Reranker技术
基础 RAG 的操作流程大致如下:首先,你需要将文本切分成小段,然后利用某种 Transformer 编码器模型,将这些文本段转换成向量形式。接着,把所有向量汇集到一个索引里。最后,你需要为大语言模型(Large Language Model, LLM)制定一个提示词,这个提示词会指导模型根据我们在搜索步骤中找到的上下文信息来回答用户的查询。在实际运行过程中,我们会用同一个编码器模型把用户的查询转换成向量,然后根据这个向量在索引中进行搜索。
2024-07-31 08:52:55
945
原创 MoE(混合专家模型)
其并行处理不同子任务的特性,充分发挥计算资源,帮助有效地扩展模型并减少训练时间,提高模型在训练和推理阶段的效率,使其在大规模数据下具有较强的可扩展性,以更低的计算成本获得更好的结果。 说到这里的“门”概念,与LSTM网络的“门”概念有所不同,MoE的“门”概念主要是用于匹配数据和专家模型之间的连接,就好比不同班级的学生要进不同的教室上课一样,而LSTM的“门”概念主要是一种控制信息流动的装置,它可以保留或通过一定比例的数据,更像是在控制流量,而MoE的“门”概念可以看作是选择要通过的对象。
2024-07-30 08:45:28
1024
原创 大模型的架构演进史——为什么Decoder-Only成为最终的胜利者
使用encoder-only的模型主要的思路是通过编码器,将大量文本、时序数据等资料进行编码、压缩,达到进一步抽象理解输入数据的能力。encoder-only更加侧重于对信息的压缩与分类,在对输入内容进行扩展的情况下效果不佳。相比较而言,decoder-only需要的计算资源更少,能够更快学习和训练得到最终的模型。使用decoder-only的模型主要是通过解码器,对已输入的信息进行解码衍生。基于encoder-decoder结构的模型,同时能够编码和解码对应的输入信息。和编码信息,而不是生成新的文本。
2024-07-29 09:38:40
760
原创 算法四十天-删除排序链表中的重复元素
一次遍历由于给定的链表是排好序的,因此,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。具体地,我们从指针cur指向链表的头节点,随后开始对链表进行遍历。如果,可以直接将cur后移一位,移除值相同的链表。当遍历完整这个链表时,返回链表的头节点就可以了。
2024-04-09 22:11:04
468
原创 算法第三十九天-验证二叉树的前序序列化
方法一:栈栈的思路是「自底向上」的想法。下面要结合本题是「前序遍历」这个重要特点。我们知道「前序遍历」是按照「根节点-左子树-右子树」的顺序遍历的,只有当根节点的所有左子树遍历完成之后,才会遍历右子树。对于本题的输入,我们可以先判断「左子树」是否有效的,然后再判断「右子树」是否有效的,最后判断「根节点-左子树-右子树」是否为有效的。这个思路类似于递归,而把递归改写成循环时,就会使用「栈」,这就是本题使用「栈」的原因。下面的重点是如何判断一棵子树是否有效?
2024-04-07 21:27:13
1002
原创 算法第三十八天-故障键盘
提示:把反转看成是往字符串的头部添加字符。具体来说:如果当前处于「往字符串尾部添加字符」的状态,那么遇到 i 后,改成「往字符串头部添加字符」的状态。如果当前处于「往字符串头部添加字符」的状态,那么遇到 i 后,改成「往字符串尾部添加字符」的状态。这可以用双端队列实现。
2024-04-02 20:27:40
398
原创 算法第三十七天-旋转链表
题意:将链表中每个元素向后移动k个位置,相当于把链表的后面k%len节点移到链表的最前面。所以本题步骤为:1.求出链表长度;2.找出倒数第k+1个节点3.链表重整:将连败哦的倒数第k+1个节点和倒数第k个节点断开,并把后半部分拼接到链表的头部。
2024-04-01 20:52:24
407
原创 代码第三十六天:需要添加的硬币的最小数量
为方便描述,把 0 也算作可以得到的数。假设现在得到了区间0s−1中的所有整数,如果此时遍历到整数xcoinsi,那么把0s−1中的每个整数都增加x,我们就得到了区间xsx−1中的所有整数。思路把coins从小到大排序,遍历xcoinsi。x≤s0s−1xsx−10sx−1xscoinsssss2s−10s−102s−1x2s当stargets时,我们就得到了1。
2024-03-31 22:02:53
799
原创 代码第三十五天-子集Ⅱ
一般情况下,看到题目要求[所有可能的结果],而不是[结果的个数],我们就知道需要暴力搜索所有的可行解了,可以使用[回溯法]回溯法是一种算法思想,而递归式一种编程方式,回溯法可以使用递归来实现。回溯法的整体思路是:搜索每一条路,每次回溯是对具体的一条路径而言的。对当前路径下的未探索区域进行搜索,则可能出现两种情况:1.当前未搜索区域满足结束条件,则保留当前路径并退出当前搜索;
2024-03-30 17:19:47
921
原创 深度学习-数据归一化与Batch Normalization
文章目录数据归一化与Batch Normalization一、经典机器学习的归一化算法1.经典机器学习归一化方法回顾1.1 0-1标准化方法1.2 Z-Score标准化2.经典机器学习归一化算法在深度学习中的实践3.Z-Score数据归一化的局限3.1 Zero-Centered特性消失3.2 Zero-Centered Data的作用局限4.保证梯度平稳的第二条道路:输入数据调整二、Batch Normalization基础理论1.归一化方法与数据分布的相互独立性2.归一化与仿射变换3.Batch Nor
2024-03-26 22:09:19
1662
1
原创 算法第三十三天-笨阶乘
对于表达式求值,大家已经很熟悉了,需要用到[栈]这个数据结构。当使用python进行答题的时候,需要注意下面的这个坑。Python语言中的整数除法是向下取整的,而不是向零取整,对于负数的除法会有问题。
2024-03-25 19:11:34
329
原创 算法第三十二天-最长公共子序列
比如对于本题而言,可以定义dp[i][j]表示和的最长公共子序列。之所以dp[i][j]的定义不是text1[0:i]和text2[0:j],是为了方便当i=0或者j=0的时候,dp[i][j]表示的为空字符串和另外一个字符串的匹配,这样子dp[i][j]可以初始化为0.
2024-03-23 16:35:56
585
原创 生成模型概述
生成模型是深度学习领域的一类模型,它们的目标是学习如何生成数据的分布,从而能够生成新的、与真实数据类似的样本。以下是一些主要的生成模型:生成对抗网络(GANs):GAN由两个部分组成:生成器(生成新数据)和判别器(区分真实数据和生成的数据)。这两部分在训练过程中相互竞争,提高彼此的性能。应用:图像生成、艺术创作、数据增强、风格迁移等。自回归模型(Autoregressive Models):如Transformer在自然语言处理领域的应用。这些模型预测序列中的下一个元素,基于前面的元素。
2024-03-23 16:22:49
4011
原创 sora相关技术,看这一篇就够了
中的编码器模块编码成低维的空间向量表示,经Patches网络,将其中的向量分割为指定大小的模块(例如:16*16*16),并将时空模块通过SD模型进行扩散学习,将经过学习后的数据通过多层的以U-net为backbone的transformer网络恢复成原有大小模块,合并后得到需要的向量表示,最后逆向通过VAE解码器将向量表示输出成指定格式和时长的视频。这个等式的右边又称为。虚线代表的是对后验分布。视频压缩网络的压缩率是多少,Encoder中的复杂度是具体怎么设置的,时空patches中排布的方法等。
2024-03-22 08:45:54
1561
原创 深度学习- 2.10 Xavier方法与kaiming方法(HE初始化)
尽管Xavier初始化能够在Sigmoid和tanh激活函数叠加的神经网络中起到一定的效果,但由于ReLU激活函数属于非饱和类激活函数,并不会出现类似Sigmoid和tanh激活函数使用过程中可能存在的梯度消失或梯度爆炸问题,反而因为ReLU激活函数的不饱和特性,ReLU激活函数的叠加极有可能出现神经元活性消失的问题,很明显,该类问题无法通过Xavier初始化解决。对于参数初始化计算过程,最重要的是确定参数的方差,如果是正态分布,由于均值是0,因此可以快速确定其分布,而如果是均匀分布,则可通过。
2024-03-21 08:58:06
3120
原创 算法第三十一天-区域和检索【数组不可变】
为方便描述,把nums记作a。对于数组a,定义它的前缀和s0s1s2sisi1sn0a0a0a1⋮a0a1⋯ai−1j0∑i−1numsja0a1⋯ai−1aij0∑inumsj⋮a0a1⋯an−1根据这个定义,有si1siai示例中的数组−203−52−1,对应的前缀和数组s0−2−21。
2024-03-20 11:04:42
902
原创 深度学习-2.9梯度不稳定和Glorot条件
对于神经网络这个复杂系统来说,在模型训练过程中,一个最基础、同时也最常见的问题,就是梯度消失和梯度爆炸。我们知道,神经网络在进行反向传播的过程中,各参数层的梯度计算会涉及到激活函数导函数取值,具体来说,假设现在有一个三层的神经网络,其中两个隐藏层的激活函数为Fx,对应的导函数为fx,设X为输入训练的数据特征,y为标签,y为模型向前传播输出结果,$ w_1为第一层参数、w_2为第二层参数、w_3$为第三层参数,loss为损失函数,则有如下计算公式:yFFX∗w1∗。
2024-03-20 10:31:20
1085
原创 算法第三十天-矩阵中移动的最大次数
网格图 DFS从第一列的任一单元格i0开始递归。枚举往右上/右/右下三个方向走,如果走一步后,没有出界,且格子值大于gridij,则可以走,继续递归。在递归过程中,记录能访问到的最大列号,作为答案。代码实现时,为避免重复递归之前访问过的格子,可以用一个vis数组标记访问过的格子。但实际上,可以把gridij置为0从而无需创建vis数组。这是因为网格值均为正数,并且我们只能访问到比当前格子值更大的格子,所以置为0。
2024-03-18 19:21:41
1156
原创 深度学习-2.8模型拟合概念和欠拟合模型、过拟合调整策略
通过此前介绍,已经知道深度学习模型主要是通过模型在测试集上的运行效果来判断模型好坏。测试集相当于是“高考”,而此前的模型训练都相当于是在练习,但怎么样的练习才能有效的提高高考成绩,这里就存在一个“悖论”,那就是练习是为了高考,而在高考前我们永远不知道练习是否有效,那高考对于练习的核心指导意义何在?
2024-03-18 19:16:27
1370
原创 算法第二十九天-最长公共子序列
比如对于本题而言,可以定义dp[i][j]表示和的最长公共子序列。之所以dp[i][j]的定义不是text1[0:i]和text2[0:j],是为了方便当i=0或者j=0的时候,dp[i][j]表示的为空字符串和另外一个字符串的匹配,这样子dp[i][j]可以初始化为0.
2024-03-17 21:47:30
838
原创 算法第二十九天-森林中的兔子
xx+1x我们可以通过举例子得出一下的规律:我们统计数组中所有回答x的兔子的数量nn%(x+1)==0n/(x+1)x+1n/(x+1)+1x+1。
2024-03-17 21:46:09
416
原创 算法第二十八天-组合总和
target =727-2=52737-3=437基于上面的想法,可以画出树形图。建议大家自己在纸上画出这棵树,。编码通过实现,使用一个列表,在变化过程中,遍历所有可能的列表并判断当前列表是否符合题目要求,完成[回溯]
2024-03-16 15:30:38
408
原创 深度学习-2.7 机器学习目标与模型评估方法
如果模型能够在测试集上有不错的预测效果,我们就“简单粗暴”的认为模型可以在真实的未来获取的未知数据集上有不错的表现。据此,我们称模型在训练集上误差称为训练误差,在测试集上的误差称为泛化误差,不过毕竟在测试集上进行测试还只是模拟演习,我们采用模型的泛化能力来描述模型在未知数据上的判别能力,当然泛化能力无法准确衡量(未知的数据还未到来,到来的数据都变成了已知数据),我们只能通过模型在训练集和测试集上的表现,判别模型泛化能力,当然,就像此前说的一样,最基本的,我们会通过模型在测试集上的表现来判断模型的泛化能力。
2024-03-16 15:25:18
1345
原创 深度学习-2.6在MINST-FASHION上实现神经网络的学习流程
需要对数据的结构进行一个改变,这里的“-1”代表,我不想算,请pytorch帮我计算criterion = nn.NLLLoss() #定义损失函数opt = optim.SGD(net.parameters(), lr=lr,momentum=gamma) #定义优化算法opt.step()opt.zero_grad()#求解准确率epoch+1, samples。
2024-03-15 19:43:49
1489
原创 算法第二十七天-猜数字游戏
有多少位属于数字和确切位置都猜对了:统计secretiguessi的个数。有多少位属于数字猜对了但是位置不对:用两个数组(哈希表)分别统计secretiguessi时secreti的出现次数和guessi的出现次数,记作cntS和cntG。答案为∑mincntSicntGi])例如secret12223guess13332对于secretiguessi。
2024-03-15 18:57:39
889
原创 算法第二十六天-删除有序数组中的重复项Ⅱ
题目要求中提到原地修改,那么肯定需要一个指针指向当前即将放置元素的位置,需要另外一个指针向后遍历所有元素,所以[双指针]解法呼之欲出。slow-1因为最多允许两个重复元素,并且slow-2位置是上上次放置了元素的位置,所以让num[fast]跟进行比较。每次都是只允许最多两个元素出现重复,这两个元素的位置在slow-1和slow-2。
2024-03-10 22:08:23
548
原创 代码第二十四天-寻找旋转排序数组中的最小值Ⅱ
二分法当遇到两个left、right两个位置值相同时候,可以选择将 right = right-1。
2024-03-07 19:54:12
372
原创 深度学习-2.3损失函数
在之前的文章中,已经建立了最基础的深层神经网络,并能够理解网络的正向传播过程,接下来,我将分享深度学习网络的学习和训练过程,并从最小二乘和梯度下降算法开始拓展,介绍神经网络的损失函数、常用优化算法等信息,实现神经网络的学习和迭代。
2024-03-07 12:09:55
1105
原创 深度学习-2.2 多层神经网络
从单层到多层是神经网络发展史上的重大变化,层的增加彻底将神经网络的性能提升到了另一个高度,正确理解层的意义对于我们自主构建神经网络有很重要的作用,学会利用层是避免浪费计算资源以及提升神经网络效果的关键。
2024-03-03 17:10:14
2117
原创 深度学习-2.1 神经网络原理
文章目录神经网络原理1.单层神经网络1.1 回归单层神经网络:线性回归1.2 二分类单层神经网络:sigmoid与阶跃函数1.3 多分类单层神经网络:softmax回归神经网络原理人工神经网络(Artificial Neural Network,ANN),通常简称为神经网络,它是机器学习当中独树一帜的,最强大的强学习器没有之一。人脑通过构建复杂的网络可以进行逻辑,语言,图像的学习,而传统机器学习算法不具备和人类相似的学习能力。机器学习研究者们相信,模拟大脑结构可以让机器的学习能力更上一层楼,于是人工神
2024-02-29 10:53:16
1707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人