一名AI算法工程师,热爱生成式模型和具身智能.
看了一下苏神这篇博客:将“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)\]之前部署上线了学员课程评论情感分析模型,随着业务发展,推理性能逐渐成为瓶颈。所以准备转到GPU进行部署,彻底解决这个瓶颈问题。 以下是当初进行推理优化时不同技术选型的测试过程。
目前是使用onnxruntime的cpu版本部署的。经过测量,性能如下:
batch size 为1时,预测耗时为90ms左右。
batch size 为10时,预测耗时为600ms左右。
这就是优化的起点了。
之前踩过的一个坑,有小伙伴问,索性记录下来,免得忘记。
首先要强调的是,有两个版本的onnxruntime,一个叫onnxruntime,只能使用cpu推理,另一个叫onnxruntime-gpu,既可以使用gpu,也可以使用cpu。
如果自己安装的是onnxruntime,需要卸载后安装gpu版本。
pip uninstall onnxruntime
pip install onnxruntime-gpu==1.9
最近一直在思考的问题,感觉有两个原因。
总结一下自己在一个文档检索项目中使用对比学习时的炼丹经验.
SimCSE巧妙利用了Dropout做对比学习,想法简单、效果惊艳。对比学习的核心就是loss的编写,官方给出的源码,loss写的略复杂。苏神的loss实现就相当的简单明了,今天,就记录下苏神源码中loss的阅读笔记。
DNN中的反向传播的简明例子。