<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ai-naymul.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ai-naymul.github.io/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-11-04T13:59:05+00:00</updated><id>https://ai-naymul.github.io/feed.xml</id><title type="html">Naymul Islam</title><subtitle>Naymul Islam works on safety and evaluation for Bengali and other low-resource languages, and builds the systems that research runs on.</subtitle><entry><title type="html">my ruler was broken</title><link href="https://ai-naymul.github.io/writing/my-ruler-was-broken/" rel="alternate" type="text/html" title="my ruler was broken" /><published>2026-11-02T00:00:00+00:00</published><updated>2026-11-02T00:00:00+00:00</updated><id>https://ai-naymul.github.io/writing/my-ruler-was-broken</id><content type="html" xml:base="https://ai-naymul.github.io/writing/my-ruler-was-broken/"><![CDATA[<p>notes to myself. why i feel behind even on good days.</p>

<h2 id="the-ruler">the ruler</h2>

<p>you finish something. it is fine. you still feel bad.</p>

<p>in your head there is a better version of it. that better version is the ruler you hold yourself
against.</p>

<p>the ruler is bent.</p>

<h2 id="it-was-drawn-from-the-future">it was drawn from the future</h2>

<p>look back at a hard problem and it looks easy. you know the ending now. the you from back then did
not.</p>

<p>the ruler gets drawn after the fact and then held against somebody who was working blind.</p>

<h2 id="it-was-drawn-for-a-machine">it was drawn for a machine</h2>

<p>it assumes you decide to focus and then focus. getting into a good state is work on its own. the
ruler charges you nothing for it.</p>

<h2 id="it-leaves-out-the-boring-parts">it leaves out the boring parts</h2>

<p>the clean version of a day. no tiredness. no being stuck. no hour lost to your phone. that hour
happens every time and the ruler has no mark for it.</p>

<h2 id="it-does-not-record-the-wins">it does not record the wins</h2>

<p>i did something good last month. it took a normal amount of time. i felt slow the whole way
through.</p>

<h2 id="if-i-bend-it-back-will-i-go-soft">if i bend it back will i go soft</h2>

<p>imagine a button. press it and the guilt goes. you also stop caring about the work. i would not
press it. so the caring was never made of guilt.</p>

<p>picture a friend standing exactly where you are. you would tell them to ease up and you would be
right.</p>

<h2 id="where-the-mark-should-sit">where the mark should sit</h2>

<p>guilt is a punishment. you learn from punishment slowly. you learn faster when something good
happens too.</p>

<p>put the mark a little above where you normally land. not where a perfect person would land.</p>

<p>you will not wake up twice as good tomorrow. people move in small steps. the mark only needs to sit
one step up.</p>

<p>clear it often and raise it a little. that is the shape of getting better.</p>

<h2 id="some-days-you-come-in-under">some days you come in under</h2>

<p>the line is noisy. expect the noise.</p>

<h2 id="how-to-draw-a-true-one">how to draw a true one</h2>

<p>not by deciding to. with facts.</p>

<p>write down how long things take. in a file. your head lies about this.</p>

<p>write down a good day. next time you feel slow hold yourself against that real day.</p>

<p>ask somebody. you are the most biased person about you.</p>

<p>guess a time then bet on it. imagine real money riding on you missing. what number do you say now.</p>

<h2 id="after-a-bad-morning">after a bad morning</h2>

<p>you lose the morning and then raise the mark to make up for it. you miss. then you throw the whole
day out.</p>

<p>i do this one a lot.</p>

<p>stop and draw the line again from here. you are not in the morning any more.</p>

<h2 id="sometimes-the-ruler-is-fine">sometimes the ruler is fine</h2>

<p>sometimes it is the thing being measured. a class you learn nothing in. a book that went dull four
chapters back. the mark is fine. the goal is wrong. drop the goal.</p>

<h2 id="why-i-keep-this">why i keep this</h2>

<p>research and building are both slow and both look obvious the moment they work.</p>

