自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序认生

python语言

  • 博客(119)
  • 收藏
  • 关注

原创 目标重要性分析

一、背景在电商推荐场景中,商品的排序得分(rankscore)通常是由多个目标分(例如点击率CTR、转换率CVR、多样性得分、利润、GMV等)综合而成。为了定量分析每个目标对最终商品排序的影响,可以采用以下几种方法:二、方法。

2024-08-28 16:51:29 818

原创 pycharm windows/mac 指定多版本python

工作中经常会使用不同版本的包,如同时需要tf2和tf1,比较新的tf2需要更高的python版本才能安装,而像tf1.5 需要低版本的python 才能安装(如 python3.6),所以需要同时安装多个版本。2、pychram 中指定上述虚拟环境的python作为解释器。1、cmd中创建虚拟环境。二、安装多版本python。

2024-08-14 23:14:21 384

原创 hive table 转scv

【代码】hive table 转scv。

2024-07-10 20:53:00 142

原创 LLM 加速

1、量化。

2024-06-13 11:11:21 505

原创 大模型时代,是 Infra 的春天还是冬天?

2023 是我过往人生经历中最传奇的一年(虽然只过去了 3/4),年初 ChatGPT 爆火让所有人看到了 AGI 可能实现的曙光,无数创业公司、大厂立即跟进 LLM 甚至 ALL IN, 紧随而来的 GPT-4 和 Office Copilot 让市场沸腾。当时感觉,AI 时代的技术迭代速度以天记,汹涌的 AI 技术革命将迅速影响每个人的生活。从技术发展曲线来看, GPT-4 的发布应该是市场关注度的峰值:LLM 技术成熟度曲线(大致)

2024-06-05 22:10:43 1331

原创 LLM训练:MFU计算方法

在进行大模型训练时,我们需要关注GPU资源的利用率,特别是GPU算力利用率通常可以作为大模型训练框架的性能指标,也直接影响训练大模型的成本。我们看到大家普遍使用 MFU(Model FLOPS Utilization)这个指标来评估GPU算力利用率[1]。本文主要介绍MFU的计算方法。

2024-05-22 22:57:26 5598

原创 【Transformer 基础系列】模型参数量

如图所示,Transformers 结构的参数量包括 Embed 层,l 层 Attention + MLP 层,每层还有 layernorm 和 position embedding 参数,推理如下表。参考LLaMA模型打印参数名和 shape 以校验。去掉一次项约等于12h**2。

2024-05-22 22:54:46 336

原创 CIKM2023 | 突破双塔: 生成式交互的向量化召回

