论文阅读: REALM: Retrieval-Augmented Language Model Pre-Training

最近打算系统性学习 RAG 技术,开始看起了相关文献,目前的思路是按照 ACL 2023 Tutorial 的 Roadmap 过一遍。本篇是对早期的 RAG 技术的 REALM 的介绍

Info

本文采用的模型是 Masked LM 的 BERT,还不是 LLM。因此本文后续的部分内容需要你对 BERT 有一定的了解,包括 BERT 的预训练过程、BERT 微调等

使用 OCaml 中的 Polymorphic Variant 类型

我已经学习并使用了 OCaml 有段时间了,但是一直搞不清楚 Polymorphic variant 有什么用。最近在看 Yojson 的时候又看到了这种用法,一番搜索之后发现并没有看到关于 Polymorphic variant 的比较好的文章(官方介绍 在我看来有点难懂),只看到一些相关的回答12。经过仔细学习之后,我决定写一篇文章,希望能对你有所帮助 :)

在 Neovim 里面使用 vim-fugitive 的工作流

最近在使用 Git + Neovim 的时候,发现我的工作流还是有一些不那么顺畅的地方。我习惯性退出 Neovim,然后在命令行写 Git 相关的命令,并且在提交代码变更前我习惯用 delta 查看 diff 信息。为了减少要打的字符,我还开启了 Oh My Zshgit 插件,这样我就可以用一堆缩写了,比如 ga = git addgcmsg = git commit -m

@dataclass 简明教程(Python3.7)

Python 的 tuple 很好用,它可以让我们快速地将不同类型的值封装在一起,作为一个整体进行管理,自带的排序规则也十分直观,简单易用。但实际用下来我发现,一旦 tuple 的字段比较多,我就被迫要自己写一下注释注明一下不同位置的字段的具体含义是啥,比如