学习笔记
文章平均质量分 85
Charon_HN
NLP炼丹儿
展开
-
LangChain之关于RetrievalQA input_variables 的定义与使用
最近在使用LangChain来做一个LLMs和KBs结合的小Demo玩玩,也就是RAG(etrievalugmentedeneration)。这部分的内容其实在的官网已经给出了流程图。我这里就直接偷懒了,准备对进行复刻练习,那么接下来就是照着葫芦画瓢就行。那么我卡在了Retrieve这一步。我对和这三个地方的input_key不明白为啥一定要这样设置。虽然我也看了LangChain的。但是我并未得到详细的答案,那么只能一行行看源码是到底怎么设置的了。原创 2023-11-07 19:57:28 · 1675 阅读 · 4 评论 -
LangChain之CharacterTextSplitter的split_text和split_documents
从说法上,我实在是看不出来有什么关系,然后我就没当回事,就按照字面意思就开整了(OS:当时我就想着,这两个方法应该我用一个就好,处理的是文本,那么就梭哈写出了下面的ChineseTextSplitter类)我本来是用一个csv文件来做demo的,那么就参考别人的代码,开始了照虎画猫的拙劣表演。我心想为啥有两个方法,我就无意中点开了。总结一句话就是,能力不足,基础不牢,只懂梭哈,傻乐吃瓜。至此初步了解了两个方法之间的关系,以及类之间的继承。,里面有几个方法,大体上感觉问题不大,这把稳了。原创 2023-10-31 20:26:24 · 2024 阅读 · 0 评论 -
浅析GPT2中的autoregressive和BERT的autoencoding源码实现
经常使用BERT来做研究,因此对Encoder的架构较为熟悉,但是从来没有了解过GPT这样的Decoder架构,尤其对自回归的形式不知道源码是如何实现的。为了方便对比和讨论,接来下所探讨的源码都是基于HuggingFace这个框架的。原创 2023-06-19 17:01:39 · 1171 阅读 · 0 评论 -
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 · 1456 阅读 · 3 评论 -
对比学习做了什么?
首先搬出论文的出处:【文章一】ICML’20【文章二】CVPR’21先说一下为什么要读这两篇论文呢?其实是来自一个偶然的机会,自己看到了对比学习(Contrastive Learning)这个东西,还是从ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer这篇文章入坑的(当然作为对比学习的入门,感觉还是SimCLR这个论文比较直白)。原创 2023-06-11 16:06:50 · 498 阅读 · 0 评论 -
Self-Attention 自注意力机制
下图中简单介绍了RNN和self-attention的机制区别,首先是第一个区别就是,在下图中最后面的黄色的输出值在RNN中很难去考虑第一个的RNN的输入(当然双向的RNN也是可以实现的,或者改进的RNN,如LSTM),而在self-attention中是很容易去实现的。下面这张图片表示了在不同数据集上的效果图,发现,在数据集不大的情况下,CNN的效果是优于self- attention的,反之CNN的效果会差一些。如上图所示,就是在计算完成qi的时候,再去对应相乘两个不同的矩阵,这样就得到了新的向量。原创 2023-06-11 16:05:39 · 2794 阅读 · 0 评论 -
初探图神经网络——GNN
图表示实体节点之间的关系,如下图所示:其中U表示的是整张图。原创 2023-06-11 16:01:58 · 1162 阅读 · 0 评论 -
数据分布——长尾分布的处理
长尾分布在分类任务中会提到这个名,这是因为长尾分布这个现象问题会导致在训练过程中会出现出错率高的问题,影响了实验结果。这里要说的是,长尾分布是一种现象,有的地方说是一种理论或定律,我感觉这样说不太确切,因为长尾分布并非是一种普遍现象,不能将所有的数据分布或者现象都强加于长尾分布这个概念上。原创 2023-06-11 16:00:29 · 5044 阅读 · 0 评论 -
sequence2sequence
所谓的Seq2seq模型从字面上理解很简单,就是由一个序列到另一个序列的过程(比如翻译、语音等方面的应用):那么既然是序列模型,就需要搭建一个RNN模型(神经单元可以是GRU模型或者是LSTM模型)下面两篇文章提出了这样的seq2seq的模型设计,引入了encode和decode机制。原创 2023-06-11 15:58:19 · 1020 阅读 · 0 评论 -
初探 transformer
Transformer就是一种seq2seq模型。Begin是用于判断输入的开始的,这样可以便于定位。接下来我们来看输出的结果是什么:根据不同的语言,输出的结果就是一个字点集向量(如果是中文,我们可以输出2000个常用词;如果是英文,那么输出的结果既可以是26个英文字母,也可以是常见的词汇;因此要因情况而定)。原创 2023-06-11 15:59:09 · 1303 阅读 · 0 评论 -
HuggingFace——Tokenizer的简单记录
HuggingFace——Tokenizer的简单记录原创 2022-10-29 20:23:47 · 2583 阅读 · 0 评论 -
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 · 3241 阅读 · 2 评论 -
Windows下安装TensorFlow
看到很多博主都是用Anaconda来安装的,因此这里我就不赘述如何安装Anaconda的了,直接说明如何安装TensorFlow1.镜像置镜像注:如果已经配置的了,可以跳过这一步安装Tensorflow时,需要从Anaconda仓库中下载,一般默认链接的都是国外镜像地址,下载肯定很慢啊(跨国呢!),这里我是用国内清华镜像,需要改一下链接镜像的地址。这里,我们打开刚刚安装好的Anaconda中的 Anaconda Prompt,然后输入:conda config --add channels h.原创 2021-03-07 18:01:30 · 279 阅读 · 0 评论 -
大数的阶乘模板
#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 · 98 阅读 · 0 评论 -
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 · 711 阅读 · 0 评论 -
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 · 205 阅读 · 0 评论 -
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 · 13725 阅读 · 19 评论 -
C/C++浮点数取舍问题
Q:突然发现一个问题就是,在小数进行取舍的时候,出现了一个问题 double a=5,b=10; printf("%.f\n",a/b);上面的代码运行的结果竟然是 :0不是四舍五入的吗*&…¥%¥%……¥……&…%¥%%#@#@!%¥#%¥##@#%¥#%%&……好吧,才疏学浅啊C语言其实是严格的四舍五入的,但是,是根据情况而定的(原来还有口诀QAQ...原创 2020-02-12 12:57:59 · 664 阅读 · 0 评论 -
利用 flex 和 bison 写一个计算器
利用 flex 和 bison 写一个计算器实现实数范围内的加减乘除、乘方、开方,三角函数sin、cos运算a)在命令提示符下依次执行一下两行命令flex 文件名.lexbison -o文件名.c 文件名.y编译的话,可用命令提示符,不过需要自己搭建环境gcc -o 可执行程序名称 lex.yy.c bison生成的文件名.c当然可以用其他的方法去运行,不过需要在bison生成的...原创 2019-10-15 17:07:02 · 1237 阅读 · 2 评论 -
最小圆覆盖
参考:https://blog.csdn.net/commonc/article/details/52291822 https://blog.csdn.net/wu_tongtong/article/details/79362339算法目的:最小圆覆盖算法可以在线性时间复杂度内求出覆盖n个点的最小圆算法步骤: ①首先现将所有点随机排列 ②按顺序把点一个一个的加入...转载 2019-01-17 19:39:34 · 817 阅读 · 1 评论 -
模拟退火+爬山算法
爬山算法:兔子朝着比现在高的地方跳去。它找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高方向跳去。这就是模拟退火。转载 2019-01-17 19:59:46 · 391 阅读 · 0 评论 -
模拟退火二维or三维覆盖点的板子
poj2420为例#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>using namespace std;#define rep(i,a,b) for(int i=a;i<=b;i++)double INF=1000000000;const...原创 2019-01-18 17:38:52 · 318 阅读 · 0 评论 -
细说基姆拉尔森日期公式
转载:https://blog.csdn.net/qq_33114231/article/details/52352668细说基姆拉尔森日期公式 转自:http://topic.csdn.net/t/20050425/23/3966336.html相关资料:http://www.cnblogs.com/xingluzhe/archive/2009/08/17/1548405.htm...转载 2019-02-14 20:50:01 · 446 阅读 · 2 评论 -
POJ 2566-Bound Found(变形尺取法)
Signals of most probably extra-terrestrial origin have been received and digitalized by The Aeronautic and Space Administration (that must be going through a defiant phase: "But I want to use feet, no...原创 2019-04-01 17:17:26 · 350 阅读 · 1 评论 -
差分数组学习笔记
题目:来先看一道裸题,有n个数。m个操作,每一次操作,将x~y区间的所有数增加z;最后有q个询问,每一次询问求出x~y的区间和。那么这就可以用差分数组去实现了差分数组不仅仅是一个优秀的数据结构,还是一种很好的思想差分数组的功能是修改区间,查询点修改区间的时间复杂度是O(1),查询点的时间复杂度为O(n)下面来看是怎么具体实现的这里需要一个d数组,d[i]=a[i]-a[i-1]...原创 2019-04-09 17:08:08 · 222 阅读 · 0 评论 -
【Green公式】Hunter’s Apprentice(判断多边形为顺时针或逆时针)--鞋带公式
题目描述When you were five years old, you watched in horror as a spiked devil murdered your parents. You would have died too, except you were saved by Rose, a passing demon hunter. She ended up adopting ...原创 2019-04-13 16:45:02 · 8822 阅读 · 3 评论 -
洛谷 P2057 [SHOI2007]善意的投票 二者选一的问题
题目描述幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉。对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神。虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票。我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲突的人数。我们的问题就是,每位小朋友应该怎样投票,才能使冲突数最小?输入格式文件的第一行只有两个整数...原创 2019-07-29 11:09:01 · 165 阅读 · 0 评论 -
二次剩余
1.什么是二次剩余2.二次剩余有什么用说白了就是如果存在有解的话,那么n可以在mod p的前提下开根号3.如何求解呢以下的方法使用的话需要有一个前提,就是mod的数p必须是奇素数先引入一个定理:接下来我们引入一个新概念:勒让德符号(legender symbol)定义:引申一个定理:接下来是最后一个定理https://blog.csdn.net/a_crazy_c...原创 2019-08-15 16:15:07 · 2537 阅读 · 0 评论 -
关于CodeBlocks的主题和字体更换
参考blog :https://blog.csdn.net/czg13548930186/article/details/75207913官方配色官方地址 Syntax highlighting custom colour themes使用方法很简单只需要将官网上面的代码复制到上面default文件里面,这样就可以在setting(设置)->editor(编辑)->Syn...原创 2019-09-11 14:48:20 · 1226 阅读 · 0 评论