Archive 2023 年 3 月 19 日

利用清华源的pip镜像快速安装transformers源码

因为网络的问题,因此如果下载源直接安装极为麻烦,因此可以先用镜像安装 例如: pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple 这样依赖都已经安好 然后 pip uninstall transformers 然后再git clone https://github.com/huggingface/transformers.git 在目录下,再python setup.py install 即可。 *即使是进行了长久配置 python -m pip install --upgrade pippip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple…

Read More

win11下bitsandbytes的用法

要将大模型进行量化加载,需要使用到bitsandbytes这个库,但它原生是在Linux下安装使用的,因此如果要在win11下使用,需要做一些修改。 在pip install bitsandbytes 之后,修改源代码两处。 一般安装了conda后,目录在:{driver}:\conda\envs\{name}\Lib\site-packages\bitsandbytes\ 下, 在pip install,一般都会写上安装到的位置,直接拷贝即可。 首先在这个目录下,先把下载的libbitsandbytes_cuda116.dll 文件拷贝到这个目录下。 主要是两个文件,一个是 cuda/main.py 中的 evaluate_cuda_setup() 函数,可直接让它返回 "libbitsandbytes_cuda116.dll",因为原来的代码中默认都是直接加载的liunx下的.so文件,所以要改对对应的dll 第二处是目录下的 cextension.py,需要将其中的 ct.cdll.LoadLibrary(binary_path) 改成 ct.cdll.LoadLibrary(str(binary_path)) in cuda_setup/main.py: make evaluate_cuda_setup() always return "libbitsandbytes_cuda116.dll" in ./cextension.py: change ct.cdll.LoadLibrary(binary_path)…

Read More

尝鲜LLaMA的7B及13B模型

LLaMA有7B,13B,33B,65B,四种规格的预训练模型,33B与65B需要的显存量太大,所以无法尝试,只能在3090卡上尝试一下7B及13B的。 由于显存的限制,所以使用了INT8加载模型的方案,主要用的是llama-int8来进行加载,这个的原理是将模型加载到内存中,然后再拷贝到显存中。 13B模型,大概占用了17G左右的显存,而且运行速度并不太理想,实验它的本文生成能力,也不尽人意,没发现有什么出色的地方。 例如输入: I think the sun,输出是: 输出的内容很显然似乎却少了连贯性,简单来说它对于短文本的连续生成可能并不尽如人意,因此,我又尝试了像示例中那样的输入长语句,看一下它续写的效果。 生成的内容仍旧是缺乏关联,上下文依旧是一片混乱。 当输入了加法运算时, 它生成的结果更加莫名,虽然不指望模型拥有多少数学能力,但是显然这里的答案过于离谱,可以说几乎并不具备数学能力。 初步推测,也许是模型转换成INT8后产生的影响,因此在百度的AI Studio中再次进行了实验,效果也不尽人意。 在参考了一些其它人的经验后,按照别人的问句问了个有趣的问题: Question: I am looking to make a loft of money and I don't hava a…

Read More

梅花一古例

“因字中有梅花、六壬之说,恰值西南方起一阵怪风,直卷的吹进屋来,即袖占一课。西南属巽,风又生巽,加酉时得十数,得巽之渐。暗忖:巽在床下,风势甚紧,事顷刻矣!体既和用,互见水火,有生无制,变为体克兑金,有水克反能生,词占俱吉,匪寇婚媾也!” -------《野叟曝言》 三符按:其以西南属巽,盖取先天之卦也,又以风加之巽,故得巽卦,后以酉时得十数而变风山渐,却以渐中之上离下坎,谓互见水火,而变化为体克兑金者,乃取之于巽,得离兑之卦,即火克金也。 此以先天卦配取变得之为本,中抽以为用,后又取处为变,并又中抽,取之离为体,又是一流也。

Read More

神经网络的一些简单思考

