工作

68 篇文章

全部文章

2026-09-20

ONNX项目报告

项目提交人:李澍 设计与实现 ONNX动态维度表示 之前版本的Shape本质上是 vector , 所以它只能保存具体的整数,无法直接保存”batch”,或者”unknown”这样的语义,所以我在前端增加了一层表示。 例如输入为: [ "batch" , 3, ?, 2] class DimensionKind ( str , Enum): FIXED =…

学习笔记C++PythonAI infra
↗
2026-09-09

AI 编译器项目实现笔记

写一个做项目时的笔记,记录一下 ONNX 这是一个需要调用的python包,它的作用是把 PyTorch、TensorFlow 等框架训练出来的模型,转换成一个统一的计算图格式 .onnx,然后交给不同推理后端运行。 一个ONNX模型大概可以理解为: ModelProto │ └── GraphProto │ ├── inputs │ ├── outputs…

学习笔记
↗
2026-07-20

nano-vllm 学习笔记-投机解码EAGLE

做一下投机解码这一块的笔记,感觉这一块还是很重要的,所以就自己实现一下。 投机解码主要的逻辑就是我如果线性的一个个的去求decode出来的token,那么GEMM就会退化成GEMV,因为是流水线型的。为了缓解这种情况所以就采取了投机解码的方式,意思是我拿一个小模型一次性的多生成几个token,然后统一的再去验证它。 这里我采取的是复现EAGLE这个方法,它是…

学习笔记
↗
2026-07-17

nano-vllm 学习笔记-量化

这里我打算围绕着AWQ去做,然后我发现AWQ在vLLM里面实际只支持FP16这个格式,如果要支持Qwen3和Llama里的BF16的格式,需要再添加一个接口做awq_marlin,这个再vLLM中也是实现了的。 考虑到模型的复杂性和我实际的工作量要求,我打算先做出来最基础的AWQ,然后在跑模型的时候强制转换格式。然后把量化这一块搞明白的差不多的时候,我再实现…

学习笔记
↗
2026-07-12

nano-vllm 学习笔记-Llama

代码阅读 因为我是新手,所以先从代码阅读开始 llm_engine.py 调用链如下: LLM.generate() -> add_request() -> Sequence -> Scheduler.add() -> while not finished: -> step() -> Scheduler.schedule() -> ModelRunner.c…

学习笔记
↗
2026-05-19

vLLM学习笔记-显存管理之PagedAttention

在大语言模型(LLM)的自回归生成(autoregressive decoding)过程中,每一步都会生成一个 token,并将其作为下一步的输入。为了提升推理效率,避免重复计算注意力机制中的 Key 和 Value 向量,系统会将这些中间结果缓存起来——这就是 Key-Value Cache(KV Cache)。 然而,传统的 KV Cache 管理方式存…

学习笔记vLLMAI_Infra
↗
2026-05-19

vLLM学习笔记-调度器如何实现

调度器 增加请求 我们可以把 vLLM 的调度理解为以下几条规则: RUNNING 请求优先:vLLM 不是简单地谁先来谁先执行。在每个 scheduler step 中,调度器会先尝试继续调度已经处于 RUNNING 状态的请求。这样做的目的是让已经进入执行流水线的请求持续推进,减少生成过程中的停顿。这里的 RUNNING 不只表示已经开始输出 token…

学习笔记vLLMAI_Infra
↗
2026-05-18

vLLM学习笔记-Worker/Executor详解及协作

客户端到 EngineProc 的方向: 客户端使用 ROUTER 套接字发送请求。 EngineProc 使用 DEALER 套接字连接并接收请求。 ROUTER/DEALER 组合适合“前端 client 与后端 engine 之间的异步通信”:前端可以根据DEALER 的 identity 将请求定向发给对应的 EngineProc,而 EngineP…

学习笔记vLLMAI_Infra
↗
2026-05-09

vLLM学习笔记-引擎模块和流式执行

离线推理:LLMEngine 在线服务:AsyncLLM ZMQ通信 AsyncLLM负责从客户端接收输入请求,并将其转发至底层实际执行推理任务的引擎组件,随后以异步方式获取执行结果。二者之间的通信依托于 ZeroMQ(ZMQ)实现。 REQ/REP通信模式 client 端将以同步阻塞的方式等待 server 端的响应回复。这种模式要求通信双方严格遵循一问…

学习笔记vLLMAI_Infra
↗
2025-10-24

Systema

Title Systema: a framework for evaluating genetic perturbation response prediction beyond systematic variation Abstract 什么是系统变异 Systematic variation:the consistent transcriptional…

论文生物学习笔记类算法
↗
2025-10-24

Optimal Transport

