使用 GitHub Actions 自动化 Hugo 博客部署

最近在学习 GitHub Actions,GitHub Actions 是 GitHub 提供的一个特性,可以用来自动化执行一些步骤。在软件开发中,最常见的需要自动化的场景可能就是构建了。对于编译型的编程语言(比如 C/C++)编写的软件,通常需要编写对应的构建的脚本,软件构建的过程涉及到:环境准备、依赖下载、启动构建等。不过,利用 GitHub Actions 来自动化软件构建过程并不是本文的主题。在我思考我可以将 GitHub Actions 用于何处的时候,我想到了:利用 GitHub Actions 来自动化 Hugo 博客的部署。因为 Hugo 博客的部署也涉及到不少一系列固定的步骤 :)

学习使用 Vim&Neovim 的 text-object

你可能不知道什么是 text-object,但我相信你可能已经在使用了只是你自己没有意识到。比如,在写代码的时候,我们经常想要修改函数调用的入参。比如我们在下面这段代码中,想要修改成 bar(3, 2, 1),而你的光标停留在 () 里面

LLM 推理加速 - KV Cache

LLM 用于推理的时候就是不断基于前面的所有 token 生成下一个 token

假设现在已经生成了 $t$ 个 token,用 $x_{1:t}$ 表示。在下一轮,LLM 会生成 $x_{1:t+1}$,注意他们的前 $t$ 个 token 是一样的

LoRA 微调

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