简单来理解一个模型,其实就是一个转换器,或者说其实就充当了一个复杂函数的角色,能够将输入的数据转换成另外一种形式呈现,如果转换出来的数据形式对于相应的任务足够直观,那么就很容易实现相应的任务。 从现在来看,元学习跟起初的构想已经产生了一些差异,最初的元学习构想的是让机器学会如何学习,但这只是一个概念,实际上来看其实并没有真正的达到这一点。 一般的迁移学习中,通常是先针对一个任务训练出一个模型,然后假设目标分布与这个训练出来的模型是可以进行映射转换,因此可以寻找出一个函数,如果模型与相近任务比较近似,这样的转换函数显然会相对简单,因此通过一般的神经网络往往就可以拟合出来。 元学习所不同的是,将多个任务都加以训练,然后综合找出来一个适合各个任务的一个,这个值相当于是妥当了多个任务后所得到一个考虑了各方面所得到的协调值,然后将此作为基础模型。 简单来说,一般的神经网络,比如二分类形状时,可以学习什么是方形,什么是非方形,如果多分类时,则可以对非方形的结果,进行再次分类,比如分成三角形或圆形,这种往往可以获取比较好的效果。 另外还有一种就是输出可以是多个结果,但是采用softmax的结果,来表达输入的数据,分别可能是哪个形状的概率是多少,然后按最大概率进行取用,比如类似VGG16就是这样的方法。 而元学习里,则会训练出来一个可以粗略判断方、圆、三角的模型,这个模型是在已有的数据中推出来的,因此操作方法上与直接拟合有所区别,目的试图提升的模型的泛化能力。 1、采用两个网络组进行拟合 如果两个网络相同的时候,则称之为挛生网络(SNN),如果两个网络结构且不共享参数时,称为伪孪生神经网络(PSNN),其实也就是异构网络,这里的关键是损失函数的结果LOSS是分别两个网络生成结构共同计算出来的。 由于两个输入是不同的数据,通过loss来控制参数的更新,对于已经标注的数据,输出可以是0或1,表示相似或不相似。 这样设计的网络显然有一个很巧妙的特点就是,假如是进行图片分类的,那么可以将同一类数据作为组合输入,最终它能够很好提取出同类数据的特征。 比如数据是图片的话,对于新的数据,只需要比较与已有的图片相似度,便可知道是否是同一类图片。 进一步的改进则是关系网络,即Relation Network(RN),这个网络在上述基础上进一步改进在于,原本是将输入数据经过模型计算出来的结果数据,直接进行比较相似度,现在改成了用加入一个子网络来转换然后计算它们之间的距离。 直观的感受就是,只是用一个网络转换输入数据,程度仍然“不够深“,表达1-shot尚可,但需要更精细的进修,生成的数据,还需要加一个网络来进行转换,这样才“更可信” 从论文上列出来的数据来看: 当随机取20个样本,进行分类时,基本的卷积孪生网络效果有较大下降,但RN效果还比较稳定,另外在经典的MAML元学习算法中,效果也比较稳定。 这里需要提及一下比RN更早的Prototypical Net,它的思路比较有特点,而且极其简单,主要是对数据进行集中的随机采样,然后求出平均值。这里利用了布雷格曼散度(gular Bregman divergences),即:对于一些点满足任意的概率分布的情况下,这些点的平均值点(mean point)一定是空间中距离这些点的平均距离最小的点,然后将这些点构成一个矩阵,称作meta data vector,然后仅仅采用欧几里得距离计算相似度,便可以得到非常好的效果。 在2020年,Han-Jia Ye和Hexiang Hu将原始数据通过ResNet转换后,再通过这样的方式来进行分类,效果在miniImageNet数据集上的5way-1shot情景分类精度提高到了62.39%,5way-5shot情景分类精度提高到了80.53%,比使用Covnet4网络作为主干网络提高了接近20%的精度。 这些方法都有一个问题,如果数据少的话,基础数据都很难保证样本的特征是足够完整的,因此像元学习之类的,在试图最大程度的扩大泛化范围,但以目前的技术水平来说,是很难保证它的总是能正确的泛化。 因此它们通常都要大数据来进行支撑,才能收到不错的效果,到了如今又有更多的选择,例如可以使用data2vec,由于一般data2vec也就比bert高一两个点而已,如果是文本相关,那么显然使用BERT加上Prototypical Net也会是一个选择。…

Read More

小聊大年初五迎财神

大年初五迎财神这个习俗与传说中的王元宝有关,在《独异志》中有这样的传说:玄宗尝召王元宝,问其家私多少。对曰:“臣请以一缣系陛下南山一树,南山树尽,臣缣未穷”。玄宗御含元殿,望南山,见一白龙横亘山间。问左右,皆言不见。令急召王元宝问之,元宝曰:“见一白物,横在山顶,不辨其状。”左右贵臣启曰:“何故臣等不见?”玄宗曰:“我闻至富可敌贵。朕天下之贵,元宝天下之富,故见耳。”  据说王元宝在发迹之后,总是不忘记财神,因此家里供奉的是财神爷,商号里祭拜的是财神爷,并且还在长安捐善款建造了财帛星君庙,请高道主持四时供奉,香火旺盛。并且每年正月初五商号开张这天,他都要早起到财帛星君庙上第一柱香。于是人们纷纷效仿。 另外一个说法,古时长安街头每逢初五早上必有叫卖元宝鱼者,各店铺争购,用线穿鱼脊并挂在房梁上,鱼头朝内,身上贴红纸元宝,寓意可以“招财进宝”。后来这种风俗传播到全国各地,形成了正月初五拜财神和财神爷巡游民间送福送财的习俗。 以上这些说法都是民俗的来历,大年初五迎接财神的活动,是由各种综合的因素融合而成,并且初五的这个五,主要是与五路财神的五的概念相通,因此在大年初为了吉祥,因此与五路财神的联系了起来。 由于在传说中,财神赵公神名下有四个主管与财相关的神明,因此五路财神,一般指的是以赵公明元帅为主,作为中路财神,然后另外四大财神分别是:东路财神招宝天尊萧升、西路财神纳珍天尊曹宝、南路财神招财使者陈九公、北路财神利市仙官姚少司 。 因此正月初五有习俗往五个方向分别烧香,分别是东方拜的是萧升,南方拜的是陈九公,中间拜的是赵公明,西方拜的是曹宝,北方拜的是姚少司。 在这个体系中,比较有正式来历的,除赵公明外,还有利市仙官姚少司,在中国古代北方,每逢春节都会将利市天官的像贴在门上以求吉利,特别是经商的人,这种习俗至少可以追溯到宋代。 而提出五路财神这种概念,目前最早是在明朝的《封神演义》小说中,不过《封神演义》本身也是搜集了民间的传说及习俗整编而成,大多内容是有民间传说的来历而加以改编,也并非全是刻意造作。 但无论如何,由于香火的特点,有人信奉并加以祭祀,便会有它的意义与作用。 另外一种现代的说法,也有五路财神东路财神为比干、西路财神为关羽、南路财神柴王爷、中路财神王亥,北路财神赵公明的说法,同时还有一种版本是:中路财神王亥,东南路财神范蠡,东北财神李诡祖,西北财神白圭,西南财神端木赐。 合在一起,可以看出实际上这对应于九路财神,相对于九宫分布:   范蠡      柴王爷     端木赐    比干        王亥         关羽 李诡祖     赵公明  …

Read More