# 最优传输 如何用最少的代价将一个质量分布转为另一个质量分布 ## Monge Let μ and ν be two measures in $\mathbb{R}^d$. The optimal transport problem by Monge is defined as $$\begin{equation} {\arg \min }_{T:{T}_…

论文生物学习笔记类算法
↗
2025-08-08

CellOT

Title Learning single-cell perturbation responses using neural optimal transport Abstract 本文一共干了三件事: predicting the scRNA-seq responses of holdout patients with lupus exposed to in…

论文生物学习笔记类算法
↗
2025-04-24

LazyVim学习笔记-安装LazyVim

感觉这个东西配起来十分的恶心,我打算按照 官方 的操作来做一遍。 一方面自己大四闲的要死,找点事做总是好的,另一方面网络上确实关于lazyvim的教程要么收费,要么浅尝辄止没有深入或系统的指导,所以我自己开个坑,希望能系统而全面的介绍在windows系统下的对于LazyVim和NeoVim的使用和书写方法。 当然我也没学过lua,若有不够严谨的地方多多包涵。…

代码NeoVim代码neoVimLazyVim
↗
2025-02-01

DeepST

DeepST: identifying spatial domains in spatial transcriptomics by deep learning Abstract DeepST can dissect spatial domains in cancer tissue at a finer scale. DeepST can not only e…

论文生物学习笔记类算法
↗
2024-12-06

scanpy数据使用笔记

Scanpy 是一个专门用于单细胞 RNA 测序 (scRNA-seq) 数据分析的 Python 库,它的核心数据结构是 AnnData (Annotated Data)。了解 AnnData 数据类型是使用 Scanpy 的关键。以下是对 AnnData 的详细介绍: 1. AnnData 的结构 AnnData 是一种基于矩阵的数据结构,专为处理大规模…

论文数据生物学习笔记类
↗
2024-12-06

scanpy数据使用笔记

Scanpy 是一个专门用于单细胞 RNA 测序 (scRNA-seq) 数据分析的 Python 库,它的核心数据结构是 AnnData (Annotated Data)。了解 AnnData 数据类型是使用 Scanpy 的关键。以下是对 AnnData 的详细介绍: 1. AnnData 的结构 AnnData 是一种基于矩阵的数据结构,专为处理大规模…

代码编程语言生物学习笔记类
↗
2024-11-21

STAGATE

STAGATE: Deciphering spatial domains from spatially resolved transcriptomics with an adaptive graph attention auto-encoder 主要利用了Graph Attention Network里面的方法,创建3D SNN时假设不同切片同一位置具有连续…

论文生物学习笔记类算法
↗
2024-11-11

SpaGCN

SpaGCN: Integrating gene expression, spatial location and histology to identify spatial domains and spatially variable genes by graph convolutional network. 主要利用了spage2vec方法对数据进行降维…

论文生物学习笔记类算法
↗
2024-10-28

深度学习学习笔记

