I do ML research and maintain open source. The research is about making open models cheaper to train and run: model execution, quantization, pruning, speculative decoding and KV cache placement, with the failed arms published next to the wins. Papers and notes are at avifenesh.ai/research, articles at avifenesh.ai/writing.
On the open-source side I build agentsys (1k+ stars), the agent-sh plugin system for AI coding agents; computer-use-linux, native Linux desktop control for agents; agnix, a linter and language server for agent configs with 30k+ npm downloads a week; and glide-mq, a Valkey message queue for Node.js with 130k+ downloads a week. I maintain Valkey GLIDE and its clients, valkey-skills and valkey-review-bot. I also build in-memory data systems at AWS ElastiCache, and run tiyuvta, a research lab that helps companies run open models on their own hardware or cloud account.
Issues, questions, and counterexamples are always welcome.
Built and maintained with a lot of agent tokens and hours. If it saves you time, sponsoring helps keep it going.
- Released at tiyuvta: the beta gate (paper: Beta Gate: Shorter RL Reasoning in Qwen3.5 Without Negative Eigenvalues), a zero-initialized gate on the Gated DeltaNet write strength β in Qwen3.5, trained with LoRA under length-penalized RL (adapters). At 4B, with lr 2e-5, 150 steps and a 512-token training cap, it reasons 48% shorter than LoRA on MATH-500 and lifts anytime accuracy (area under the accuracy-budget curve) from 0.786 to 0.852, where a LoRA with 1.9% more parameters reaches 0.792. On 130 fresh AIME and AMC problems read once it beats LoRA by 0.110 anytime accuracy. Negative eigenvalues turned out not to be needed for the effect. It follows a negative-eigenvalue gate retrofit that added +48 points at 4B and +43 at 9B on state tracking at 4x the training length (record); the 27B work is paused.
- Also released: Layby, KV cache placement for idle LLM sessions by when they come back. A cost rule with no fitted constants and Layby-Dwell, an open 421M return-time model; adapters for vLLM and SGLang and the open ReturnBench benchmark. On a slow disk with Qwen3-8B it cuts p95 time to first token to 0.59 of an LRU CPU tier with the median unchanged, half of LMCache's best setting; with GLM 5.3 Flash on a shared disk, 0.79 at p95 with p99 held at the baseline, where writing everything to disk makes p95 1.35 times worse. Paper on arXiv to follow. Details at avifenesh.ai/research.
- memra: tiyuvta's from-scratch Rust + CUDA research engine for RTX PRO 6000 Blackwell and RTX 5090, an instrument behind the studies below. Safetensors is the tuned path, GGUF stays supported, and a mechanism that wins on one card and loses on the other becomes a per-device default rather than a compromise. On crates.io with prebuilt binaries.
- hqmtp: MTP draft-head lab, concluded. Function cuts (pruning, low-rank, distillation) pay a 10–19-point off-distribution tax that fidelity cuts don't; the zero-training trimmed-vocabulary recipe won at 1.8–2.7× end to end. The negative results stay in the ledger.
- recipe-lab: layer-loop weight sharing + ε=λ/(N√L) residual scaling, combined for the first time and tested from zero in 11 pre-registered rounds. In the data-constrained regime the looped model beat FLOPs-matched vanilla in all three mixer families (attention, pure SSM, and hybrid; seven paired runs, zero sign flips), with 26–34% fewer parameters. Rule isolated: loop the state-mixer, never the retriever.
- mem-retrofit: grafted a product-key memory layer onto a stock dense 4B and ran it against LoRA over sequential updates. The retrofit is free at lr/10; the published forgetting advantage failed 12/12 confidence intervals.
- More studies with receipts: fixed-compute-frontier (a preregistered kill-gate ledger, ~84 theory lanes) · gemma-expert-atlas (26B MoE expert surgery, 3,840 experts traced) · block-routed-swiglu (near-free kernel, refuted capability) · moe-lab · assumption-excavator.
- Working papers: small-vocabulary MTP heads · prune, heal, quantize. Methods, failed arms, and evidence in the open.
- Articles: How AI workloads changed the queue I was already building · Your AI agent configs are probably broken (and you don't know it).
- Valkey and its ecosystem. I maintain Valkey GLIDE, the official multi-language client (Rust core, Java/JNI, Node/N-API), with its C++, C# and Ruby clients and the GLIDE docs, and valkey-skills, the official AI skills for the ecosystem, which I started. I contribute to Valkey itself, and a good part of my open-source time goes to the people around it: the clients team, talks, and helping the people who run it.
- valkey-review-bot: the automated reviewer on Valkey and Valkey GLIDE pull requests, which I built and maintain. It checks a change against a real checkout, builds and runs tests when that helps, and posts inline findings with a merge-risk and backport verdict. It never approves; that stays with maintainers. So far it has reviewed 600+ pull requests.
- agent-sh, my org: open tools for agent-assisted development across Claude Code, Codex, OpenCode, Cursor, and Kiro, led by agentsys, agnix, computer-use-linux and agent-workspace-linux.
- glide-mq: Node.js queue on Valkey Streams with a Rust N-API core, plus adapters for Hono, Fastify, Hapi, NestJS and a dashboard.
- Also around: RustOwl (runtime, memory, and CI work).
Open fixes and features:
- vLLM: NVFP4 fused-shard weight scales, GLM-5.x NVFP4 MLA weight loading, and client-executed tool search.
- SGLang:
- Inference: SM120 DeepSeek V4 decode dispatch, long FP8 prefill on RTX PRO 6000, MiMo ModelOpt mappings, and deferred NVFP4 scale layouts.
- HiCache: host Mamba capacity and per-pool metrics and device-only SWA prefix matches.
- Tool calls and diagnostics: strict DSML validation, Qwen3Coder JSON repair, and credential redaction.
- Routing: a shared Valkey placement index and event replay, worker liveness and failover, with a demo under load.
- llm-compressor: activation caching for validated dataclasses.
- LMCache: binary buffers and safe read failures in the local disk backend.
- llama.cpp: imatrix-aware NVFP4 quantization.
- xLLM: optimizer offload with fp32 masters and AdamW state in host memory and flash-attn 2
num_splitspass-through.
- agnix: linter and language server for AI agent configs: 757 rules with autofixes, a GitHub Action, an MCP server, and editor plugins.
- tacit: local or shared fact memory for coding agents in plain Markdown and git, with lexical FTS5 retrieval, git-derived facts, and source-grounded verification.
- computer-use-linux / agent-workspace-linux / agent-chrome-bridge: Linux desktop control over MCP, isolated agent-owned desktops, and a shared local Chrome bridge for Claude Code and Codex.
- parlar: voice mode for Claude Code and Codex. You talk to a running session, idle or mid-work, and it answers out loud. Local CPU only: VAD, Phonon-2 recognition, Kokoro speech. On npm and crates.io.
- agentsys: the agent-sh plugin set (workflow, review, ship, deslop, perf) for Claude Code, OpenCode, Codex, Cursor, and Kiro.
- harness tools:
read,write,grep,glob,bash,batch,webfetch,websearch,lspandskilltools built for LLM callers (@agent-sh/harness-*on npm,harness-toolson crates.io), plus@agent-sh/harness-web-mcpfor keyless web search and fetch over MCP. - research-skills: two AgentSkills for ML systems research: write and check the arXiv paper (
paper_lint.py), and build, audit and release the code, benchmark and model repo behind it (repo_audit.py). - revuto: local PR reviewer that works with any model and learns each repo from its PR history and maintainer feedback. It reviews my own repos.
- Codex Desktop for Linux: contributor (120+ commits) to the unofficial Linux build of the ChatGPT/Codex desktop app. Linux Computer Use, Read Aloud and conversation mode, the in-app updater, launcher hardening.
- Valkey: core contributor; sync-from-replica replication in review. On the side: CRIU copy-on-write live-migration research, under 50 ms of freeze while migrating a 200 GB loaded instance.
- ferrings: io_uring TCP transport for Node.js with a Rust N-API core. 2.5x Node
httpthroughput and 37-57% fewer syscalls per connection in the published bench. On npm. - FlowFabric: durable-execution engine in Rust for Valkey, Postgres, and SQLite: lease-safe workers, waitpoints, budgets.
- layout-audit: DWARF memory-layout analysis: padding, layout diffs, size budgets for C/C++/Rust/Go.
- scrump: format-aware secret scrubber for binary capture artifacts: perf.data, core dumps, nsys traces, JFR.
- ocaml-valkey: OCaml 5 + Eio Valkey client, published on opam.
tiyuvta is my research lab. We help companies run open models on their hardware or cloud account. The work includes model and hardware assessment, deployment and serving-engine optimization, fine-tuning and evaluation, and cloud setup. We compare options on your workload and budget, then agree the deliverables, handover and support.
Our research in model execution, quantization, pruning, speculative decoding and Hebrew models informs that work. See the services and discuss your project.
The lab's models are on Hugging Face: NVFP4 builds of GLM, DeepSeek, MiMo, Qwen and DictaLM, MTP draft heads in GGUF, and Phonon-2 in ONNX.
- Talks: Inside Valkey GLIDE on the AWS Developers Podcast · Glide into resiliency on Let's Talk About Data
- Writing: avifenesh.ai/writing · answering on Stack Overflow
- Hugging Face: Avifenesh · tiyuvta
- 📫 aviarchi1994@gmail.com · LinkedIn · X
If something here saved you time, sponsoring helps me keep doing it.