一篇比较经典的工作是美团的对偶增强双塔[模型]-(https://dlp-kdd.github.io/assets/pdf/DLP-KDD_2021_paper_4.pdf),即在训练时,q侧和d侧各自fake出一段embedding作为底层特征,去学习对方正样本的输出表征。不过,这种方式引入的交叉特征实际是非常"粗粒度"和"高阶"的,即携带的信息仅仅是对方tower最后输出的表征,对方tower在编码这段表征时,也仅仅只利用了fake的emb和tower本身的输入特征的交互。于是,本文横空出世。

2024-05-16 16:40:33 800

原创 深圳hourse数据统计

【代码】深圳hourse数据统计。

2024-04-22 11:30:38 124

原创 大模型推理性能优化之KV Cache解读

在上面的推理过程中,每 step 内,输入一个 token序列,经过Embedding层将输入token序列变为一个三维张量[b, s, h],经过一通计算,最后经logits层将计算结果映射至词表空间,输出张量维度为[b, s, vocab_size]。6、把第5步得到的K和V,与 第2步缓存的K和V concat 得到新的K和V shape 都是 (batch_size,seq_length+1,dim1) 并缓存下来。可以看出如上计算的问题吗?那到底那部分计算是重复了的,是可以cache的呢。

2024-04-16 17:19:52 1202 1

原创 RAFT: Adapting Language Model to Domain Specific RAG

1.如果想要对RAG任务来微调大模型,作者做的DSF以及DSF+RAG的失败实验,值得排除这种尝试。否则大家可能都想试试。不过先在领域继续预训练,学到足够多的领域知识,再用SFT微调,可能效果会更好点?(不过就是知识没办法更新了)2.到底有多少负例文档对效果最好,两个数据集表现不一。作者最终使用的是一个正例文档加上4个负例文档。不过可以肯定的是:如果训练集中只有正例文档都是效果最差的。

2024-03-31 22:04:03 930

原创 Title: LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models

1.: 目标压缩比为2倍。2.: 目标压缩比为3倍。3.: 使用小语言模型计算每个词汇单元(如句子、短语或令牌)的自信息,然后删除信息量较低的内容以实现提示压缩。4.: 提出了LLMLingua方法,包括预算控制器、迭代令牌级提示压缩和分布对齐。Tokens: 在给定压缩比下,压缩后的提示中的令牌数量。BLEUROUGERougeLBSF1: 这些是评估摘要任务性能的指标,分别代表BLEU分数、ROUGE分数、RougeL分数、BERTScore分数和F1分数。Tokens 1/π。

2024-03-26 22:50:33 1071

原创 一些意外的bug

normalize(embed_f).cpu() 与 normalize(embed_f.cpu()) 的结果会不一样,后者会改变精度。2、deepspeed没有adam_cuda属性,需要安装0.8.3 (torch的版本要1.12.1的)tips:这三种结果都有细微 的差别,只是normalize(embed_f.cpu())差别很明显。解决办法:采用normalize(embed_f.cpu().float())若import 的包名与 pip安装的包的路径不一致,则copy过去。

2023-12-12 15:00:57 388

原创 LLM embeding相关整理

Scaling Sentence Embeddings with Large Language Models语言模型之Text embedding(思考篇) - 知乎

2023-11-23 22:40:32 333

原创 torch VS tensorflow 同功能的api

【代码】torch VS tensorflow 同功能的api。

2023-10-27 18:04:18 222

原创 玩转deepspeed

DeepSpeed是微软推出的大规模模型分布式训练的工具,主要实现了ZeRO并行训练算法。本文是huggingface的DeepSpeed文档的笔记,做查询和备忘,初次学习建议结合原始文档食用。

2023-10-10 16:27:48 1113

原创 shell 命令

hello_split_表示路径和前缀,路径可以更改为其他路径,比如/home/user1/hello_split_–additional-suffix=.csv表示每一个文件后面添加.csv。-l表示按行分割,后面变量为上面求的行数。-a表示后缀长度,这里为4,默认为2。-d表示添加数字后缀。

2023-10-10 14:43:44 93

原创 java mock单测

Mock 测试就是在测试过程中,对于某些 不容易构造(如 HttpServletRequest 必须在 Servlet 容器中才能构造出来)或者不容易获取 比较复杂 的对象(如 JDBC 中的 ResultSet对象),用一个 虚拟 的对象(Mock 对象)来创建,以便测试方法。Mock 的中文译为仿制的,模拟的,虚假的。对于测试框架来说,即构造出一个模拟/虚假的对象,使我们的测试能顺利进行下去。mock java.util.function.Function 对象。3、常用对象mock示例。

2023-09-07 22:11:46 433

原创 huggingface API

【代码】huggingface API。

2023-08-10 12:10:10 333

原创 pandas 常用命令

low_memory=False 参数设置后,pandas会一次性读取csv中的所有数据,然后对字段的数据类型进行唯一的一次猜测。另外pandas对数据的类型是完全靠猜的,所以pandas每读取一块数据就对csv字段的数据类型进行猜一次,所以有可能pandas在读取不同块时对同一字段的数据类型猜测结果不一致。pandas读取csv文件默认是按块读取的,即不一次性全部读取;5、设置read_csv的low_memory参数为False。4、设置read_csv的dtype参数,指定字段的数据类型。

2023-07-09 17:51:10 105

原创 IDEA如何配置 Gradle(详细版)

如果已经打开了项目,可以 点击 file->close project ,然后打开idea ,选择打开->找到你git clone 的项目 然后选择 build.gradle ,选择以此打开项目,然后就自动在下载依赖了。很有肯是你的 idea 和你的 gradle 版本不兼容导致的问题,出现一下问题,你需要改下你的diea的配置,使用方式二。3、修改gradle的路径(使用本地的Gradle),以及修改Gradle文件的位置和本地仓库的位置。

2023-03-17 17:21:08 59266 2

原创 JDK的下载、安装和配置

一、背景 为什么需要这个性质呢,因为在对模型进行融合时就需要这个性质,如dssm双塔模型分别对两段文本进行embeding,最后求余弦cos值。现在想进行融合,把dssm变成4塔,一段文本经过两个dnn模型进行编码获得向量a,x,同理另外一段文本也经过两个dnn模型进行编码获得向量b,y。最后会获得4个embeding,这样我们做融合时,自然想到一种融合方式:[cos(a,b)+cos(x,y)]/2。利用cos(a,b)+cos(x,y)==2*cos([a,x],[b,y])的性质,你就会...

2023-03-16 16:57:02 48 1

原创 ef参数设置说明(faiss)

1、模型参数:1000代表聚类中心个数随着聚类个数的增加,模型索引的构建时间近似指数增加但搜索精度也线性增加,不影响内存占用,几乎不影响搜索耗时结论:在 Faiss 引擎的聚类情况下,对于百万级别的数据大概4000个聚类基本足够,符合 Faiss 官网文档聚类取2、搜索聚类个数结论:固定聚类数量后,随着探针数量的增加,搜索耗时会近似均匀增加,搜索精度会逐渐接近 100%。因此在 Faiss 引擎的聚类情况下,建议10%的聚类数量作为探针数量是一个比较合适的搜索耗时和精度的平衡点。

2022-12-29 16:23:48 987

原创 召回侧对齐精排的多目标打分融合

a、乘法融合 (u1*i1+1)*(u2*i2+1)=u1*u1T+u2*u2T+u1+u2(待推导)维度扩大 d2+d+d。缺点1:要保证各目标召回的item要有足够多的重合的item。a.多目标embeding concat在一起。b.一侧多目标,也可把embeding 相加。目标1:topk item 及对应得分。目标2:topk item 及对应得分。工程侧选择重合的item 进行打分融合。b、faiss之后融合。

2022-09-28 17:57:27 419

原创 POSO论文原理详解和实际应用

前段时间在业务中应用POSO[1]做了一些工作,进行了一些尝试和思考,放在这篇里分享,主要包括两部分:(1) POSO原理;(2) 实际应用中的尝试、效果和分析思考,欢迎大家对工作中的尝试和思考来交流。多说一句:初看论文和在业务中应用的时候,觉得这个思路简单优雅,并未深入体会其中的精妙,在写这篇分享的时候,多次看论文中的一些细节,不得不惊叹作者的巧思。推荐领域常用的方法是监督学习,本质是拟合数据的分布,不管是简单还是复杂的监督学习模型,数据限定了其效果的天花板。因此,监督学习的方法,存在一个共同的问题,对训

2022-08-05 11:23:12 2267 1

原创 SENet双塔模型:在推荐领域召回粗排的应用及其它

目前,双塔结构在推荐领域里已经是个常规方法了,在召回和粗排环节的模型选型中,被广泛采用。其实,不仅仅是在推荐领域,在其它领域,双塔结构也已经被越来越多得用起来了。比如,在当代搜索引擎的召回环节,除了常见的经典倒排索引来对Query和Document进行文本字面匹配外,经常也会增加一路基于Bert模型的双塔结构,将用户查询Query和搜索文档,各自通过一个塔形结构来打Embedding,以此增加Query和Document的深层语义匹配能力;......

2022-08-04 11:50:46 1055

原创 idea 配置maven项目

打开/Users/tjl/IdeaProjects/maven/apache-maven-3.6.3/conf/settings.xml(这是maven的安装路径,根据自己maven的安装路径自行修改)文件。注意maven的安装需要依赖jdk的安装,所以必须先安装完成jdk且配置好jdk环境变量后在进行maven的安装!maven的安装很简单,就是直接解压文件就行了(当然了,前提是你下载的是zip压缩包格式,如下图)2、修改Maven的下载镜像地址为阿里源(这样后续编译,下载文件会快很多)...

2022-07-26 19:33:53 2136

原创 python super().__init__的用法详解

目的调用父类的__init__()函数进行初始化。

2022-07-18 17:38:09 8913 3

原创 Pycharm的使用-基础版

完成以上四步,就创建好了一个python项目 按上述步骤即可创建一个空的python脚本,然后编写程序即可 1、setting ctrl+alt+s/command+, 2、ctrl+/ 注释3、ctrl+alt+L 格式化脚本

2022-07-13 21:24:29 272

原创 Anaconda的安装与卸载

1、anaconda的卸载cd D:\soft\Anaconda(安装目录) 找到 Uninstall-Anaconda3.exe 双击运行即可卸载2、anaconda的安装第一步:官网下载官网地址:https://www.anaconda.com/products/distribution第二步:傻瓜式一直点下一步,即可安装成功注意事项:出现黑框框,前往不要手动关闭,否则会使anaconda安装不全第三步:测试是否安装成功win + R 输入cmd 打开小黑窗口,执行pip list...

2022-07-03 15:09:29 1145

原创 是时候放弃 TensorFlow 集群,拥抱 Horovod 了

当数据较多或者模型较大时,为提高机器学习模型训练效率,一般采用多 GPU 的分布式训练。按照并行方式,分布式训练一般分为数据并行和模型并行两种:模型并行:分布式系统中的不同 GPU 负责网络模型的不同部分。例如,神经网络模型的不同网络层被分配到不同的 GPU,或者同一层内部的不同参数被分配到不同 GPU;数据并行:不同的 GPU 有同一个模型的多个副本,每个 GPU 分配到不同的数据,然后将所有 GPU 的计算结果按照某种方式合并。注意,上述中的不用 GPU 可以是同一台机上的多个 GPU,也可以是不用机上

2022-07-02 15:01:28 443

原创 喜欢的语录

喜欢的语录

2022-06-19 20:30:37 237

原创 Spark性能优化指南——基础篇

pysaprk

2022-06-19 18:08:55 289

原创 利用spark UI 定位spark 运行慢的原因

spark性能

2022-06-19 17:50:34 3051 3

原创 UCF,基于用户的协同过滤算法

基础算法1992 年提出UCF,UCF 的两个步骤找到和目标用户相似的用户集合 找到这个集合中用户喜欢的,且用户未见过的物品推荐如何计算两个用户u,vu,v的兴趣相似度?N(u)N(u)表示用户uu曾经有过正反馈的物品集合 N(v)N(v)表示用户vv曾经有过正反馈的物品集合利用 Jaccard 公式(余弦也行)计算用户u,vu,v的兴趣相似度wuv余弦相似度,重点[ 用户行为记录举例 ]用户AA对物品a,......

2022-03-18 15:22:02 2938 1

原创 ssh 方式git clone 代码仓库

一、背景 工作中,git的使用必不可少,拉取Git仓库常用的有两种方式,一是以https方式 git clone;二是以ssh的方式。第一种方法最简单,一般拿到地址,直接git clone url即可,二、第二种方法需要配下ssh公私钥,当然也非常简单,最好两种方法都要掌握,因为很有可能其中一种不奏效,会拉取失败。二、操作步骤1、生成公私钥 ssh-keygen -o 默认保存路径 在 ~/.ssh/2、vim ~/.ssh/id_rsa.pub 打开公钥,复制内容到git......

2021-12-27 15:39:59 12797

原创 mac 重装java

一、背景 Java 常应用于系统开发,下面来演示如何重装java,安装java指的是安装jdk而不是jre。二、步骤 1、卸载已有的打开终端输入:java -version或 javac -version查看已安装的Java的版本依次输入以下命令进行卸载:21.输入sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin2.输入sudo rm -fr /Library/Pre...

2021-12-10 10:04:18 1447

原创 tensorflow 冻结梯度

TensorFlow tf.gradients实现stop gradient

2021-11-24 21:37:00 836

原创 几种listwise的loss实现

一、前言 本文实现的listwise loss目前应用于基于ListwWise的召回模型中,在召回中,一般分为用户侧和item侧,模型最终分别输出user_vector和item_vector,在pointwise模型中,这两个vector的shape都为(batch_size,dim),直接求两者的内积或余弦,然后过sigmoid,最后采用交叉熵获得loss进行反向传播。而在listwise模型中,item_vector的shape变为(batch_size,list_size,dim)....

2021-10-09 20:08:20 9498 2

原创 vae算法原理及实现

近年,随着有监督学习的低枝果实被采摘的所剩无几,无监督学习成为了研究热点。VAE(Variational Auto-Encoder,变分自编码器)[1,2] 和 GAN(Generative Adversarial Networks) 等模型,受到越来越多的关注。 首先介绍vae( 变分推断)的数学原理:假如现在有一个f(x),很复杂,我们想用一个简单函数去近似它。那么,如果我们能够找到的一个bound,然后优化这个bound,就可以实现对f(x)的近似,这个就是变分推断里最基础的思想。

2021-08-31 20:45:19 8769

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除