技术笔记
工程实践、系统设计、编程语言和技术原理的长期笔记。
-
深入浅出 GraphRag[1]知识图谱生成
前言 GraphRAG 是微软开源的一个基于大模型 + 知识图谱回答用户问题的开源项目。相同传统的 RAG,它的创新点主要有两个:1. 提出了一套完整的利用大模型生成知识图谱的方案。2. 基于 map reduce 的思路支持对数据集全局类型的问答。简单来说,GraphRAG 工作流程主要分为两步:1...
-
ChatGPT 文本生成的工程原理分析与代码示例
之前 ChatGPT 刚出来的时候大家都在研究 GPT 模型,有很多的科普文章都说 GPT 模型其实就是在做文字接龙,根据前面的文本预测下一个字。这样通俗的理解确实没有什么问题,但是作为程序员我们肯定不能满足于这么表面的理解。本文主要就是要从工程角度对大模型的文本生成过程的原理结合代码进行分析。值得注意的是本文...
-
机器学习基础之梯度计算:Pytorch 代码与公式
我们看教科书里面讲批量梯度下降的算法数学公式都是类似这样的: (w,b)←(w,b)−η|B|∑i∈B∂(w,b)l(i)(w,b).(\\mathbf{w},b) \\leftarrow (\\mathbf{w},b) \\frac{\\eta}{|\\mathcal{B}|} \\sum\ {i...
-
ChatGPT 之 GPTs 的使用与分析:5 分钟构建一个天气画报
在 GPTs 推出之后,我用它花了 5 分钟就配置了一个生成天气画报的 GPTs,目前看 GPTs 在提升 AI 应用研发效率上面还是做的非常好的,但并没有超出期望,它只是一种研发范式的创新,并没有带来质的变化:以前 Langchain+GPT4 做不到的事情,现在也做不到。 在这个功能出来之后,有人就说这个功能干死了一...
-
统计学与机器学习交汇点:线性回归的数学基础
本文详细解析了线性回归的数学含义,包括“线性”和“回归”两个核心概念。线性主要涉及可加性和齐次性,这两个性质在数学、统计学乃至软件工程等多个领域都有广泛应用。回归则是一种预测数值型输出(因变量)的方法,基于一个或多个输入(自变量)。线性回归结合了这两个概念,通过找到最佳拟合直线来进行预测。该模型具有...
-
ChatGLM3 的代码解释器(Code Interpreter)实现原理
原理简介 在之前的文章《ChatGLM3 的工具调用(FunctionCalling)实现原理》里面,我们介绍了 ChatGLM3 工具调用的原理,其本质就是让大模型通过微调学会根据 prompt 中的函数的定义学会下一步应该调用哪个函数,然后我们解析大模型预测的文本结果去执行对应的函数,最后再把执行的结果...
-
ChatGLM3 的工具调用(FunctionCalling)实现原理
ChatGLM3 终于带来了跟 ChatGPT 一样的工具调用能力,通过它的源码和样本数据,我们可以了解到让大模型学会使用工具的方法原理。官方例子中的疑问 我们先跟着官方例子的步骤一步步走。构建 System Prompt 这里以两个工具调用为例,首先准备好要构建的数据的描述信息。其实就是定义好我们能...
-
从零开始写数据库:500 行代码实现 LSM 数据库
前言 LSM Tree 是很多 NoSQL 数据库引擎的底层实现,例如 LevelDB,Hbase 等。本文基于《数据密集型应用系统设计》中对 LSM Tree 数据库的设计思路,结合代码实现完整地阐述了一个迷你数据库,核心代码 500 行左右,通过理论结合实践来更好地理解数据库的原理。SSTab...
-
SQL 查询引擎原理浅析
SQL 的诞生 SQL 英文全称是 Structured Query Language,中文名即结构化查询语言,是一门专门用来查询数据的声明式编程语言。 我先解释一下声明式语言的概念,编程语言有两个分类:命令式:手把手教机器做事情 声明式:告诉机器任务,让它自己想办法解决 举个例子,假设你家里有机器人,...
-
对感知机算法的一些理解
机器学习假设了对于某个问题存在一个上帝函数,给定一个输入就能得到一个确定的输出,计算机可以通过样本数据在假设的函数空间中找到一个近似上帝函数的函数,我们可以利用这个近似函数来进行预测。 现实世界的问题大体可以分为两类:分类和回归。分类问题就是对一个东西判断它所属的类别,例如判断一张照片里面的动物是...