With adjustable parameters, the tokenizer system isn't quite working, so make a "Generate Tokens" button, so the user can see what those are, and or change them manually if needed. And instead of a text area for the labels and training data, have a scrolling list for both of them which contains a new element where the user can input the value, (a plus sign next to the element), that makes a new inputable value.
Create a LLM from scratch in js, and a tokenizer, that allows the user to input their training data, and labels (text box), and then after training, test it out. And visualize the training loss, etc.