- 博客(282)
- 资源 (5)
- 收藏
- 关注
原创 浅析原型学习(Prototype Learning)及代码实现|Prototypical Verbalizer for Prompt-based Few-shot Tuning
看了一些博客的内容而本次是基于和这两篇论文来讨论的。接下来将从代码和论文本身的角度来阐述。
2024-11-26 20:31:23
3056
原创 监督对比学习代码实现与分析(Supervised Contrastive Learning in NLP)
SimCSE: Simple Contrastive Learning of Sentence EmbeddingsSupervised contrastive learningLearning Implicit Sentiment in Aspect-based Sentiment Analysis with Supervised Contrastive Pre-TrainingDecoupled Contrastive Learning for Long-Tailed Recognition
2024-11-26 12:54:16
2336
原创 向量各种积的定义与说明
那么假设有两个向量:a=[a1a2a3];b=[b1b2b3]a=\left[\begin{array}{c}a_1 \\a_2 \\a_3\end{array}\right]; b= \left[\begin{array}{c}b_1 \\b_2 \\b_3\end{array}\right]a=a1a2a3;b=b1b2b3欧几里得空间(Euclidean space)是内积空间(inner product space)的一个特例。在实数域且有限维
2024-11-25 16:05:45
1526
原创 线性代数空间理解
学习线性代数已经很久,但是在使用过程中仍然还是不明所以,比如不知道特征向量和特征值的含义、矩阵的相乘是什么意思、如何理解矩阵的秩……。随着遇到的次数越来越多,因此我决定需要对线性代数的本质做一次深刻的探讨了。本次主要是参考了和其他若干博客来对此展开笔记的记录。需要说明的是,这里的是记录线性代数的本质,因此关于如何计算的方法或者内容则相对较少。
2024-11-25 16:04:51
766
原创 BCE Loss和CE Loss求导对比
交叉熵损失函数(CrossEntropyLoss)作为分类问题常见的损失函数,自己并为对其具体的细节展开理解。同时二元交叉熵损失函数(BCELoss)是交叉熵损失函数的特例,因此同样需要对二元交叉熵损失函数作出进一步的理解。此时就可以看出,BCE其实是考虑了标签为0的信息情况(虽然CE Loss使用了softmax,但是我还是感觉不如BCE Loss更能直观考虑标签为0的信息)。的分类能力,自然其他类别的预测得分就会下降,因此就不必担心假阴性的问题。的导数为(也就是sigmoid函数的导数)
2024-11-25 16:03:16
946
原创 LangChain之关于RetrievalQA input_variables 的定义与使用
最近在使用LangChain来做一个LLMs和KBs结合的小Demo玩玩,也就是RAG(etrievalugmentedeneration)。这部分的内容其实在的官网已经给出了流程图。我这里就直接偷懒了,准备对进行复刻练习,那么接下来就是照着葫芦画瓢就行。那么我卡在了Retrieve这一步。我对和这三个地方的input_key不明白为啥一定要这样设置。虽然我也看了LangChain的。但是我并未得到详细的答案,那么只能一行行看源码是到底怎么设置的了。
2023-11-07 19:57:28
2291
4
原创 LangChain之CharacterTextSplitter的split_text和split_documents
从说法上,我实在是看不出来有什么关系,然后我就没当回事,就按照字面意思就开整了(OS:当时我就想着,这两个方法应该我用一个就好,处理的是文本,那么就梭哈写出了下面的ChineseTextSplitter类)我本来是用一个csv文件来做demo的,那么就参考别人的代码,开始了照虎画猫的拙劣表演。我心想为啥有两个方法,我就无意中点开了。总结一句话就是,能力不足,基础不牢,只懂梭哈,傻乐吃瓜。至此初步了解了两个方法之间的关系,以及类之间的继承。,里面有几个方法,大体上感觉问题不大,这把稳了。
2023-10-31 20:26:24
2836
原创 浅析GPT2中的autoregressive和BERT的autoencoding源码实现
经常使用BERT来做研究,因此对Encoder的架构较为熟悉,但是从来没有了解过GPT这样的Decoder架构,尤其对自回归的形式不知道源码是如何实现的。为了方便对比和讨论,接来下所探讨的源码都是基于HuggingFace这个框架的。
2023-06-19 17:01:39
1247
原创 past_key_values在P-TuningV2中的巧用
目前HuggingFace发布了关于微调LLMs的方法包——此外也列出了该包对不同的任务中,不同方法和模型的支持情况(我只列出了关于NLP的,还有的):但是还没有P-Tuning v2:的方法,因此我就看源码是怎么处理的。在研究和阅读其他人blog期间,发现有些人对P-Tuning描述不准确。因此需要注意甄别(主要是P-Tuning和Prompt-Tuning的方法提出时间就差了一个月,并且在方法上有一定的相似性,都是在Embedding中使用了continuous prompt)
2023-06-19 16:58:51
1716
3
原创 对比学习做了什么?
首先搬出论文的出处:【文章一】ICML’20【文章二】CVPR’21先说一下为什么要读这两篇论文呢?其实是来自一个偶然的机会,自己看到了对比学习(Contrastive Learning)这个东西,还是从ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer这篇文章入坑的(当然作为对比学习的入门,感觉还是SimCLR这个论文比较直白)。
2023-06-11 16:06:50
622
原创 Self-Attention 自注意力机制
下图中简单介绍了RNN和self-attention的机制区别,首先是第一个区别就是,在下图中最后面的黄色的输出值在RNN中很难去考虑第一个的RNN的输入(当然双向的RNN也是可以实现的,或者改进的RNN,如LSTM),而在self-attention中是很容易去实现的。下面这张图片表示了在不同数据集上的效果图,发现,在数据集不大的情况下,CNN的效果是优于self- attention的,反之CNN的效果会差一些。如上图所示,就是在计算完成qi的时候,再去对应相乘两个不同的矩阵,这样就得到了新的向量。
2023-06-11 16:05:39
3212
原创 数据分布——长尾分布的处理
长尾分布在分类任务中会提到这个名,这是因为长尾分布这个现象问题会导致在训练过程中会出现出错率高的问题,影响了实验结果。这里要说的是,长尾分布是一种现象,有的地方说是一种理论或定律,我感觉这样说不太确切,因为长尾分布并非是一种普遍现象,不能将所有的数据分布或者现象都强加于长尾分布这个概念上。
2023-06-11 16:00:29
6181
原创 初探 transformer
Transformer就是一种seq2seq模型。Begin是用于判断输入的开始的,这样可以便于定位。接下来我们来看输出的结果是什么:根据不同的语言,输出的结果就是一个字点集向量(如果是中文,我们可以输出2000个常用词;如果是英文,那么输出的结果既可以是26个英文字母,也可以是常见的词汇;因此要因情况而定)。
2023-06-11 15:59:09
1341
原创 sequence2sequence
所谓的Seq2seq模型从字面上理解很简单,就是由一个序列到另一个序列的过程(比如翻译、语音等方面的应用):那么既然是序列模型,就需要搭建一个RNN模型(神经单元可以是GRU模型或者是LSTM模型)下面两篇文章提出了这样的seq2seq的模型设计,引入了encode和decode机制。
2023-06-11 15:58:19
1093
原创 初探BERT&Pre-train&Self-supervise
好了,言归正传,BERT的出现真的是在NLP领域掀起了一阵不小的轰动,从BERT文章的Abstract部分就可以看出,BERT是结合了GPT和ELMo两个模型的框架特点——是一个深层次的以Transformer为Backbone的双向架构。这样的设计的方法可以在预训练之后的BERT模型之上添加一个额外的输出层便可以实现各种下游任务(其实这个地方就是微调,跟GPT一样,只需要改上层结构就可以了)。
2023-06-11 15:52:31
1299
原创 Keras之模型初始化问题np.random.seed & tf.random.set_seed
np.random.seed(42)tf.random.set_seed(42)这两行代码真是让我着迷了一个晚上。最近在上手机器学习的东西,然后就需要书写一写tensorflow的代码。毕竟第一次用tensorflow,也不太明白,也是一直在看文档,但是是照着样例来做的。然后就照常搭建网络(根据Keras的文档)import pandas as pdfrom sklearn.datasets import fetch_california_housingimport numpy as np
2021-10-08 00:28:10
3469
2
原创 牛客 矩阵 二维哈希+二分
题目链接题意给出一个n * m的矩阵。让你从中发现一个最大的正方形。使得这样子的正方形在矩阵中出现了至少两次。输出最大正方形的边长。分析这题关键点就是如何去定义正方形,如果纯粹去暴力,将矩阵逐行去分析,那么复杂度将会到达O(n3 ),如果知道二维哈希,那么获得正方形的哈希值就可以在O(1)的时间复杂度下得到了。二维哈希的关键就是要定义和获取,定义如下:for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) hasha[i][j]
2021-04-09 12:16:34
281
原创 牛客 K串 哈希+前缀和+莫队
题目链接题目描述:ZZT 得到了一个字符串 S 以及一个整数 K。WZH 在 1995 年提出了“优雅 K 串”的定义:这个字符串每一种字符的个数都是 K 的倍数。现在 ZZT 想要对字符串进行 Q 次询问,第 i 次询问给出一个区间 [Li, Ri],他想计算 [Li, Ri] 中有多少个子串是“优雅 K 串”。由于 ZZT 忙于工作,所以他把这个问题交给了你,请你帮忙解决。输入描述:第一行输入一个正整数 K。第二行输入一个字符串 S。第三行输入一个正整数 Q,表示有 Q 次询问。接下
2021-04-08 16:22:20
254
原创 HDU 1211 (逆元)扩展欧几里得+快速幂
题目链接Problem DescriptionRSA is one of the most powerful methods to encrypt data. The RSA algorithm is described as follow:choose two large integer p, qcalculate n = p * q, calculate F(n) = (p - 1) * (q - 1)choose an integer e(1 < e < F(n)), maki
2021-04-05 21:48:26
208
原创 Windows下安装TensorFlow
看到很多博主都是用Anaconda来安装的,因此这里我就不赘述如何安装Anaconda的了,直接说明如何安装TensorFlow1.镜像置镜像注:如果已经配置的了,可以跳过这一步安装Tensorflow时,需要从Anaconda仓库中下载,一般默认链接的都是国外镜像地址,下载肯定很慢啊(跨国呢!),这里我是用国内清华镜像,需要改一下链接镜像的地址。这里,我们打开刚刚安装好的Anaconda中的 Anaconda Prompt,然后输入:conda config --add channels h.
2021-03-07 18:01:30
312
原创 HihoCoder - 1053 居民迁移(二分)
题目链接公元2411年,人类开始在地球以外的行星建立居住点。在第1326号殖民星上,N个居住点分布在一条直线上。为了方便描述,我们设第i个居住点的位置是Xi,其中居住着Yi位居民。随着冬季的到来,一些人口较多的居住点的生态循环系统已经开始超负荷运转。为了顺利度过严冬,殖民星上的居民一致同意通过转移到人口较少的居住点来减轻人口众多的居住点的负荷。遗憾的是,1326殖民星的环境非常恶劣。在冬季到来前,每个居民点的居民最远能迁移到距离不超过R的居民点。1326殖民星的居民希望知道,如何安排迁移才能使完成迁移后
2021-02-23 16:26:15
166
原创 Koch Curve(递归分治)
题目链接Write a program which reads an integer n and draws a Koch curve based on recursive calles of depth n.The Koch curve is well known as a kind of fractals.You can draw a Koch curve in the following algorithm:Divide a given segment (p1, p2) into three
2021-02-20 22:13:39
355
原创 BAPC Chess Tournament(并查集+拓扑排序)
题目链接题干Your friend is an organizer of the International Chess Playing Championship. He is worried that some of the contestants may be cheating, and he has asked you to help out. The chess players are allowed to report matches to the jury themselves, and
2021-02-14 11:29:43
400
原创 Largest Rectangle (单调栈,同POJ2559)
题目链接题意:题意:给你宽度为一,高度不同的n个矩形,让求出一个最大面积的矩形。如下图所示分析:方法一:根据题意可知,若以h为起点,分别往两边找比h矮的矩形,此时比h矮的前一个组成的矩形便是能围成的最大面积;上述有一些意识流,看代码比较好理解#include <iostream>#include <cmath>#include <algorithm>#include <queue>#include <vector>#in
2021-02-03 20:36:51
97
原创 大数的阶乘模板
#include <iostream>#include <cmath>#include <algorithm>#include <queue>#include <vector>#include <cmath>#include <map>#include <set>#include <cstring>#include <stack>#include <str...
2021-01-31 20:43:28
123
原创 AtCoder AGC017 E题 Jigsaw 欧拉回路
EJigsawProblem Statement给定 n 个物体,每个物体有 3 个横坐标,中间高度为 h,左右两边分别会有一部分突出(可能悬空,有高度)。问是否存在一种摆放方案,使得摆成的效果,中间不能有缝隙,必须相互接触才行。下面这样的就是反例:分析:这道题目对我这样的CJ有好大的难度,唉~我看了一些博主的博客才知道这是什么意思,要用什么思路去解答,奈何鄙人没做过欧拉回路的问题,都不知道还能用这个知识来解决题目。首先要了解什么是欧拉回路,在这里我就不赘述了,直接用结论:对于有向图来说
2021-01-31 13:57:01
288
原创 POJ 1579 记忆化搜索
Function Run FunDescriptionWe all love recursion! Don’t we?Consider a three-parameter recursive function w(a, b, c):if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:1if a > 20 or b > 20 or c > 20, then w(a, b, c) returns:w(20
2021-01-27 17:03:08
180
原创 Atcoder Beginner Contest 114 C-755
题目链接Problem StatementYou are given an integer N. Among the integers between 1 and N (inclusive), how many Shichi-Go-San numbers (literally “Seven-Five-Three numbers”) are there?Here, a Shichi-Go-San number is a positive integer that satisfies the follow
2021-01-23 13:47:08
492
1
原创 Java Web项目上传到云服务器出现前端到后端中文汉字乱码问题
前阵子将自己准备好的项目,打包成war上传到服务器,出现了中文乱码问题,导致后端查询数据库查不到;解决乱码有三个地方需要解决一下,首先是前端window.decodeURIComponent(对应的变量)这一步可以讲URL编码的数据转成中文其次就是在后端:str = new String(str.getBytes("ISO8859_1"),"utf-8");然后就是配置你web服务器了,我是用的Tomcat打开I:\apache-tomcat-7.0.82\conf\sever.xml进行
2020-06-20 18:05:22
756
原创 win10环境下配置Maven
1.首先,去maven官网下载maven :http://maven.apache.org/download.cgi2.下载到本地的一个位置解压3.接下来就是配置环境变量3.1新建一个MAVEN_HOME3.2然后在Path中添加%MAVEN_HOME%\bin\(注意,win10的后面是没有‘;’的)4.测试是否配置成功通过DOS命令检查一下我们是否安装成功输入mvn -...
2020-04-02 23:16:36
227
原创 POJ 2429 分解质因数
https://vjudge.net/problem/POJ-2429Given two positive integers a and b, we can easily calculate the greatest common divisor (GCD) and the least common multiple (LCM) of a and b. But what about the in...
2020-03-30 22:02:12
418
原创 POJ 1990 (树状数组入门)
MooFestEvery year, Farmer John’s N (1 <= N <= 20,000) cows attend “MooFest”,a social gathering of cows from around the world. MooFest involves a variety of events including haybale stacking, fe...
2020-03-29 11:41:41
318
原创 HDU - 1043 反向BFS建表
Problem DescriptionThe 15-puzzle has been around for over 100 years; even if you don’t know it by that name, you’ve seen it. It is constructed with 15 sliding tiles, each with a number from 1 to 15 o...
2020-03-20 17:09:32
195
原创 eclipse配置Android开发环境 :sun/misc/BASE64Encoder错误
问题情况:先说一下出现这个的原因吧:这是由于当前安装的JDK的版本过高引起的,很多人说用JDK1.8就好,1.8以上的版本就不能用了,我实测了一下,1.6在我这里不行哈,按说是可以的,那我只能用了1.8,实测1.8成功有效的运行了项目;Java jdk 1.8版本安装包我就是用的上面这位博主的JDK,感谢!!!下面这个是我的JDK,两个是一样的,大家随便用。链接: https://p...
2020-03-04 22:32:12
13961
19
flash29banben.zip
2020-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人