自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(184)
  • 资源 (2)
  • 收藏
  • 关注

原创 Transformer(四)--实现验证:transformer 机器翻译实践

这个实验是我很早之前,也就是刚写完代码时做的,只不过模型结果没有经过系统评估,连blue分也没计算,所以当时就没有整理成blog。最近想了想,还是把结果粘上来,大家看一下。没有计算具体的评估指标,主要是当时忙着做其它项目,没有过多的时间,且当时训练的目的也只是为了通过实验来看看代码是否有致命缺陷。此篇文章是衔接上一篇的后续,在这篇blog中,我们会使用之前实现的代码,在真实的大规模语料上来训练一个机器翻译模型,用实际效果来检验我们实现的代码。注:最后一个例子超过我设置的解码长度了,没有翻译完。

2023-06-28 17:13:51 1283 2

原创 Transformer(三)--论文实现:transformer pytorch 代码实现

文章目录1. transformer的基本结构2. 模块详解2.1 模块1:Positional Embedding2.2 模块2:Multi-Head Attention2.2.1 Scaled Dot-Product Attention2.2.2 Multi-Head2.3 模块3:ADD2.4 模块4:Layer Normalization2.5 模块5:Feed Forward NetWork2.6 模块6:Masked Multi-Head Attention2.7 模块7: Multi-Head

2022-05-18 15:41:39 4176 57

原创 Transformer(二)--论文理解:transformer 结构详解

文章目录1. transformer的基本结构2. 模块详解2.1 模块1:Positional Embedding(以下简称PE模块):2.2 模块2:Multi-Head Attention(多头注意力机制)2.2.1 Scaled Dot-Product Attention(缩放的点积注意力机制)2.2.2 Multi_Head(多头机制)2.3 模块3:ADD2.4 模块4:Layer Normalization2.5 模块5:Feed Forward NetWork2.6 模块6:Masked M

2020-12-10 12:26:23 11842 20

翻译 Transformer(一)--论文翻译:Attention Is All You Need 中文版

Attention Is All Your Need 摘要  主流的序列转换模型都是基于复杂的循环神经网络或卷积神经网络,且都包含一个encoder和一个decoder。表现最好的模型还通过attention机制把encoder和decoder联接起来。我们提出了一个新的、简单的网络架构,Transformer. 它只基于单独的attention机制,完全避免使用循环和卷积。在两个翻译任务上表...

2019-11-15 11:46:37 42025 219

原创 TraClus轨迹聚类算法原理及java版实现

前一阵子我们部门接到了业务那边的一个需求。想通过用户的wifi数据计算出商场内用户最喜爱走的线路。其实说白了就是用户轨迹聚类。根据业务的需求,我们最终采用了traClus聚类算法。traClus算法相比于其它的轨迹聚类算法的一大不同点是,该算法先把一个用户的轨迹分成了若干线段,然后把基于所有用户的轨迹生成的线段放到一个集合中进行聚类。算法本身可以划分为三个部分,分别为:1、用户轨迹分段。...

2019-09-19 16:37:07 7165 41

翻译 《ZeRO: Memory Optimizations Toward Training Trillion Parameter Models》--中文翻译

深度学习 (DL) 模型变得越来越大,模型大小的增加带来了显著的精度提升。在自然语言处理 (NLP) 领域,Transformers 为大型模型铺平了道路,例如 Bert-large (0.3B) 、GPT-2 (1.5B) 、Megatron-LM (8.3B) ,T5 (11B)。为了使模型大小能够从数十亿个参数持续增长到数万亿个参数,我们在训练它们时遇到了挑战 - 它们显然不适合单个设备(例如 GPU 或 TPU)的内存,并且简单地添加更多设备将 无助于扩大训练规模。

2023-12-26 16:24:38 99

翻译 GLM(一) -- 论文翻译:《GLM: General Language Model Pretraining with Autoregressive Blank Infilling》

总之,我们得出结论,GLM能够有效地在自然语言理解和生成任务中共享模型参数,并且比独立的BERT、编码-解码器或GPT模型获得更好的性能。

2023-12-11 22:34:12 380 2

原创 Google Gemini Pro 测试

谷歌新发布了Gemini模型,说是吊打GPT4,上手使用了下,感觉一般,没有感觉到预期的吊打。下面是与Bard的对话。

