自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jollyjumper的专栏

一点记录

  • 博客(341)
  • 资源 (1)
  • 收藏
  • 关注

原创 火山引擎DataTester:A/B测试,让企业摆脱广告投放“乱烧钱“笔记

“MAB实验”是智能调优实验,实验方案可以直接在线上进行,DataTester将根据实时数据反馈,智能调节实验方案的流量分配,给广告收益效果好的方案倾斜更多的流量,帮助企业收益最大化。

2023-02-18 22:25:39 206

转载 Learning To Rank简述

https://zhuanlan.zhihu.com/p/68682607经典的Learning To Rank: RankNet->LambdaRank->LambdaMARTRankNet: pairwise,损失函数为交叉熵,学习方法为逻辑回归LambdaRank: 直接简单粗暴地在RankNet加速算法形式的梯度上乘上Lambda梯度z,z为评价指标,可取NDCG、ERR等。LambdaRank相比RankNet的优势:分解因式后训练速度更快,同时考虑评价指标,效果更好

2021-04-21 01:02:00 190 1

原创 BytePSScheduledQueue

这个类主要是对TensorTableEntry的任务进行管理,应该都用于设备之间数据通信:以下为TensorTableEntry定义:

2021-02-03 22:55:14 163

原创 shared_memory

共享内存管理接口,用一个map保存所有的共享内存,为了加速和GPU通信,使用了cudaHostRegister/cudaHostUnregister接口:比较特殊的是openPcieSharedMemory,会返回一个地址列表,会在多个PCIE Switch各分配一个共享内存(PCIE-Switch是为了解决CPU PCIE接口数量不足的问题(每个CPU 40个PCIE接口)...

2021-02-03 22:09:58 376

原创 BytePSCommunitor

对应的文件为common/communitor.h,common/communitor.cc这个是单机上多个GPU之间通信使用的,会创建unix域的数据报套接字。发送的数据格式为:净载荷只有一个key,BytePSCommunitor提供了发送、广播、接收的功能,root设备还有一个监听线程,会调ByptePSGlobal的相关成员变量的回调函数:涉及的数据结构为ReadyTable:可以看出,是预设一个_ready_count,接收相应信号之后,对应key加1,最后判断两个计数

2021-02-03 16:55:46 162

原创 (转)SignSGD 及其 MXNet 实现解读

原文:https://zhuanlan.zhihu.com/p/112346480论文笔记:SIGNSGD: compressed optimisation for non-convex problems这是一篇来自 Caltech,Amazon AI 和 UC Irvine 的文章。名字非常的直白,方法也异常的简单(简单并不简单)。总结起来就是:SGD里面,梯度真正有用的是方向而不是大小。所以,即使你只保留梯度的符号来对模型进行更新,也能得到收敛的效果。甚至有些情况下,这么做能减少梯度

2021-02-02 19:58:19 589

转载 (转)【深度学习】深入理解Batch Normalization批标准化

原文链接:https://www.cnblogs.com/guoyaohua/p/8724433.html这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出。  Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train

2021-01-24 18:52:57 84

原创 GPU架构

费米架构: 2010年发布开普勒架构: 2012年发布麦克斯韦尔架构: 2014年发布 Tesla M40帕斯卡架构: 2016年发布 Tesla P4 P100伏特架构: 2017年 Tesla V100图灵架构: 2018年 Tesla T4安培架构: 2020年

2020-09-21 11:54:00 264

转载 (转)一文看懂HNSW算法理论的来龙去脉

原文链接:https://blog.csdn.net/u011233351/article/details/85116719一.背景介绍 在浩渺的数据长河中做高效率相似性查找一直以来都是让人头疼的问题。比如,我在搜狗app上阅读了一篇文章,推荐系统就应当为我推送与这篇文章最相近的文章,数据库中所有文章是用向量表示的,所以我们要解决的问题就是“找到与这篇文章的向量最相近的几个向量”,然后把这些向量对应的文章推送出去。数据库中的文章千千万,所有用户每秒的请求也是千千万,我们需要又快又准又...

2020-09-06 17:24:10 543 1

转载 技术人员如何做好职级晋升答辩

原文:http://itindex.net/detail/59406-%E6%8A%80%E6%9C%AF%E4%BA%BA%E5%91%98标签:技术人员| 发表时间:2019-03-27 23:13 | 作者:明城出处:https://www.gracecode.com/三月即将过去四月份即将到来,很多公司年后的职级晋升安排即将结束。同时,晋升的结果也将陆陆续续公布出来。几家欢喜几家愁,晋升成功的同事自然值得祝贺,没有过的同事也不要气馁再接再励。对于技术人员而言,普遍有个很共通的..

2020-06-12 19:23:01 8191

原创 Focused crawling: a new approach to topic specific web resource discovery

论文地址:https://courses.cs.washington.edu/courses/cse454/05sp/papers/chakrabarti99focused.pdf这是一篇非常详细的论文,成于1999年,关于主题爬虫引用数最高(高达2294次)的论文.其具体做法是: 对种子url进行分类,其分类体系是树状的,并确保所有种子url都被分在叶子类目上,并训练出分类模型(论文中...

2020-02-27 23:49:45 209

转载 Mac小技巧: 使用home brew services

参考:https://thoughtbot.com/blog/starting-and-stopping-background-services-with-homebrew比如,在安装squid(brew install squid)之后要启动服务:brew tap homebrew/servicesbrew services start squid...

2020-02-27 14:17:36 590

原创 常见docker命令备查

主要来自第一本docker书(修订版):docker run -i -t ubuntu /bin/bashdocker ps (-l)docker run --name bob_the_container -i -t ubuntu /bin/bashdocker start bob_the_container[docker create]docker attachdoc...

2020-02-26 22:57:54 155

原创 selemium环境准备

查找对应版本的chrome driver: http://chromedriver.chromium.org/downloads解决DevToolsActivePort file doesn't exist: https://cloud.tencent.com/developer/article/1404558测试代码: public static void main(String[...

2020-02-26 19:26:17 192

原创 TextRank: Bringing Order into Texts论文笔记

原来在搜PageRank论文时找到这篇04年发表、引用次数3066次的论文。原文链接:https://www.aclweb.org/anthology/W04-3252.pdf阅读之后,发现并不是做网页排序或者爬虫调度相关的。而是利用PageRank/Hits等随机游走的方法对文本中的单元计算出类似PageRank的值,用来做无监督的关键词抽取、关键句子抽取,取得了很好的效果。具体在...

2020-02-14 00:51:29 358

原创 WEBSEARCH FOR A PLANET: THE GOOGLECLUSTER ARCHITECTURE

jeff dean 03年论文,很认真地想挖掘一些点,现在看就没什么insight了,只有google早期的一些数字有点印象:几十T索引、超过15000台机器、几十行(dozens of),使用组装PC,考虑机器单位面积功耗(包括冷却)、性价比等等,算是去ioe化的最早倡导者吧。...

2020-02-08 00:53:17 314 1

原创 Lucene 6.6.0 BKD树

相关接口使用可以看TestBKD.java。仔细读BKDReader,BKD树是一颗完全二叉树,每个节点在一个维度上进行划分.发现里面为了节约空间做了很多差量编码工作.其中的PackedIndexTree结构是这样的:要知道这个结构是为了遍历树的,因此有pushLeft,pushRight,pop等操作,这里splitValuesStack可以看到冗余存了numDims维数据,但实...

2019-02-18 23:48:01 2041

转载 矢量量化方法

原文链接: https://yongyuan.name/blog/ann-search.html矢量量化方法矢量量化方法,即vector quantization,其具体定义为:将一个向量空间中的点用其中的一个有限子集来进行编码的过程。在矢量量化编码中,关键是码本的建立和码字搜索算法。比如常见的聚类算法,就是一种矢量量化方法。而在ANN近似最近邻搜索中,向量量化方法又以乘积量化(PQ, P...

2018-12-17 16:15:30 4255 1

原创 CentOS7上faiss环境准备

git clone https://github.com/facebookresearch/faiss.gityum install openblasyum install libopenblasyum install openblas-openmp64.x86_64yum install openblas*./configuremakeyum install pyth...

2018-12-17 11:31:18 735

原创 faiss观感

faiss不是单一支持某个算法的库,而是一组ANN算法的实现集合.faiss支持brute force,lsh,hnsw等索引,最主要支持的还是维诺图(voronoi cells),用kmeans做了聚类训练之后生成voronoi cells,然后根据nprobes去检索对应的cell,类似于lsh,好处是索引小(lsh哈希函数越多索引越大),而且很容易预训练(kmeans聚类).这里在建...

2018-12-10 00:01:14 772

转载 看到的对PCA/SVD解释最清楚的文章

https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.htmlhttps://blog.csdn.net/a10767891/article/details/80288463PCA用SVD方法降维,参考之前看到的,这里矩阵应该不是直接用样本,而是协方差矩阵,否则样本量大的时候计算量很大.奇...

2018-12-09 23:01:27 155

转载 LSH知识

Links:LSH Primer: https://github.com/FALCONN-LIB/FALCONN/wiki/LSH-PrimerGithub LSHash: https://github.com/kayzhu/LSHash图像检索:再叙ANN Search:https://yongyuan.name/blog/ann-search.htmlPractical and...

2018-11-07 10:57:38 686

原创 log4j2配置指南

研究了一个小时,大概知道门道了.一般日志有按领域划分、还有分级的需求,文档不够详细,即使这么简单的配置,也踩了很多坑.以下是我的例子:?xml version="1.0" encoding="UTF-8"?><configuration status="off" monitorInterval="30">    <Properties>     

2018-08-25 23:53:31 248

原创 使用FactoryBean

这是spring的一个技巧.如:    <bean id="clientProxy" class="com.service.mobile.mtthrift.proxy.ThriftClientProxy" destroy-method="destroy">        <property name="serviceInterface" value="xxx"/

2018-08-09 23:54:18 287 1

原创 使用log4j2

除了要去掉不相关的bindings,要exclude掉一些dependency.另外依赖加上:log4j-api >=2 版本 (如2.4.1)log4j-core >=2 版本log4j-slf4j-impl >=2 版本 (因为很多应用用得还是slf4j日志接口,所以要桥接)如果使用AsyncLogger,还要依赖com.lmax:disruptor(如3...

2018-08-07 22:16:56 147

转载 老年代泄漏与MetaSpace

http://blog.csdn.net/goodzyw/article/details/48036037https://stackoverflow.com/questions/17652280/is-the-permgen-space-ever-decreasedhttp://blog.csdn.net/zhyhang/article/details/17246223永久代内

2017-12-21 12:07:32 512

原创 欧式距离计算

package com.dp.arts.biz.processor.post;import java.util.Random;/** * @author shitianquan * create at 2017/11/8 */public class AAA { public double hiddenDistance(double[] v0, double[] v1)

2017-11-24 21:41:53 6220

转载 【整理】SIMD、MMX、SSE、AVX、3D Now!、neon

原文: http://blog.csdn.net/conowen/article/details/7255920解释得蛮清楚的。SIMDSIMD单指令流多数据流(SingleInstruction Multiple Data,SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。在微处

2017-11-22 18:00:49 539

原创 搜索排序插件语言的选择

es中支持用groovy定制开发排序,但实际使用时发现性能较差。动态语言的好处是写代码时不用做类型转换,但用非jvm的脚本(js,lua)需要把很多对象复制、重构一遍,代价太大。用scala看起来可以对性能和易用性做个折中(还可能要做类型转换,但不需要声明类型,不需要写return,比Java稍好,性能相当)。以下为测试: private static void testGroovy

2017-11-11 10:25:47 349

原创 EFANNA : An Extremely Fast Approximate Nearest Neighbor Search Algorithm Based on kNN Graph

读完论文,留念一下。论文详细得显啰嗦,按照描述,是个性能很好、灵活性较好的Graph-based ANN算法。http://xueshu.baidu.com/s?wd=paperuri%3A%28139d7c9161631b6a9ded855a116282df%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3

2017-10-20 00:07:04 1360

原创 KMP算法

自己实现了下kmp算法,感觉失败的地方要反复比较,这个比较浪费:public class KMP { public static int[] calcNextArray(char[] target) { int[] next = new int[target.length]; next[1] = 0; for (int i = 2; i

2017-09-30 19:59:27 339 1

原创 Skip Lists: A Probabilistic Alternative to Balanced Trees

原文:http://people.csail.mit.edu/shanir/publications/OPODIS2006-BA.pdf最近不断听说常用跳表实现内存索引(leveldb/redis/hbase), 研究了这篇1990的论文,跳表一种比平衡树和伸展树空间更节约、更易于实现且非常高效的数据结构。原来认识到的只是静态跳表,动态跳表则是每次随机确定一个level,概率上非常高效

2017-09-26 22:45:59 828

原创 Lucene 4.0 BytesRefHash的一个bug

线上搜索忽然发现一堆死循环线程,最后全部卡在内存索引的BytesRefHashState的查找方法get上,而这个哈希表实现基本参考了lucene-core中的BytesRefHash方法。这个再散列方法比较特别,inc = ((code >> 8) + code) | 1,code += inc,既不是线性探测也不是二次探测,哈希表的长度为2的幂,并且保证哈希表负载因子小于0.5。我理解这里

2017-09-01 22:16:44 397

原创 The quadratic hash method when the table size is a power of 2

http://www.chilton-computing.org.uk/acl/literature/reports/p012.htm作者:F R A Hopgood and J Davenport最近因为一起疑似lucene BytesRefHash的bug (哈希表死循环),研究了下哈希表,发现好多之前自己没仔细思考过的东西,以上这篇1972年的论文解除了我很多困惑。二次探测在哈希

2017-08-31 22:32:44 222

原创 DAT的实现

手痒,自己实现了一下,UT已经通过。在lucene4基础上实现,加上接口不到300行代码。package com.dp.junhao.jhsegmenter;import gnu.trove.iterator.TByteIterator;import gnu.trove.list.array.TByteArrayList;import gnu.trove.procedure.TBytePr

2017-08-11 22:48:42 797

原创 groovy上手

groovy是动态的jvm语言,类似python或js,有闭包支持,并有java上很多语法糖,比scala简单,原来以为七周七语言上会介绍,看了一下居然没有,信手找一篇入门:http://blog.csdn.net/kmyhy/article/details/4200563

2017-08-09 19:58:51 245

原创 相关搜索词的一种粗排方法

源自一次未完成的实验,因为日志里面查询词实在太少了。word2vec下载地址:http://download.csdn.net/detail/hortond/8095703解压之后执行make。下载点评头条内容,contents.txt文件内容进行分词,需要安装jieba分词:pip install jieba#! /usr/bin/env python#codin

2017-06-16 20:19:59 1989

原创 python帮助信息获取

pydoc -p 8000pydoc mathpydoc -w math (生成html文档)help(int)help(math)a=open("a.html", "wb")dir(a)

2017-06-14 20:40:31 567

原创 python virtualenv使用

pip install virtualenvmkdir myprojectvirtualenv --no-site-packages venv加了--no-site-packages,这样已经安装到系统python环境下的所有第三方包都不会复制过来,这样我们得到了一个不带任何第三方包的干净的python运行环境。如果要指定python版本,virtualenv后面要加上-p /us

2017-06-14 20:26:01 953

原创 Curator InterProcessSemaphoreV2

InterProcessSemaphoreV2实现了一个跨jvm的信号量,主要工作原理是:acquire时创建一个临时顺序节点,如果创建成功且临时节点数小于等于maxLeases则说明信号量获取成功,否则wait等待,等待目录发生变化或计数改变时唤醒。整个acquire过程持InterProcessMutex互斥的,而因为其中带有等待,性能不会太高。实际使用时等待时间最好不要太长。另外zk里面

2017-02-06 18:55:19 1070

Scons User Guide 2.01

Scons号称下一代自动编译工具,相比于make,它的生成脚本使用Python而不像makefile那样新创造一种语言。我认为它是autoconfig,makefile的很好替代。

2011-05-11

空空如也

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

TA关注的人

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