Wheat stems overlapping in a field in Zibo

@Cyanisok

We interact with the world: we speak, we explore.

01 · Blog

Selected Posts

Notes on systems, AI, research methods, and visual practice.

01Fine-Tuning on Qwen3-1.7B: What Worked and What BackfiredA hands-on journal of teaching a 1.7B model to talk the way I actually talk — covering dataset construction, SFT, DPO, eval discipline, and the honest ceiling of a small model.02Full Stack Development NotesNotes from building a full-stack NL2SQL agent project — React, Next.js, frontend-backend separation, and JavaScript fundamentals.03Reflections on Balancing Learning & Creation in the Pre-AGI EraThe rise of generative AI leads to an influx of low-effort output — an observational fact. After gaining access to highly productive tools, people often struggle to steer these tools by using their 'own' knowledge04Building an NL2SQL Agent from ScratchReading through an open-source NL2SQL project, I rewrote the core pipeline in Python: ReAct loop, semantic layer reverse-matching, SQL AST guardrails, and SSE streaming. This post documents the design decisions and actual code for each layer.05Learning dbt from ZeroMy notes on learning dbt from absolute zero: what it is, how a project is structured, views vs tables, sources, and Jinja.
View all 16 entries

02 · About

Taste matters
not only in art
but also in technology.

Hello there behind the screen. You may call me Cyan.

If you are also attuned to the flow of time, you would likely agree that the essence of all greatest things lies in a kind of "serenity", or a "constant state free from constraints".

This draws me to voice my emotions from the deepest reaches of the universe, hoping to radiate a glimmer of light and warmth within the utter darkness.

And that is why we are still documenting these days.