2023-12-08 11:53:21 156

翻译 《Training language models to follow instructions with human feedback》--中文翻译

通过给定一些输入的示例,大语言模型可以通过提示完成一系列NLP任务。但是,这些模型往往表现出意想不到的行为,编造事实、生成有偏见或有毒的文本,或者根本不遵循用户指令。这是因为最近许多大型LMs预测互联网网页上的下一个token所使用的语言建模目标与“帮助和安全地遵循用户的指示”的目标不同。因此,我们认为语言建模的目标是错位的。避免这些意外行为对于部署和使用在数百个应用程序中的语言模型来说尤其重要。

2023-11-08 18:00:18 163

原创 ChatGPT 是什么?

ChatGPT是人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型,这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。[2]

2023-06-29 17:29:29 1211

原创 BERT(二)--论文理解:BERT 模型结构详解

1. 整体结构2. 输入处理3. 输出处理3.1 nsp3.2 predict

2022-09-22 11:45:41 2858 1

翻译 BERT(一)--论文翻译:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

文章目录 1 Introduction(简介)2 Related Work(相关工作)2.1 Feature-based Approaches(基于特征的方法)2.2 Fine-tuning Approaches (微调方法)2.3 Transfer Learning from Supervised Data(在有监督数据上的迁移学习)3 BERT3.1 Model Architecture(模型结构)3.2 Input Representation(输入表示)3.3 Pre-training Tasks.

2022-05-19 12:02:12 1516 11

翻译 《Production Matching for Large Learning Systems》 第二章节翻译

第二章 基础Rete算法由于本论文的大部分工作都以Rete匹配算法为基础,所以本章主要描述Rete算法。不幸的是,大多数文献中对Rete算法的描述都不够特别明晰,这也许是Rete被冠以极度难懂的帽子的原因(Perlin,1990b)。为了扭转这种形势,本章将以教程的形式描述Rete,而不是简略地回顾一下或引导读者去看其它完整描述此算法的文献资料。我们首先大体上看一下Rete,然后讨论数据结构和常见的实现方式。本文中会给出主要数据结构和程序的伪代码,这可以给想在自己系统中实现Rete算法或变体的读者们一个指

2021-09-09 20:29:36 388

原创 神经网络的参数更新(BP算法)

最近面临换工作的问题,想把以前的算法知识捡一捡,1、向前算法#mermaid-svg-VhyBzTddVryJDIKa .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-VhyBzTddVryJDIKa .label text{fill:#333}#mermaid-svg-VhyBzTddVryJDIKa .n

2020-12-04 20:29:04 5969 2

翻译 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》论文翻译--中英对照

AbstractWe introduce a new language representa- tion model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models (Peters ...

2020-06-02 17:37:04 5690

原创 crf与lstm+crf的简单对比

  很早以前就使用crf做过命名实体识别,前一阵子又使用lstm+crf做了命名实体识别这个任务。现在有时间补一个笔记,记一下使用中的一些感受和想法。1)crf这个算法用来做命名实体识别比较容易达到不错的效果。使用2/3的人民日报免费的那两个月的数据,不加任何特征,只使用字的信息,F1也可以跑到0.85左右。结果见下图(使用CRF++5.4版本 ,结果在测试集上计算)。2)lsmt+crf这...

2019-10-25 13:23:38 2127 1

原创 金融模型之评分卡

一. 评分卡的表现形式及业务意义  评分卡的主要功能是用来给用户评级,把用户的相关信息输入到评分卡系统中,评分卡给出一个评价等级,一般情况这个等级用A、B、C、D、E等来表示。不同的等级对应着不同的好坏比,相邻的级别之间的好坏比是2倍的关系。例如D级别的好坏比为1:1,那么C级别的好坏比就为2:1,B级别的就为4:1,而E级别的好坏比为0.5:1。这么做的好处有两点,首先每个级别不仅能横向对比出...............

2019-10-24 14:09:44 1695

原创 DAT的算法原理及实现

一、从Trie说起  DAT是Double Array Trie的缩写,说到DAT就必须先说一下trie是什么。Trie树是哈希树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,trie中文叫做键树,也叫字典树,从名字就可以看出trie的实质是一个树。trie的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。基本性质:1...

2019-09-19 16:54:13 3014

原创 《将博客搬至CSDN》

