LoRA 微调

自从 LLM 时代到来之后,如何微调 LLM 成为了一个难题,因为 LLM 的模型实在是太大了,很难做全量微调更新所有参数。可选的路线有:冻结整个模型做 Prompt tuning 或者 In-context Learning;冻结整个模型但是会插入可训练的模块。今天要介绍的 LoRA(Low-Rank Adaptation) 就对应了后者的技术路线,这是微软团队的工作1

下一个排列问题

有时候我们会想要生成一个序列的「下一个排列」或者是「上一个排列」,你会怎么做呢?如果你对 C++ 很熟悉的话,不难想到可以用 next_permutation1prev_permutation2。但是 Python 并没有提供类似的 API。因此今天要探讨的就是如何用 Python 实现这 2 个 API,又因为「上一个排列」和「下一个排列」的方法其实大同小异,因此让我们聚焦其中的「下一个排列」问题

词袋模型

在 NLP 中,我们需要将文档(document)表示为向量,这是因为机器学习只能够处理数字。也就是说,我们要找到下面这么一个神奇的函数:

$$ f(\text{document}) = vector $$

今天要讨论的是词袋模型(bag-of-word, BoW),词袋模型可以让我们把输入的文档转变成一个向量表示