丰言的博客

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。

Spring Boot让我们的Spring应用变的更轻量化。我们不必像以前那样繁琐的构建项目、打包应用、部署到Tomcat等应用服务器中来运行我们的业务服务。通过Spring Boot实现的服务,只需要依靠一个Java类,把它打包成jar,并通过java -jar命令就可以运行起来。这一切相较于传统Spring应用来说,已经变得非常的轻便、简单。

总结一下Spring Boot的主要优点:

  1. 使所有Spring开发者更快的入门
  2. 开箱即用,提供各种默认配置来简化项目配置
  3. 内嵌式容器简化Web项目
  4. 没有冗余代码生成和XML配置的要求
阅读全文 »

假设有一个文本(n words)和大量关键字(m keywords),如何在文本中匹配所有关键字? 简单实现,可以将每个关键字与文本进行比较,伪代码如下图,这样时间复杂度为O(n*m),是非常缓慢的,有没有更高效的算法实现呢?

1
2
3
4
5
for(i=0;i<m;i++){
if(keywords[i] in words){
print("find" + keywords[i]);
}
}
阅读全文 »

不同于RNN、CNN等模型,对于Transformer模型来说,位置编码的加入是必不可少的,因为纯粹的Attention模块无法捕捉到输入的位置信息,即无法区分不同位置的Token。为此,我们大体有两种选择:

  1. 将位置信息融入到输入中,这构成了绝对位置编码的一般做法
  2. 调整Attention模块,使其有能力分辨不同位置的Token,这构成了相对位置编码的一般做法。
阅读全文 »

在NLP模型中,输入通常是一个句子,例如"I went to New York last week",一句话中包含很多单词(token)。传统的做法是将这些单词以空格进行分隔,例如['i', 'went', 'to', 'New', 'York', 'last', 'week']。然而这种做法存在很多问题,例如模型无法通过old, older, oldest之间的关系学到smart, smarter, smartest之间的关系。如果我们能使用将一个 token 分成多个 subtokens ,上面的问题就能很好的解决。本文将详述目前比较常用的subtokens算法——BPE(Byte-Pair Encoding)。

阅读全文 »

Hexo-NexT主题可以通过git pull进行平滑更新,但在之前的版本中,如果对NexT主题做了自定义修改,就会使得主题更新变得比较麻烦。目前版本可以通过数据文件将配置与主题分离,同时也可以把自定义布局、样式放到数据文件中,不用再修改主题源码,便于后续更新。

阅读全文 »

机构:OpenAI
论文地址:

论文代码:

阅读全文 »