想了想维护两个博客还是挺累的,所以把这个博客的内容都搬到csdn吧。csdn博客地址:https://blog.csdn.net/nocml

2019-09-19 16:50:00 100

原创 pytorch rnn 2

import torchimport torch.nn as nnimport numpy as npimport torch.optim as optimclass RNN(nn.Module): def __init__(self,input_dim , hidden_dim , out_dim): super(RNN,self).__init__...

2018-11-05 14:48:00 137

原创 pytorch rnn

温习一下,写着玩。import torchimport torch.nn as nnimport numpy as npimport torch.optim as optimclass RNN(nn.Module): def __init__(self,input_dim , hidden_dim): super(RNN,self).__init__...

2018-10-23 19:55:00 102

原创 使用tensorflow 构建rnn网络

使用tensorflow实现了简单的rnn网络用来学习加法运算。tensorflow 版本:1.1import tensorflow as tffrom tensorflow.contrib import rnnclass RNN(): def __init__(self, input_dim , hidden_dim , step_num , class_num,le...

2017-06-26 14:28:00 167

原创 cnn for qa

最近在做QA系统,用tensorflow做了些实验,下面的的是一个cnn的评分网络。主要参考了《APPLYING DEEP LEARNING TO ANSWER SELECTION: A STUDY AND AN OPEN TASK》这篇论文与wildml博客中的一篇文章。import tensorflow as tfimport numpy as npclass QaCNN():...

2017-05-04 16:11:00 104

原创 ik-analysis for lucene 5.x

package org.wltea.analyzer.lucene; import java.io.IOException; import org.apache.lucene.analysis.Tokenizer;import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;import org.apache.l

2017-02-09 08:38:03 375

原创 自己动手写RNN

说的再好,也不如实际行动,今天手写了一个RNN,没有使用Numpy库,自己写的矩阵运算方法,由于这也只是个学习用的demo,所以矩阵运算那一部分写的比较丑陋,见笑了。import com.mylearn.hw.Process as prclass RNN(object): def __init__(self , input_dim , hidden_dim , output...

2016-11-07 15:31:00 217

原创 mapreduce 自定义类型

主要是重写write 与 readFields 两个方法。 最好要把toString也重写了,因为我当是没有重写,结果保存到hdfs上的是自定义对象的引用地址。这个还不确定到底是不是没有重写toString造成的。先记下吧。package com.wanda.explore;import com.wanda.util.ReflectUtil;import java.io.DataInput;i

2016-09-29 15:49:52 446

原创 RNNs

什么是RNN网络?RNNs背后的主要目的是要使用序列本身的顺序信息。在传统的神经网络里,我们假设输入(输出)是条件独立的。但是,在许多任务里,这是个非常非常差的假设。如果你想预测一个序列中的下一个单词是什么,你最好知道它的前一个词是什么。RNNs被叫做循环神经网络是因为它对于序列中的每个元素都做相同的操作,输出会依赖于之前的计算。用另一种说法,RNNs拥有了一个能捕获到目前为止所有计算...

2016-09-01 11:01:00 869

原创 mr中获取输入文件路径

import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.MRJobConfig;import org.apache.hadoop.mapreduce.Mapper;

2016-07-29 08:51:30 2162

原创 MapReduce Unit Test

  以前用java写MR程序总不习惯写单元测试,就是查错也只是在小规模数据上跑一下程序。昨天工作时,遇到一个bug,查了好久也查出来。估计是业务逻辑上的错误。后来没办法,只好写了个单元测试,一步步跟踪,瞬间找到问题所在。所以说,工作中还是要勤快些。 1 import static org.junit.Assert.assertEquals; 2 import jav...

2016-04-21 11:03:00 101

原创 关于模型选择

无论是分析还是预测,都有很多种方法,可以使用多种模型,在可以使用多种模型时,如何去选择,这是一个算法工程师常遇到的问题。下面是在工作用事实说话,直接评估各个模型结果的好坏。哪个结果好,就选哪个模型。这里评估模型好坏的指标要根据实际情况而定。一般情况下,有precision,recall,roc area / auc 等,评价时一般会使用交叉验证。从理论入手。有些模型会更适合做某类工...

2016-04-07 21:50:00 354

原创 最小堆

  前几天写dijkstra算法,想到了最小堆。今天整理了一下。发了出来。还是本着说明天的原则。代码没有进行压缩。  最小堆:  1、用数组表示时,假设当前根节点的下标为i , 则其两个子节点的下标分别为 2*i + 1 与 2*i + 2  2、最小堆的根节点的值小于其子节点的值,且其子节点与其对应的子孙节点也是最小堆。package minheap;...

2016-01-26 15:01:00 64

原创 kmeans++

前一阵子有一个学弟问kmeans算法的初始中心点怎么选,有没有什么算法。我让他看看kmeans++,结果学弟说有地方没看懂。然后,他不懂的地方,我给标注了一下。下面是网上的资料,我对画线的地方做了标注。 k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。wiki上对该算法的描述如下:从输入的数据点集合中随机选择一个...

2016-01-22 11:55:00 125

原创 Dijkstra 算法

今天又翻了翻算法导论,看了看dijstra算法。兴趣来了就实现了下。完全按照书上的步骤实现,没有使用最小堆等数据结构,使用的邻接表方式表示图。因此实现的算法效率很抵,不过这里只是想通过程序来说明这个算法。不是工程上用的。如果工程上使用,最好用矩阵表示图,然后再使用最小堆。。。。不多说了,直接上代码。(原理参见算法导论第二版p366)package Graph;...

2016-01-22 10:53:00 63

原创 mapreduce中获取输入文件的路径

InputSplit inputSplit = context.getInputSplit();String fileName = ((FileSplit) inputSplit).getPath().getName();  

2016-01-21 15:37:00 427

原创 mapreduce数据不平衡时的处理方法

用mr处理大数据经常遇到数据不平衡的情况,这里的数据不平衡指的是,数据中有少部分key集中了大量的数据,导致其它的reduce都运行完了,只剩几个reduce在跑。这种情况一般有如下三种解决方法(原理都差不多)。1、重写partitioner  如果一个key对应的数据过过,那么可以在partitioner中对这个key进行分箱。通常做法是,在hash(key)后面加上一个字符串...

2016-01-21 14:59:00 164

原创 Partitioner

  partitioner 是map中的数据映射到不同的reduce时的根据。一般情况下,partitioner会根据数据的key来把数据平均分配给不同的reduce,同时保证相同的key分发到同一个reduce。但当一个数据不平衡时,即某个key对应的数据量太大,导致reduce的空间不够,或者计算耗费太多时间时,可以重写partitioner,来按照实际情况分发数据。下面是一个p...

2016-01-21 14:11:00 90

原创 Combiner

  如果job 设置了 combiner ,则job的每个map运行的数据会先进入combiner,然后再通过patitioner分发到reduce。通过combiner能减少reduce的计算、空间压力。其实combiner就是继承了Reducer类了一个子类,运行在map排序后的输出上。可以理解为,对每个map中的数据先做一次reduce。下面是一个例子,很简单,不多说了。...

2016-01-21 14:05:00 76

原创 sqoop oracle 到hdfs

import-m10--connect jdbc:oracle:thin:@(description=(address_list= (address=(host=10.77.134.47) (protocol=tcp)(port=1521))(address=(host=10.77.134.48)(protocol=tcp) (port=1521)) )(connect_data=

2015-06-02 16:20:30 1548

原创 weka数据挖掘拾遗(三)----再谈如果何生成arff

前一阵子写过一个arff的随笔,但是写完后发现有些啰嗦。其实如果使用weka自带的api,生成arff文件将变成一件很简单的事儿。首先,可以先把特征文件生成csv格式的。csv格式就是每列数据都用逗号分隔的一种格式。(还有不清楚的googling一下就知道了)一、首先看下特征文件怎么保存成csv格式。1、首行为特征名,以逗号分隔。2、除首行外的行都为数据行,每列数据都是首...

2015-05-23 21:33:00 77

原创 字符串位移

闲来无事,想起上学时数据结构课程中有个字符串位移的小算法挺有意思,今天写了下,就测试了一个字符串,纯属娱乐。public class Offset { public static void swap(char [] chars , int position1 , int position2){ if(position1 < chars.length &amp...

2014-09-13 14:21:00 316

CRF++-0.54(Cygwin编译通过).tar.gz

CRF++ 的开源包,在Cygwin(unix)编译通过

2013-01-12

空空如也

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

TA关注的人

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