泛泛的学习一下深度学习,主要基于的网站是 动手学深度学习 . 不要求自己学的多深入,毕竟也没人要求我去了解,主要是担心在研究生期间会用到这些知识,主要是一个了解与应用的过程。如果有必要,以后会补上《Deep Learning》这本书的读书笔记。 引言 什么是参数呢? 参数可以被看作旋钮,旋钮的转动可以调整程序的行为。 任一调整参数后的程序被称为模型(mode…

代码编程语言学习笔记深度学习
↗
2024-09-27

What_is_A_Cell_Type

从这篇开始我就正式接触科研了,对于每一篇文章都尽量做一个良好的学习。会针对分析、概括、思考、代码等等方便对文章进行学习。主要起到一个确保自己当下学懂和未来能够用到的作用。 不苛求形式,即使博客本身形式性就很强。我会尽量做到更新,或以博客记录,或者把自己的电子手写稿粘贴上来。如果对我的内容有疑问,欢迎批评与指正。

论文论文笔记生物
↗
2024-09-19

保研复试复习总括

本文针对保研复试进行总复习,对目前的自己针对机器学习、计算机组织,包括数学建模、ACM等等学科进行自己的理解和概括,以总述为主,内容复习为辅。 目的是为了在复试时更好的吹牛qwq。

代码学习笔记学习笔记
↗
2021-12-28

文件学习笔记

文件是什么 文件是指一组相关数据的有序集合,这个数据集有一个名称叫做文件名。文件可以是自己编制的,也可以是系统已有的。事实上我们已经多次使用了文件,例如源程序文件,目标文件、可执行文件、库文件等。 为了将结果保存起来,就需要使用文件。将数据以文件的形式存放在光盘、磁盘等外存储器上,可以达到重复利用、永久保存数据的目的。文件可分为普通文件和设备文件两种。通常吧…

代码编程语言学习笔记C语言
↗
2021-12-11

西电新生赛网络赛题解

持续六天的新生赛终于落下了帷幕,打了8道题,第21名,对于两年没有碰过oi的我来说已经是一个不错的成绩了,如果运气好的话还能水到一等奖,怎么说都血赚。 但不得不说的是,我这次的状态比两年前打CSPS要好太多了,如果以我现在的心理素质和之前的知识水平去打,那肯定是不同的结果了。 这次比赛原本想用Amentiraz这个昵称去打,但思来想去还是用了最开始的dsfl…

代码OI题解
↗
2021-12-02

DP

学了三天DP连个P都不会,总的来说就是寄了,每道题不看题解就做不来,试着做了做三道提高组难度的题,做出来了俩,另外一个没有思路。这俩题我都想出了大部分思路,但最后几步由于经验问题没想出来。做完后我以为我懂了,然后膨胀了,去挑战 低价购买 这道题。然后不出意外寄了。打算先不弄这个了,等以后在弄,先把之前写的贴上来吧。

代码OIDP算法
↗
2021-11-29

Tarjan

想当年高中组织活动的时候我还专门写过Tarjan的流程和证明,如今已经忘的干干净净,原来的代码也找不到了,只能现写了。 总的来说就是利用一个栈,将每个访问到的点push入栈,在寻找的过程中记录两个值,一个是dfn——它是第几个搜索到的,一个是low——它能衍生的点中dfn最小的值。如果一个点dfn==low说明它本身就是最小的点,把它及它栈以上的点全部pop…

代码OITarjan算法
↗
2021-11-29

LCA

LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。 ———来自百度百科 对于一棵树来说,我们为了求它的最近公共祖先其实思路和快速幂是差不多的,我们不能直接一个个的向上查找,这样会使时间复杂度爆表,我们应当以2^k的速率往上找,这样可以使其时间复杂度降为log级别。 不得不说luogu上…

代码OILCA算法
↗
2021-11-27

线段树

线段树是一种树状数据结构,它可以区间加减,区间乘除等一系列操作,用于处理那种可以合并状态的数据,在使用其3倍左右的空间的代价下使得其修改、查询、求区间和等等操作变得更加快捷。但与此同时,我们无法利用它处理类似于区间最长01序列此类问题,而且线段树代码冗长,其实很容易写错(也可能是因为我太菜了)。 我们将一组数据进行如下处理,每相邻的两个数据有一个父亲节点来记…

代码OI算法线段树
↗
2021-11-27

Dijkstra

Dijkstra算法用于解决单源最短路问题,假设起始点为S,在最开始我们可以知道S到某些点的距离,从中取出最小的一个,我们可以保证在我们取出这个最小值的时候不可能有任何路径可以更短的到达此点,,此过程使用了贪心的思想。每当我们找出一个这样的点就更新S到与此点相连的其它点的距离,我们每一次取点都保证取出的是最短的且未被访问的点,这就是Dijkstra算法。

代码OI算法Dijkstra
↗
2021-11-22

结构

结构的基本知识 结构是一个或者多个变量的几何,这些变量可能为不同的类型,为了处理的方便而将这些变量组织在一个名字之下。 结构可以拷贝、赋值、传递给函数,函数也可以返回结构类型的返回值,在ANSI标准中,自动结构和数组现在也可以进行初始化。

代码编程语言C语言结构
↗
2021-11-04

指针

指针是一种保存变量地址的变量。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。

代码编程语言指针c语言
↗
2021-10-03

插值算法

插值算法主要运用于在数学建模竞赛中,现有的数据极少,不足以支撑分析的进行,这时候就需要使用一些数学的方法 插值的作用,“模拟产生”一些新的但又比较靠谱的值来满足需求

代码数学建模数学建模插值算法
↗
2021-09-22

TOPSIS法

TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution) 可翻译为逼近理想解排序法,也称优劣解距离法 TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确的反映各评价方案之间的差距

代码数学建模TOPSIS数学建模
↗
2021-09-18

层次分析法

态度可以转变,生活却不可逆转。-学层次分析法有感 此文章用于记录我学习数学建模的十大模型中层次分析法的学习笔记与自己的理解,本文大多数是由清风老师的数学建模的指导归纳总结得到的,以备今后的数学建模。如果遇到了类似的题目可以尽快的找到相应的模型进行解决。 如果本文能帮助到其他阅读到此文章的同志,我也是不胜荣幸。 如果文章有所纰漏,也欢迎大家指出。

代码数学建模数学建模层次分析法
↗