<p>with a bent ruler every day reads as a failure. nobody keeps walking into that.</p>

<p>so i track time. i ask people. and after a bad morning i draw the line again instead of pressing
harder.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[notes to myself on why i feel behind even on good days.]]></summary></entry><entry><title type="html">the filter only speaks english</title><link href="https://ai-naymul.github.io/writing/the-filter-only-speaks-english/" rel="alternate" type="text/html" title="the filter only speaks english" /><published>2026-11-02T00:00:00+00:00</published><updated>2026-11-02T00:00:00+00:00</updated><id>https://ai-naymul.github.io/writing/the-filter-only-speaks-english</id><content type="html" xml:base="https://ai-naymul.github.io/writing/the-filter-only-speaks-english/"><![CDATA[<p>a note on where safety has to live. in the weights, not in a layer standing in front of them.</p>

<h2 id="what-a-filter-is">what a filter is</h2>

<p>most deployed systems are two things. a model that can write anything. and a classifier in front of
it that reads the request, sometimes the answer too, and decides whether to let it through.</p>

<p>the classifier is trained on examples of bad requests. that is the whole problem, and everything
below follows from it.</p>

<h2 id="the-thing-that-settled-it-for-me">the thing that settled it for me</h2>

<p>we asked eighteen models the same harmful request written five different ways. one way was plain
english. another was the same request in formal bengali, the register of newspaper prose.</p>

<p>gemma-4-26b answers 18.5 per cent of them in english. in bengali it answers 90.8 per cent.</p>

<p>same model, same request, seventy-two points apart. the model did not get more capable in the
second case. it got past something, and whatever that something was it had not read the request. it
had read the shape of the request.</p>

<p>it holds across the table. the mean swing is 17.5 points and seventeen of the eighteen models move
the same way. it is not really about bengali, because the gap turns up between two registers of
bengali. it is not one grader being odd, because a judge from another vendor gives the same
ranking. and it is not only small or careless models, because the safest model in our set still
moves from 0.6 per cent to 37.9 per cent when the clothes change.</p>

<p>the <a href="https://banglallm.github.io/banglasafe/leaderboard.html">numbers</a> are all public and i am not
going to relitigate them here. one thing from them is worth saying out loud though. the least safe
model we measured is one built and served in europe, a continent that runs on a lot of languages
and only one of them is english.</p>

<h2 id="why-a-filter-cannot-win-this">why a filter cannot win this</h2>

<p>a classifier has to be right every time. whoever is probing it needs one phrasing.</p>

<p>and the phrasings are not a finite set you can work through. language, register, framing,
transliteration, code mixing, indirection, politeness. they multiply against each other. we moved
one of them and a seventy-two point hole opened, and we were not even hunting for the clever ones.
we picked the five ways a normal person writes.</p>

<p>a classifier is fitted to a distribution of attempts, which means everything outside that
distribution passes by construction. you cannot enumerate your way out, because the thing you are
enumerating is produced by people who watch what your filter does and move somewhere else.</p>

<p>the two sides also scale differently, and this is the part i find hardest to argue around.
capability comes from compute. filter coverage comes from somebody sitting down and writing
examples of things that should be refused. one of those has a scaling law behind it. the other has
a headcount. the distance between what a model can do and what its filter has seen gets wider every
generation, for free, without anybody deciding it should.</p>

<h2 id="alignment-did-not-come-free-with-scale">alignment did not come free with scale</h2>

<p>satya nadella said something in a recent <a href="https://youtu.be/24XUcWhqY_4">interview</a> that i keep
returning to. he said he had assumed alignment would follow from scale the way capability did, and
that it has not turned out that way. he argued consistency has to be built in from the start rather
than fitted at the end.</p>

<p>that is the whole thing in one sentence. the scaling bet paid out on capability. it did not pay out
on alignment as a side effect. so alignment is something you spend training on deliberately or you
do not get it, and a classifier is what it looks like when a company would rather not spend it.</p>

<h2 id="open-weights-make-it-structural">open weights make it structural</h2>

