two projects archived. two lessons i don't want to forget.
bayya and idk-1 are archived now. they weren't the same kind of experiment, so i don't want to wrap them in one vague 'failure' story. here's what i actually keep thinking about.
bayya was narrow on purpose: take informal indonesian and return formal academic indonesian. after launch, i put on the user hat and tried to break it. in about an hour, four real issues showed up: long pasted text could crash the backend, instructions inside the text could steer the model away from its job, moderation missed a harmful phrasing, and emoji-only input could produce an invented answer. i fixed all four and tested them again that day.
there was another quality gap hiding in plain sight: long text pasted into the box wasn't chunked like uploaded documents were. it wouldn't crash, but the output could quietly get worse. that got fixed too. the lesson wasn't 'add one more clever filter.' it was that the happy path is a tiny part of a real product. test boundaries, test the boring inputs, and assume your own interface will be used in ways you didn't picture.
idk-1 was a different kind of experiment: a small indonesian language model trained from scratch. one pre-training run reached 53,850 steps before i found the actual problem. a merge step was shuffling individual token IDs instead of mixing ordered chunks from each data source. the loss curve by itself didn't expose the data bug; it sat around 7.8, and i blamed the learning rate. the model was seeing scrambled sequences. i cancelled the run, fixed the data pipeline, and started over.
getting IDK-1 to follow instructions took another four rounds of SFT and 4,810 examples. by the fourth round, it could follow a simple 'sebutkan tiga' instruction reliably. that was real progress, but not a claim that a 106M model could reason through anything: open-ended answers still drifted. the lesson was to evaluate the exact behavior you're training for, and to be honest about the edge of what the result can do.
the common thread is less glamorous than model size or launch day: inspect the data, try to break the thing you shipped, and look at actual outputs. a smooth-looking metric or a successful demo can hide a very ordinary mistake underneath.
bayya's service has ended. idk-1 is a closed chapter in learning to build a language model from scratch. i'm not treating either as an active product or pretending every experiment needs a sequel. they're archived because that work reached its stopping point—and the notes are worth keeping.