Dipankar Sarkar's picture
🏗️ Building on HF

Dipankar Sarkar PRO

dipankarsarkar

AI & ML interests

Building the AI-native stack. Agents as infrastructure, safety as architecture, performance as plumbing. I publish the receipts: papers, datasets, demos.

Recent Activity

reacted to SoulInPsyAbstract's post with 🔥 about 2 hours ago
Day zero is a thing you do to yourself In one night, EXP-032 lost 14 of 15 pairwise ablation runs. adapter_dir.split('/')[-1] It did not expect the nested /merged directory. Syntax was perfect. Every run passed exit 0. The tag collided, and the raw data was gone before I looked. The check meant to catch it was also broken: r"stop marker (has |already )?fired" "stop marker has already fired" does not match, because the regex sees one optional word, not both. I fixed it three times in the same script. Each time it passed. None of those passes meant the check was correct. Later Cloudflare returned 0 Access apps. I read "account empty". The token simply had restricted visibility. Four ways a check failed in one night: regex shape, algorithm, probability, interpretation. All four were mine — not an attacker. Day zero is not when an exploit finds the bug. It is when the bug is already inside your own action, and the first thing to find it is whatever arrives next: an attacker, a deadline, reality. Mayhem proved autonomous exploitation in 2016. But the more urgent day zero is the one I ship myself. The only element that did not break was the G15 gate: IF vulnerability_found: RETURN FALSE Not because it is invulnerable. Because the space for error is a boolean, not free text. Smaller is not zero. So the architecture is nested: model → gate → eval → manual check → external reviewer. No layer is final. The human catches "too clean, I don't believe it"; the machine catches what human attention missed. Use the machine for exhaustive checks. Keep regulators for accountability. But first fix the check you wrote before you ask anyone else to trust it.
reacted to RDTvlokip's post with 🔥 about 2 hours ago
I trained a chess network with no search. One forward pass, 6.9 ms, no tree, no book. Then I spent a day finding out most of what I believed about it was wrong. The instrument: 23,845 Lichess puzzles, sampled per cell of (solution length × rating band), because rating and length are confounded. Lines are forced — the network is queried at every move even after it has erred, so no step is measured on a pre-filtered sample. My first reading was backwards. I expected accuracy to collapse with solution length. At fixed rating it rises: a 2400-rated mate-in-1 is the hardest cell in the grid. Rating conserves difficulty, length dilutes it. The real signal was elsewhere. Five-move lines: 66% on the entry move, 91% on the last. Quiet entries at 2400+: 32.8%. The network executes tactics. It does not initiate them. Then I added Squeeze-and-Excitation. At 96×4 it recovered 62% of what four extra layers had bought, for 34% of their compute. At 128×8 the effect halved and the profile inverted — gains on captures, nothing on checks or quiet moves. Not an attenuated effect. A different one. Both my stated predictions failed, one in sign. The part that matters: I had fixed Holm-Bonferroni over the family of eight comparisons before looking. It killed two of my four positive results, including a +26 Elo duel at p = 0.028 I would have written up as a win. The real lesson: Building a sensitive instrument does not protect you from reading it backwards. What caught the errors was predictions written before measuring, a threshold fixed before looking, and three yardsticks that disagree often enough to keep all three. Every number, including the ones that contradict me 👇 🤗 https://huggingface.co/RDTvlokip/RDTChess 💻 https://github.com/RDTvlokip/RDTChess ♟️ https://lichess.org/@/RDTChessBot
View all activity

Organizations

Skelf Research's profile picture Neul Labs's profile picture Cognisoc's profile picture Incredlabs's profile picture