views

Recent Posts

前后端类型对齐设计

> 这几天在写一个项目的前后端部分时,因为之前没定义好类型后面写得很痛苦,现在整理一下自己重构后采用的一些设计。 Service 只负责定义自己需要的 DTO,如: ```typescript interface FileUploadDTO { userId: string; folderId: string; fileBuffer: Buffer; fileSize: number;...

MongoDB 事务配置

MongoDB 的事务需要在副本集上完成。MongoDB 的事务操作依赖操作日志 oplog。这个日志包含了下面的信息: 1. 原子性的记录:事务中的所有写操作会被打包成一个原子性的条目写入 oplog。这意味着,这些操作要么全部被记录,要么一个也不被记录。这保证了事务的原子性。 2...

手写 Huggingface RAG 系统(3)——构建向量数据库与生成

有了前面的 Embedding 模型,我们就可以用这个模型将 chunk 内容转换成向量,然后构建向量数据库了。 在讲解具体构建过程前,我们简单介绍一下混合索引的概念。 > 最初的版本是没引入混合索引的,但是在使用 RAG 系统的过程中发现 `AutoModel` 这个模块的检索效果不太好,就引入了。 在检索向量时,以 `AutoModel` 为例,我们需要检索下面两类文档: 1. ...

手写 Huggingface RAG 系统(2)——Embedding 构建

完成分块之后,我们就需要对分块的数据进行 Embedding 了。为了让 Embedding 在 Huggingface Transformers 上的效果更好,我们使用我们 chunk 好的数据构造数据集,在 `jinaai/jina-embeddings-v2-base-en` 上进行微调。 微调后的模型上传到了...

手写 Huggingface RAG 系统(1)——数据预处理与分块

最近自己手写了一个基于 Huggingface transformers 英文文档的 RAG 系统,这里整理一下开发的过程。 所有的组件都是自己写的,Embedding 模型是基于分块后的文档微调 jinaai/jina-embeddings-v2-base-en 模型得到的。最终效果如下: <Image src={image_2025_11_27_11_47_52} alt="alt...

使用 MinIO 管理用户头像遇到的问题

在手写用户前后端的时候遇到了下面的问题:用户注册时头像上传是成功的,但是 User Profile 显示的是 fallback 的头像。在改了前端和其他的后端代码无果后,发现是 MinIO 的配置有些问题。 原本在 MinIO 中如下配置了预签名: ```typescript const sevenDays = 7 * 24 * 60 * 60; const url = await...

使用 Transformer 做简单的机器翻译

这个没什么好说的,就是对 Transformer 原论文的简单复现,下面贴一下 Colab Notebook: ```notebook src=/notebooks/Transformer_translator. html ``` 可以看到不论是训练速度还是生成结果(这里训练过程没有计算 BLEU 分数了,只是看了 Loss),Transformer 都优于我们之前用 Seq2Seq +...

文档的分层注意力网络

Hierarchical Attention Networks for Document Classification 这篇论文引入了一个分层的注意力网络:它使用结构化的注意力,先理解单词,再理解句子,最后理解整篇文档。 HAN 由下面的组件组成: 1. 单词序列 Encoder:使用 Encoder 对句子中的单词进行处理。这个和 Seq2Seq 中的 Encoder 类似。 2...

Luong Attention

全局注意力的概念在 Bahdanau Attention 笔记中已经介绍过了:在 Decode 过程中,每当生成一个词,Decoder 会查看 Encoder 输出的所有隐藏状态并关注自己需要的那个。Luong Attention 的这一流程如下: 1. 获取 RNN 的隐藏状态 $h_t$ 和 Encoder 所有隐藏状态 $h_s$。 2...

简单机器翻译实现

在复习了 Encoder-Decoder 后,自己搓了一个简单的机器翻译,用 30k 的 cmn-eng. txt 数据集训练的,下面简单讲解一下。 在开始实现之前,我们先定义一些 tag,这些 tag 能够让我们的模型更好地确认翻译的边界和方向: 1...