Skip to main content

Articels

2024

From paper to source code: a detailed explanation of the RAG algorithm
·9743 words·46 mins
RAG LLM AI
This article aims to explore the architectural design and specific code implementation of the RAG algorithm through the interpretation of papers and source code. This article mainly discusses GraphRAG, LightRAG and RAPTOR RAG, and also mentions Contextual Retrieval proposed by Anthropic and the evaluation method of the RAG algorithm. In the end, it is recommended that different methods be selected according to the size of the knowledge base document.
Rerank Models
·2502 words·12 mins
search AI RAG
With the popularity of the Transformer architecture, many Embedding and Rerank models are now based on this architecture. Taking this opportunity, we will sort out the process and history of the research, and take stock of the architectures adopted by several well-known Rerank models and the companies that developed them. Finally, we will return to the topic and briefly discuss whether Rerank should be used in RAG scenarios.
HTTP/2 and CONTINUATION Flood
·2348 words·12 mins
network security vulnerability HTTP/2
This article mainly introduces the HTTP/2 protocol and its CONTINUATION Flood problem. The article shows how to parse the Frame structure in Http2-related code through the golang.org/x/net source code, and analyzes in detail the three security risks of the CONTINUATION Flood attack and the corresponding solutions.
Mixed Expert (MoE) Model Notes
·1388 words·7 mins
MoE Large Model AI Paper Reading
This article mainly sorts out the relevant concepts of the hybrid expert model (MoE), and introduces the architectures and optimization methods of several open source MoE models, such as GShard, Switch Transformers, DeepSeek-MoE, and LLaMA-MoE. The characteristics and optimization methods of these models are also introduced.

2023

Vector similarity search methods
·3244 words·7 mins
Search algorithm RAG Vector database
This paper provides a detailed introduction to various vector similarity search methods, such as KD trees, IVF inverted indexes, HNSW and LSH. It provides a detailed introduction from data structures to algorithm implementations by analyzing the specific implementations in the source codes of Annoy, Faiss, PGVector and FALCONN.
Java & Go thread model comparison
·5397 words·11 mins
Java language Go language thread management source code analysis
This paper compares in detail the threading models and scheduling mechanisms of the Java and Go programming languages. It analyzes their specific implementations and design ideas from a source code perspective, especially the 1:1 correspondence between Java’s Thread and operating system threads, and the n:m relationship between Go’s goroutine managed through the GPM model.
Hugo + umami Blog Statistics Panel
·1222 words·6 mins
Blog Setup Hugo Umami
This article describes in detail the specific configuration steps for multiple Umami deployment solutions, and also briefly explains the advantages, disadvantages and applicable scenarios of each solution. The article focuses on the method of configuring Umami under the Hugo framework, including the specific steps for adding Umami tracking code to different themes, as well as some advanced configuration options such as the TrackEvent and Tracker parameters.
Exploring the built-in Spring-Boot server
·1338 words·3 mins
Spring Framework Java language source code analysis
This article explores in detail the principles and use of the web servers built into Spring Boot (including Tomcat, Jetty, Undertow, and Netty), with a particular focus on the differences between the Servlet and Reactive frameworks and their implementations in Spring Framework 5.0, including the WebServer interface and the concrete implementation of WebServerFactory.
Why can Spring 'inject itself'?
·1142 words·6 mins
Java language Spring Framework source code analysis
Take a look at the Spring source code and PR records to find out which version and commit introduced the support for Self-Injection.
Go language pointer performance
·1620 words·4 mins
Go language source code analysis memory access
The difference between Go value objects and pointer objects in terms of storage, performance and usage
Netty source code analysis and memory overflow ideas
·1570 words·8 mins
source code analysis Java language Netty
It mainly introduces the use and inheritance relationship of Buffers in Java NIO, Netty and Spring Reactor.

2022

A brief introduction to blog building
·754 words·4 mins
Blog building Hugo
This article details the process of setting up a blog using Hugo and a Docker image, including the selection of different image versions, the use of the Blowfish theme, custom icons, the integration of comment plugins, the deployment of GitHub Pages, and the integration of the Umami statistics panel.