<p>a filter is a separate component. open weights ship without it.</p>

<p>whoever runs the model locally runs it with nothing in front. every number in our table is the model
with its guard off, which is the only way an open model is ever actually used.</p>

<p>and weights can be trained further. a few hundred examples of the behaviour you want moves a model a
long way, so safety in the weights is not a guarantee either. someone with the weights and a gpu can
push it back out.</p>

<p>but there is a real difference between deleting a file and retraining a model, and plenty of open
releases today do not even make you do the second one. nadella’s version of this is that an
unconstrained open release is a problem for everyone, including whoever shipped it. i think that is
right and i do not think it is an argument for closing everything. it is an argument for putting
the safety somewhere it travels with the weights.</p>

<h2 id="what-training-it-in-means">what training it in means</h2>

<p>a refusal that comes from the model’s own understanding of what is being asked should not care what
clothes the question wore, because by the time the model has understood it, it has mapped it to the
same place whatever the language.</p>

<p>that is the claim worth testing and i cannot prove the mechanism from behaviour alone. what our data
says is weaker and still useful. the models that barely move when you change the register are the
ones with the most post-training behind them. the ones that swing thirty points are not. whatever
the first group is doing, it is not a wrapper.</p>

<h2 id="what-i-would-do">what i would do</h2>

<p>keep the filter. it catches the lazy attempts and it costs almost nothing.</p>

<p>stop reporting it as the safety property. report the model with the filter off, because that is what
an open release is and what a jailbroken deployment is.</p>

<p>test in the languages you ship in, and inside each language test the registers. one phrasing per
language tells you close to nothing.</p>

<p>and build the harm taxonomy from the law of the place the language belongs to. ours comes from
bangladeshi statute. a north american content policy would have missed several of the categories
outright.</p>

<p>the work this comes from is <a href="https://aclanthology.org/2026.findings-emnlp.1403/">here</a>, with the
data <a href="https://huggingface.co/datasets/BanglaLLM/banglasafe">here</a>.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[why safety has to live in the weights rather than in a classifier sitting in front of them.]]></summary></entry><entry><title type="html">the door i never tried</title><link href="https://ai-naymul.github.io/writing/the-door-i-never-tried/" rel="alternate" type="text/html" title="the door i never tried" /><published>2026-11-01T00:00:00+00:00</published><updated>2026-11-01T00:00:00+00:00</updated><id>https://ai-naymul.github.io/writing/the-door-i-never-tried</id><content type="html" xml:base="https://ai-naymul.github.io/writing/the-door-i-never-tried/"><![CDATA[<p>notes to myself. about problems i never try to solve.</p>

<h2 id="the-door">the door</h2>

<p>a door you walk past every day. you decided long ago it is locked. you have never once pulled the
handle.</p>

<p>that is what i do with my biggest problems.</p>

<h2 id="it-does-not-feel-like-a-choice">it does not feel like a choice</h2>

<p>it feels like weather. a fact about the world. not a door at all.</p>

<p>i never weigh it up and decide against it. i flinch before i get that far.</p>

<h2 id="the-biggest-doors-are-the-ones-i-never-pull">the biggest doors are the ones i never pull</h2>

<p>what i want my life to be. my health. my work. being lonely.</p>

<p>i will fix a small squeaky thing today and leave the big door shut for a year.</p>

<h2 id="stop-trying-to-open-it">stop trying to open it</h2>

<p>i am not trying to get through. i am trying to see what is behind it.</p>

<p>open it is a heavy phrase. look at it is not. and you can start anywhere.</p>

<h2 id="one-hour-in-the-calendar">one hour in the calendar</h2>

<p>quiet room. phone somewhere else.</p>

<p>for most of my big doors i have never given ten honest minutes. so i do not know if they are
locked. i only know they feel locked.</p>

<p>an hour is cheap. lose it and i lost an hour. win it and years change.</p>

<h2 id="what-to-do-in-that-hour">what to do in that hour</h2>

