Hi! 我是李文举.

一名AI算法工程师,热爱生成式模型和具身智能.

苏剑林多标签softmax分类loss源码解析

看了一下苏神这篇博客:将“softmax+交叉熵”推广到多标签分类问题。从单标签分类很自然地顺推到多标签。下面记录阅读其loss实现源码理解,以备忘查。

loss公式:

\[log\left(1+\sum_{i\in\Omega_{neg}} e^{s_i}\right) + log\left(1+\sum_{j\in\Omega_{pos}} e^{-s_j}\right)\]

阅读全文 »

bert推理优化之路

之前部署上线了学员课程评论情感分析模型,随着业务发展,推理性能逐渐成为瓶颈。所以准备转到GPU进行部署,彻底解决这个瓶颈问题。 以下是当初进行推理优化时不同技术选型的测试过程。

1、cpu推理性能测量

目前是使用onnxruntime的cpu版本部署的。经过测量,性能如下:

batch size 为1时,预测耗时为90ms左右。

batch size 为10时,预测耗时为600ms左右。

这就是优化的起点了。

阅读全文 »

onnxruntime使用gpu推理

之前踩过的一个坑,有小伙伴问,索性记录下来,免得忘记。

1、gpu版本的onnxruntime

首先要强调的是,有两个版本的onnxruntime,一个叫onnxruntime,只能使用cpu推理,另一个叫onnxruntime-gpu,既可以使用gpu,也可以使用cpu。

如果自己安装的是onnxruntime,需要卸载后安装gpu版本。

pip uninstall onnxruntime
pip install onnxruntime-gpu==1.9

阅读全文 »

Transformer优秀文章汇总

1、位置编码相关

苏剑林两篇文章: 层次分解位置编码,让BERT可以处理超长文本

让研究人员绞尽脑汁的Transformer位置编码

阅读全文 »

为什么生产力这么发达了普通人仍然辛苦

最近一直在思考的问题,感觉有两个原因。

阅读全文 »

对比学习训练技巧

总结一下自己在一个文档检索项目中使用对比学习时的炼丹经验.

  • 更大的batch size
  • 更难的负样本,从同一个类型的句集中挑选负样本
  • 使用余弦相似度,更适合K-means
  • 相似度倍增,实际经验C=20较好

阅读全文 »

SimCSE核心源码解读

SimCSE巧妙利用了Dropout做对比学习,想法简单、效果惊艳。对比学习的核心就是loss的编写,官方给出的源码,loss写的略复杂。苏神的loss实现就相当的简单明了,今天,就记录下苏神源码中loss的阅读笔记。

阅读全文 »

神经网络的反向传播实例

DNN中的反向传播的简明例子。

阅读全文 »