- 博客(35)
- 收藏
- 关注
原创 【从0到1搞懂大模型】chatGPT 中的对齐优化(RLHF)讲解与实战(9)
ChatGPT是怎么变聪明的?想象一下,ChatGPT一开始就像个刚学说话的小孩,虽然懂一些知识,但回答得不太好。科学家们为了让它的回答更符合人类喜好,用了三步训练法,让它像打游戏升级一样,越练越强!第1步:先教它“标准答案”(监督学习)方法:从网上找一大堆问题和答案(比如“怎么煮咖啡?”),让ChatGPT学习正确的回答方式。结果:它学会了基本的对话能力,但还不够聪明,回答可能很死板或者不讨喜。这时候的版本叫“弱弱的ChatGPT”。
2025-05-25 23:33:51
1294
原创 【从0到1搞懂大模型】训练出你的简版生成式GPT(8)
语言模型(language model)做的事情就是在给定一些词汇的前提下, 去估计下一个词汇出现的机率分布。为何会想要训练一个LM?因为有种种好处:好处1:无监督数据无限大。不像图像识别还要找人标注数据,要训练LM 的话,网络上所有文本都是你潜在的资料集(BERT 预训练使用的数据集共有33亿个字,其中包含维基百科等)好处2:厉害的LM 能够学会语法结构、解读语义等。透过特征提取或是fine-tuning 能更有效率地训练下游任务并提升其表现好处3:减少处理不同NLP 任务所需的构建模型成本由此
2025-05-18 18:27:58
758
原创 【全网最全】多种Prompt微调方法总结(持续更新...)
使用方式定义一致的输入输出格式使用明确的分隔符和标记强调结构一致性效果提高模型理解任务的准确性使输出更加可预测和一致便于后续处理和使用使用案例使用案例请按以下格式分析三部经典电影:电影名称:[电影标题]导演:[导演姓名]上映年份:[年份]核心主题:[1-2句描述主题]创新点:[1-3点技术或叙事创新]文化影响:[简要分析]---
2025-05-10 16:37:38
856
原创 【从0到1搞懂大模型】transformer详解:架构及代码实践(7)
首先,我们会把需要处理的文本序列转换为一个输入词嵌入向量(Word Embedding),它负责将输入的词转换成词向量。然后,我们会为这些词向量添加位置编码(Positional Encoding),从而为模型提供位置信息,如下图所示。由于Transformer模型不使用循环神经网络,因此无法从序列中学习到位置信息。为了解决这个问题,需要为输入序列添加位置编码,将每个词的位置信息加入词向量中。正弦位置编码使用不同频率的正弦和余弦函数对每个位置进行编码。
2025-05-07 20:28:00
993
原创 Lora原理介绍并用Macbook air超快实现本地微调小模型
微调是基于一个已经训练好的神经网络模型,通过对其参数进行细微调整,使其更好地适应特定的任务或数据。通过在新的小规模数据集上继续训练模型的部分或全部层,模型能够在保留原有知识的基础上,针对新任务进行优化,从而提升在特定领域的表现。
2025-05-05 19:12:16
922
原创 【从0到1搞懂大模型】transformer先导:seq2seq、注意力机制、残差网络等(6)
可以发现上面的 Seq2Seq 方式只是将编码器的最后一个节点的结果进行了输出,但是对于一个序列长度特别长的特征来说,这种方式无疑将会遗忘大量的前面时间片的特征。每个单词(而不是一个字母,也不是一句话)是一个输出,为了满足自然语言的特征,单词与单词之间,是有关联的,不是相互独立的。即输入虽然没有序列,但输出是有序列的。即多个输入,如“我”、“打”、“你”,如果时序关系不同,其含义也是不相同的,即为不同的输入,也就需要有不同的输出。输入与输出,都是有多个独立单元组成的序列,但输入和输出单元的个数是相同的。
2025-04-13 21:41:19
792
原创 【从0到1搞懂大模型】RNN变体——LSTM 与 GRU(5)
最后用跟上篇文章的同一份数据结合 GRU 做测试# 创建好输入输出# 划分训练集和测试集,70% 作为训练集# 定义模型self.reg = nn.Linear(hidden_size, output_size) # 回归x = x.view(s*b, h) # 转换成线性层的输入格式return x# 开始训练# 前向传播# 反向传播if (e + 1) % 100 == 0: # 每 100 次输出结果net = net.eval() # 转换成测试模式。
2025-03-29 16:28:16
787
原创 【从0到1搞懂大模型】神经网络的实现:数据策略、模型调优与评估体系(3)
一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的特征权重反而会被考虑,从而干扰了对正确yi的预测。我们首先将数据集划分为训练集和测试集,由于模型的构建过程中也需要检验模型,检验模型的配置,以及训练程度,过拟合还是欠拟合,所以会将训练数据再划分为两个部分,一部分是用于训练的训练集,另一部分是进行检验的验证集。验证集可以重复使用,主要是用来辅助我们构建模型的。
2025-03-09 19:17:24
1266
原创 【从0到1搞懂大模型】神经网络长什么样子?参数又是如何变化的?(2)
Adagrad优化算法就是在每次使用一个 batch size 的数据进行参数更新的时候,算法计算所有参数的梯度,那么其想法就是对于每个参数,初始化一个变量 s 为 0,然后每次将该参数的梯度平方求和累加到这个变量 s 上,然后在更新这个参数的时候,学习率就变为。Adagrad 的核心想法就是,如果一个参数的梯度一直都非常大,那么其对应的学习率就变小一点,防止震荡,而一个参数的梯度一直都非常小,那么这个参数的学习率就变大一点,使得其能够更快地更新,这就是Adagrad算法加快深层神经网络的训练速度的核心。
2025-03-06 01:20:38
912
原创 【从0到1搞懂大模型】一切都从线性回归开始讲起(1)
前言毕业近两年,生活基本都围绕着工作,每天都被各种需求、各种 DDL 追着跑。十分怀念读研时从 0 到 1 学自然语言处理的时候,那种一点一滴把各种算法结构弄懂、一点点调试把 accuracy 调高的艰难而又充实的心情。自毕业后,大模型一年比一年火,现在已经下意识的在要做各种事情前听听大模型怎么说,但想更好的应用,终究要搞懂原理,大模型在进步,我们也要进步。
2025-02-27 00:34:19
813
原创 RNN(pytorch)的维度问题——用GRU实现文本分类(参考刘二大人)
最近学LSTM的时候对于其中各种输入输出都有点懵,然后参考了刘二大人关于pytorch实践以及下面这篇文章Pytorch深度学习实践(b站刘二大人)P13讲 (RNN循环神经网络高级篇)_努力学习的朱朱的博客-CSDN博客代码把维度问题整理了一下一、pytorch中embedding在做什么?我们先看下面这一段代码:import torchembedding = torch.nn.Embedding(10, 3)print(embedding.weight) # 根据索引取embeddi
2022-05-03 21:17:23
2938
3
原创 信息量、熵、相对熵与交叉熵的理解
一、信息量信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”。也就是说衡量信息量大小就看这个信息消除不确定性的程度。“太阳从东方升起了”这条信息没有减少不确定性。因为太阳肯定从东面升起。这是句废话,信息量为0。“吐鲁番下中雨了”(吐鲁番年平均降水量日仅6天)这条信息比较有价值,为什么呢,因为按统计来看吐鲁番明天不下雨的概率为98%(1-6/300),对于吐鲁番下不下雨这件事,首先它是随机不去确定的,这条信息直接否定了发生概率为98%的事件------不下雨,把非常大概率的事
2022-03-19 17:06:21
2033
原创 numpy与pandas各种功能及其对比(超全)
在做数据处理的时候经常会用到numpy和pandas,有时候容易搞混,这篇文章就从功能方面总结对比一下二者的区别。一、简介numpy:numpy是以矩阵为基础的数学计算模块,提供高性能的矩阵运算,数组结构为ndarray。可以把它看作是多维数组(ndarray)的容器,可以对数组执行元素级计算以及直接对数组执行数学运算的函数。其也是用于读写硬盘上基于数组的数据集的工具。数据处理速度比Python自身的嵌套列表要快很多。ndarray中所有元素必须是相同类型。pandas:pandas是基于num
2022-03-10 17:32:24
36530
4
原创 【Python数据分析】时间序列分析——AR/MA/ARMA/ARIMA
常用按时间序列排序的一组随机变量X1,X2,...,Xt来表示一个随机时间的时间序列,简记为{Xt};用x1,x2,...,xn或{xt,t=1,2,...,n}表示该随机序列的n个有序观察值,称之为序列长度为n的观察值序列。时间序列分析的目的就是给定一个已经被观测的时间序列,观测该序列的未来值。一、时间序列的平稳性与差分法1.时间序列的平稳性:平稳性就是要求经由样本时间序列所得到的拟合曲线 ,在未来的一段期间内仍能顺着现有的形态“惯性”地延续下去或者说一个时间序列,如果均值没有系统的变化(
2022-02-20 21:14:49
12225
3
原创 【Python数据分析】数据挖掘建模——聚类分析
聚类算法是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法,是一种无监督学习方法。聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将他们划分为若干组,划分的原则是组内样本最小而组间距离最大化。常用的聚类方法有:常见的聚类分析算法有:这里主要介绍一下最常用的K-Means聚类算法一、K-Means聚类算法简介K-Means算法是典型的基于距离的非层次聚类算法,在最小化误差函数的基础上将数据划分为预定的类数k,采用距离作为相似性评价指标,即认为两个对象的
2022-01-29 22:34:22
9015
2
原创 【Python数据分析】数据挖掘建模——分类与预测算法评价(含ROC曲线、F1等指标的解释)
模型预测效果评价,通常可以用以下指标来衡量1.绝对误差和相对误差设表示实际值,表示预测值,则绝对误差E表示为相对误差e表示为2.平均绝对误差、均方误差、均方根误差与平均绝对百分误差平均绝对误差(Mean Absolute Error, MAE)计算公式如下:表示第i个实际值与预测值的绝对误差。均方误差(Mean Squared Error, MSE)计算公式如下:均方根误差(Root Mean Squared Error,RMSE)计算公式如下:平均.
2022-01-23 16:57:16
3534
原创 【Python数据分析】数据挖掘建模——分类与预测——人工神经网络
人工神经网络(artificial neural networks,ANNs),是模拟生物神经网络进行信息处理的一种数学模型。一、人工神经网络简介更多关于神经网络的发展可以参考:人工神经网络简介_网络资源是无限的-CSDN博客_人工神经网络人工神经元是人工神经网络操作的基本信息处理单位。人工神经元的模型如图所示,它是人工神经网络的设计基础。一个人工神经元对输入信号X=[x1,x2,...,xm]的输出为y=f(u+b),其中激活函数主要有以下几种形式人工神经网络的学习也称为训练,
2022-01-23 14:58:27
4543
原创 【Python数据分析】数据挖掘建模——分类与预测——决策树
决策树是一种树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性上的不同取值将其划分成若干个子集。构造决策树的核心问题是在每一步如何选择适当的属性对样本做拆分。常见的决策树算法如下:决策树算法 算法描述 ID3算法 在决策树各级节点上,使用信息增益的方法作为属性的选择标准 C4.5算法 ID3的改进版,使用信息增益率来选择节点属性。ID3只适用于离散的描述属性,而C4.5算法既能够处理离散的描述属性,也可以处理连续的描述属性 ..
2022-01-20 21:47:07
5449
原创 【Python数据分析】数据挖掘建模——分类与预测——回归分析
根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模型、离群点检测等模型。首先介绍一下分类与预测模型。一、分类预测模型实现过程分类模型主要是预测分类编号,预测模型主要是建立连续值函数模型,预测给定自变量对应的因变量的值。分类和预测的实现过程类似。以分类算法为例,分类算法主要有两步:第一步是学习步,通过归纳分析训练样本集来建立分类模型,得到分类规则;第二步是分类部,先用已知的测试样本集来评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测。
2022-01-18 20:20:06
6257
1
原创 SIR模型和Python实现
一、SIR模型介绍SIR模型时传染病中最基础最核心的模型,研究的是某个封闭地区的疫情传播规律。SIR模型的动力学关系如下图:健康人数S的变化与 健康人数S和正感人数I的乘积(代表健康人数和正感人数的接触)成正比,其中α代表交叉感染率移出人数的变化与正感人数的数量成正比,其中β代表回复率。基于上面的是自,SIR模型可以表示成一个常微分方程组如下图:当s(t)=β/α时就是病毒最严重的时候;表示S的反函数,代表S越大,t越小,越早结束疫情封城就是为了较低交叉感染率α,并.
2022-01-10 09:23:55
14911
9
原创 LDA主题模型简介及Python实现
一、LDA主题模型简介LDA主题模型主要用于推测文档的主题分布,可以将文档集中每篇文档的主题以概率分布的形式给出根据主题进行主题聚类或文本分类。LDA主题模型不关心文档中单词的顺序,通常使用词袋特征(bag-of-word feature)来代表文档。词袋模型介绍可以参考这篇文章:文本向量化表示——词袋模型 - 知乎了解LDA模型,我们需要先了解LDA的生成模型,LDA认为一篇文章是怎么形成的呢?LDA模型认为主题可以由一个词汇...
2022-01-09 11:07:07
203123
347
原创 【Python数据分析】数据预处理3——数据规约(含主成分分析详解、Python主要预处理函数)
数据规约产生更小且保持完整性的新数据集,在规约后的数据集上进行分析和挖掘将提高效率一、属性规约属性规约通过属性合并创建新属性维数,或者通过直接删除不相关的属性来减少数据维数,从而提高数据挖掘的效率,降低计算成本。属性规约常见的方式如下表所示:属性规约方法 方法描述 合并属性 将一些旧属性合并为新属性 逐步向前选择 从一个空属性集开始,每次从原来属性集合中选择一个当前最优的属性添加到当前属性子集中,直到无法选出最优属性或满足一定阈值约束为止 逐步向后删除 从全属
2022-01-02 16:46:37
3845
原创 【Python数据分析】数据预处理2——数据集成
数据挖掘需要的数据往往分布在不同的数据源中,数据集成就是将多个数据源合并存放在一个一致的数据存储位置(如数据仓库)中的过程。一、实体识别常见的实体识别有:1.同名异义(两个不同数据源中属性名称相同)2.异名同义(两个数据源中属性名称不同,但是代表同一个数据)3.单位不统一二、冗余属性识别注意同一属性多次出现和同一属性命名不一致导致重复等情况三、数据变换1.简单函数变换常用的包括平方、开方、取对数、差分运算等。简单的函数变换常用来将不具有正态分布的数据变换成具有正态分布
2021-12-29 16:16:26
2870
原创 【Python数据分析】数据预处理1——数据清洗
在数据挖掘过程中,数据预处理过程是占比很大的一部分工作数据预处理过程主要有以下几个部分1、数据清洗——2.数据集成——3.数据变换——4.数据规约本文介绍数据清洗部分一、缺失值分析与处理1.缺失值分析 缺失值的影响: (1)数据建模将丢失大量有用信息 (2)数据挖掘模型所表现出的不确定性更加显著 (3)包含控制的数据会使建模过程陷入混乱,导致不可靠输出 缺失值的分析:使用简单的统计分析,可以得到含缺...
2021-12-26 22:05:59
3179
原创 【python数据分析】用python进行数据探索2(常见matplotlib及pandas绘图函数汇总、对比及拓展)
汇总几种常见matplotlib及pandas绘图函数,包括折线图、饼图、直方图、箱型图等。对对比pandas和matplotlib中这些绘图函数的不同使用方法。
2021-12-13 20:24:05
2478
1
原创 基于NRC词典的离散情感分析(含有程度词和否定词)
NRC词典的加载方法和分词方法之前的文章有写,直接套用即可。具体函数参考了这篇文章:基于情感词典的文本情感分析(附代码)_Petrichoryi的博客-CSDN博客_bosonnlp情感词典我相当于是把这篇文章里的正负情感改成了NRC词典中的八种离散情感,进行逐一计算,具体代码如下:not_word_file = open('E:/data/否定词.txt','r+',encoding='utf-8') not_word_list = not_word_file.readlines()no
2021-12-12 21:18:33
3378
2
原创 【python数据分析】用python进行数据探索1(含各种数据基础分析方法以及直方图、条形图、折线图等基本画法)
从这周开始,我将在此记录我对《python数据分析与挖掘实战》(第二版)的跟读情况,将我认为的值得学习的点记录在这里,有时候也会对相关知识进行拓展,保持每周更新3-4次的频率,争取在下次开学前把这本书学习完。同时,因为python中库的更新,书中原来使用的一些函数已经发生变化,我也会相应进行修改。一、数据特征分析1. 定量数据的分布分析——直方图import pandas as pdimport numpy as npcatering_sale = './Python数据分析与挖掘实.
2021-12-12 20:54:47
2401
原创 python列表、元组、字典、集合区别及他们之间的转换(超全)
今天想先总结一下python中数据结构区别以及他们之间能如何转化 1. 基本属性 数据结构 列表(list) 元组(tuple) 字典(dict) 集合(set) 基本形式 [123, 'python', ('python', 123)] ('A','B','C','1') {'A':7,'B':1,'C':...
2021-12-10 15:26:50
3529
原创 LDA主题模型绘制困惑度(perplexity)-主题数曲线——python
主题建模作为一种基于机器学习的文本内容分析技术,一般用于推断文本文档中隐藏主题的技术。很多研究使用了基于Latent Dirichlet Allocation (LDA)的主题建模算法来处理大规模文档并识别潜在主题。LDA主题模型已经在多个研究领域得到应用,且都有着不俗表现。LDA作为一种无监督机器学习技术,利用词袋方法识别隐藏在大规模文档集或语料库中的主题信息。LDA模型可挖掘出文档集或语料库中的潜在主题信息,并采用词 袋构建模型,在不考虑词汇出现顺序的情况下,构成“文档-主题分布”和“主题-词分布”
2021-12-06 22:53:42
20091
28
原创 基于NRC词典的情感分析(含多种离散情绪)——python
NRC词典简介:NRC词典由加拿大国家研究委员会(简称NRC)的专家创建,目前已有多种语言版本,我们可以用其中文版本来进行情感分析。使用一系列单词来帮助识别情绪,情感,并分析标签,表情符号和单词颜色的关联。词典中包含情绪的类别主要有以下几种:我们可以用以下代码看词典中情感相关内容:import pandas as pdlexion_df = pd.read_excel('E:/JupyterProject/mybook-main/mybook-main/data/Textmining
2021-12-05 21:45:00
5850
1
原创 用matplotlib画带有误差棒的三维数据散点图(第三维连续变量属性用节点颜色和大小表示)——python
我想绘制一个带有误差棒的散点图,同时数据的第三个属性能用散点大小和颜色表示,我查了很多资料发现如果单独用errorbar来绘制图,其点的大小和颜色很难根据数据而改变,尤其是很难达到一个渐变的效果,因此我想到了把散点图和误差棒图结合为一张图最后我得到的图如下:先分别介绍一下两个函数的参数1. scatter函数(散点图)x,y,z分别代表数据的三个属性,其中x,y分别表示为横纵坐标,z用散点的颜色和大小表示。matplotlib中散点图函数scatter介绍注:该图转来自Pyth.
2021-12-04 14:58:53
5359
原创 用python对单一微博文档进行分词——jieba分词(加保留词和停用词)
用python对单一微博文档进行分词——jieba分词(加保留词和停用词)
2021-12-03 21:46:52
40907
27
【从0到1搞懂大模型】transformer详解:架构及代码实践-transformer完整代码(7)
2025-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人