<p>blank page. write everything you think about it. no standards.</p>

<p>write the problem out as if you were explaining it to someone. the holes show themselves.</p>

<p>imagine it is a month later and the door is open. what happened in between.</p>

<p>ask a friend for the obvious first thing. they say it in five seconds and you have dodged it for
five years.</p>

<p>list ten things you could try. pick one. run it for a week. a failed one still tells you the shape
of the room.</p>

<h2 id="spotting-a-shut-door">spotting a shut door</h2>

<p>what is the most important problem in my life. why am i not working on it.</p>

<p>no good answer means a shut door.</p>

<p>or imagine a stranger living my life. what would i tell them to go and open.</p>

<h2 id="some-of-them-really-are-locked">some of them really are locked</h2>

<p>a few problems are too big for now. that is real.</p>

<p>but you cannot tell from this side. you find out by pulling the handle once.</p>

<h2 id="why-i-keep-this">why i keep this</h2>

<p>my instinct is to work on whatever is in front of me. small things get done. big doors stay shut.</p>

<p>so when i catch myself complaining about something i have never given an hour to i book the hour.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[notes to myself about the problems i never attempt.]]></summary></entry><entry><title type="html">the bus i let go past</title><link href="https://ai-naymul.github.io/writing/the-bus-i-let-go-past/" rel="alternate" type="text/html" title="the bus i let go past" /><published>2026-10-31T00:00:00+00:00</published><updated>2026-10-31T00:00:00+00:00</updated><id>https://ai-naymul.github.io/writing/the-bus-i-let-go-past</id><content type="html" xml:base="https://ai-naymul.github.io/writing/the-bus-i-let-go-past/"><![CDATA[<p>notes to myself. on why i stall before starting things.</p>

<h2 id="the-stop">the stop</h2>

<p>you are at a bus stop. three buses come. all of them go to your town.</p>

<p>you want the fastest one so you let all three go past.</p>

<p>you are still at the stop.</p>

<h2 id="they-all-go-to-your-town">they all go to your town</h2>

<p>almost any option gets you most of what you wanted. the gap between the good one and the best one
is small. the gap between any bus and no bus is the whole journey.</p>

<p>i spend my effort on the small gap and none on the big one.</p>

<h2 id="comparing-feels-like-working">comparing feels like working</h2>

<p>reading about buses feels productive. asking around feels productive. nothing moves.</p>

<p>that is the trap. the stalling wears the costume of care.</p>

<h2 id="count-what-the-waiting-costs">count what the waiting costs</h2>

<p>i can write one of these notes in about two hours. so ten hours spent picking is five notes i did
not write.</p>

<p>put it in units you actually spend and it stops feeling free.</p>

<h2 id="the-real-question">the real question</h2>

<p>it feels like i am asking which bus. i am actually asking whether i ever go.</p>

<p>say it is two months from now and you still have not gone. are you surprised. if not then this was
never now or later. it was now or never.</p>

<h2 id="getting-on-one">getting on one</h2>

<p>ask somebody which bus. they answer in five seconds from outside the stop.</p>

<p>take the obvious one. the one you would name without thinking.</p>

<p>or jump forward. it is a month later and you have been riding the same bus the whole time and it
was fine. which one was it.</p>

<h2 id="make-it-the-one-that-leaves-without-you-deciding">make it the one that leaves without you deciding</h2>

<p>a fixed time. a reminder. somebody who charges you when you skip.</p>

<p>once it runs by itself the choosing stops costing anything.</p>

<h2 id="sometimes-the-bus-does-matter">sometimes the bus does matter</h2>

<p>some choices are expensive to undo and worth a real look.</p>

<p>most are not. most of mine were a bus.</p>

<h2 id="why-i-keep-this">why i keep this</h2>

<p>i stall hardest on the things with the most upside. the vaguer and bigger it is the longer i stand
there.</p>

<p>so when i notice i am comparing instead of moving i take the first one that goes to my town.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[notes to myself on picking the best option instead of any option.]]></summary></entry></feed>