Skip to content
View hiyufan's full-sized avatar
  • FuZhou
  • 14:14 (UTC +08:00)

Highlights

  • Pro

Block or report hiyufan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
hiyufan/README.md

陈雨钒 · Chen Yufan

系统与 AI 基础设施  ·  Systems & AI Infrastructure

写编译器前端的补丁,也修别人的认证漏洞。
Patching compiler frontends, and fixing other people's auth bypasses.


Rust Go Python TypeScript Vue React
PyTorch Apache TVM Linux Docker Git

profile views

🔧 开源贡献 · Open Source

给自己在用的项目提交的修复。链接指向 PR —— 7 个已提交,其中 4 个已获维护者批准。 Fixes sent to projects I use. Seven pull requests, four approved by maintainers.

Apache TVM  13.7k ★  深度学习编译器

#20245  ✅ 已批准 approved  — 修复 Relax PyTorch 前端 flatten 的参数校验缺陷。越界的负 start_dim 不在使用处报错:它被归一化成 -1,把多余的一维折进乘积,发出形状错误的 reshape,直到下游才失败。补上范围与顺序校验、0 维张量支持和回归测试。

Validate flatten dims in the Relax PyTorch frontend. An out-of-range negative start_dim silently computed a wrong shape that only failed further downstream in reshape. Added range and ordering checks, 0-d input support, and regression tests.

#20254  ✅ 已批准 approved  — torch.sort / torch.argsort 返回 int64 索引,前端却发 int32。同文件的 _topk 已经显式覆盖了同一个 int32 默认值,说明这是遗漏而非约定;前端支持的其他索引类算子(argmaxargminmax(dim)median(dim)bucketize)也都是 int64。一张导入图会因此对同一种值带上两种索引 dtype。

torch.sort / torch.argsort return int64 indices; the frontend emitted int32. _topk in the same file already overrides the identical default, and every other index-producing op comes out int64 — so one imported graph could carry two index dtypes for the same kind of value.

#20255  ✅ 已批准 approved  — Relax 的 reshape 把目标形状里的字面 0 读作"沿用输入对应维度"(ONNX allowzero=0 语义),PyTorch 读作真实的零维。空张量上的 reshape / view / flatten / unflatten 因此报错或静默给出错误形状flatten(0,3) 上恰好正确,正是这个巧合掩盖了其余情形。经与 torch 逐例对照 2132 组静态形状 + 63 组符号形状验证。

Relax's reshape reads a literal 0 as "copy the input dimension" (ONNX allowzero=0) where PyTorch reads a real zero-sized one, so reshape / view / flatten / unflatten on empty tensors raised or silently produced a wrong shape. Verified against torch across 2132 static and 63 symbolic shape cases.

Feast  7.2k ★  Linux Foundation AI & Data

#6801 — 修复 RBAC 完全绕过漏洞(公告 GHSA-h543-6vgr-fm36issue #6785)。两个 token 解析器都从未验签的 JWT 解码中授予完全信任的内部身份,而对比值硬编码在 Feast 官方 Helm chart 里 —— 任何能访问到服务的人都能伪造它,跳过该服务上所有项目的所有权限检查。改为对内部 token 签名、密钥移入 Kubernetes Secret 且不提供默认值、未配置时 fail closed。

Fix an RBAC bypass. Both token parsers granted a fully trusted internal identity from an unverified JWT decode, compared against a value hardcoded in Feast's own Helm chart. Signed the internal token, moved the secret to a Kubernetes Secret with no default, and made an unset secret fail closed.

#6803 — 修复离线服务器的项目上下文泄漏。set_current_project 设置的 ContextVar 从不重置,一个请求的项目会残留到同一 worker 上后续未指定项目的请求里。改为 try / finally 配对重置,覆盖 _call_apido_get 两条路径。

Fix a project-context leak in the offline server. The ContextVar set per request was never reset, so one request's project persisted into later requests on the same worker. Paired it with a finally reset on both entry points.

kornia  11.3k ★  可微分计算机视觉

#4140  ✅ 已批准 approved  — 统一 resize / rescale 的零尺寸语义。它们对零尺寸输出抛裸 ZeroDivisionError,而 warp_affinewarp_perspectivecenter_crop同样的参数返回空图像。空结果还需保持在自动微分图上 —— 否则一个退化成零尺寸的 batch 元素会静默断开梯度,这是 review 中提出、复现并修掉的。经 512 组形状 / 精度 / 插值模式组合验证,对合法输入数值零影响。

Align zero-size semantics in resize / rescale with the warping ops, and keep the empty result attached to the autograd graph so a batch element that degenerates to a zero-sized output still contributes a zero gradient. Verified numerically inert across 512 shape / dtype / interpolation combinations.

#4143kornia.core.__all__kornia.color.__all__ 列出了模块里并未绑定的名字,from kornia.core import * 直接抛 AttributeError。既有的 API 面守卫看不到这类问题 —— 它比对的就是 __all__ 本身,绑定丢失的名字仍然"在列"。恢复绑定、清理遗留条目,并加了一条覆盖全仓库每一个声明 __all__ 模块的解析守卫。

kornia.core.__all__ and kornia.color.__all__ listed names that were not bound, so import * raised AttributeError. The existing surface guard could not see it — it compares __all__ against itself. Restored the bindings, dropped the leftover entry, and added a resolve check across every module that declares __all__.


🛠 项目 · Projects

项目 说明 技术栈
mimo-tui AI 编码代理,5.7 MB 单二进制、零依赖
支持 DeepSeek / MiMo / OpenAI / Claude
Rust
contest-ops AI 驱动的竞赛管理平台 Go React Python
aether-guide 景区 AI 数字人智慧导览系统
RAG 知识检索 · 多模态定位 (VPS / QR / 对话) · Live2D 数字人流式对话
Python FastAPI Next.js
campus-muse 校园数字人导览系统
GPS 地理围栏状态机 · STT→LLM→TTS 管线 · 语音问答闯关
Python Vue Live2D
yf-quant 🔒 基于 Qlib 的美股量化研究平台
日频研究工作流:元数据存储、确定性校验、实验报告、Qlib 适配层
Python Qlib
bookloop 高校二手图书共享流转平台 Go
edubridge 高校教务系统中间件 Go Vue

📚 正在学 · Currently Learning

RAG · 检索增强生成
分块与召回策略、重排序、评测方法

LLM 推理引擎
vLLM / SGLang 的调度与显存管理

深度学习编译器
TVM Relax、算子融合与代码生成


📊 数据 · Stats

🐍 贡献图 · Contribution Graph

contribution snake animation

📮 联系 · Contact

Email GitHub

欢迎交流 AI 基础设施、编译器与开源协作
Happy to talk about AI infrastructure, compilers, and open source.

Pinned Loading

  1. apache/tvm apache/tvm Public

    Open Machine Learning Compiler Framework

    Python 13.7k 4k

  2. feast-dev/feast feast-dev/feast Public

    The Open Source Feature Store for AI/ML

    Python 7.3k 1.4k

  3. kornia/kornia kornia/kornia Public

    🐍 Geometric Computer Vision Library for Spatial AI

    Python 11.3k 1.3k