Better TF-IDF: BM25

如果你经常翻阅 LLM (RAG) 或者信息检索相关文献的话,想必会经常看到 BM25 算法。BM25 是用来对检索到的东西按照相关性排序的算法。即在给定用户查询(Query)的情况下,计算每一个文档(Document)的相关性(Relevance)并进行排序

关联规则挖掘:Apriori 算法

最近的工作中需要分析大量安卓 Apk 的特征关联,这些特征包括 IP 特征、URL 特征、权限特征等。特征关联指的是从数据中挖掘哪些特征之间存在关联,比如某些特征组合经常一起出现

如果依靠人工经验的话,数据量太大不大现实,就在这时我想起了以前数据挖掘课程上学过的一个算法:Apriori 算法 :)

异步编程+漏桶算法:批量调用 LLM API

最近在工作中着手模型评测平台的搭建,其中有这么一个场景:需要调用其他部门提供的 LLM API 进行在评测集上跑模型评测,但这个 LLM API 有请求速率限制 - 最多 1 秒调用 2 次(2 RPS)。所以我的任务概括来说就是:如何在严格遵守 API 速率请求的情况下,最大提高并发度加快模型评测速度。本文的内容主要记录了对这个任务的尝试,以及最后的解决方案

Transformer 架构变化:旋转位置编码 (RoPE)

用 $\mathbf x_i$ 表示没有位置编码的 token embedding,那么 $\mathbf q_m,\mathbf k_n,\mathbf v_n$ 的计算如下

$$ \begin{aligned} \mathbf q_m&=f_q(\mathbf x_m,m)\\ \mathbf k_n&=f_k(\mathbf x_n,n)\\ \mathbf v_n&=f_v(\mathbf x_n,n) \end{aligned} $$

这里的 $n, m$ 表示的是不同的位置,这里假设 $\mathbf k$ 和 $\mathbf v$ 是都是位置 $n$ 的,而 $\mathbf q$ 是位置 $m$ 的,并且 $m > n$