TGViewer
Гречневые мысли Гречневые мысли @buckwheat_thoughts · 1.77K subscribers
Post #370 1.19K
Про крохотные кодовые модели

*этот длиннопост я пишу уже третий месяц — наконец то дошли руки его закончить и выложить*

Как я уже писал, I have a soft spot for broken and puny things. Не так давно мне попалась на глаза новость, где кто-то обучил ллм для Z80 — такого восьмибитного процессора из середины 80-х. Для того, чтобы полноценный трансформер уместился и работал в ограничениях памяти процессора, который лишь на десять лет младше моих родителей, авторам пришлось применить много интересных технических решений: QAT в 2 битах, инференс в int16 (потому что другой математики в процессоре добиться сложно) и, что самое прикольное, ограничение размера токенизатора.

В современных трансформерах словари огромны. В e5-base, например, токенизатор содержит 30522 токенов, в multilingual-e5-small взят словарь от xlmr, так что там 250037 токенов и так далее. Это означает две вещи: во первых, если у модели в токенизаторе много токенов, то ей будет надо больше данных, чтобы все эти токены увидеть в разных контекстах и собрать статистики. Во-вторых, большой токенизатор означает большую LM Head и большой эмбеддинг слой. И как бы пофиг на это, это же просто lookup table, но хоть e5-small от multilingual-e5-small архитектурно отличаются лишь токенизатором*, число параметров там 33M против 117M.

Поэтому авторы Z80-μLM сделали токенизатор character based и рекомендовали структурировать датасет как одно слово. Например:

> hello
HI
> are you real
MAYBE


Это, с одной стороны, сильно ограничивало полезность такой ллм (ну а кому оно надо если честно), но, с другой стороны, давало неплохую экспрессивность. Это уже не if-else, оно давало ощущение того, что что-то внутри есть и это что-то вполне себе не против с тобой пообщаться. Прикольно.

*когда-то я хотел запрунить multilingual-e5-small и сократить размер токенизатора там и в процессе выяснилось, что прунинг блоков трансформера почти не даёт выигрыша в памяти — потому что 91M это эмбеддинги. Когда-нибудь я про это расскажу.
Telegram Гречневые мысли Я им жалоту у портых и ненких мудств Некоторое время назад вышла Gemini Diffusion — текстовая диффузионная модель, способная очень быстро генерить (достаточно бредовый) текст. Технология была, имхо, интересной, но из-за загруза на работе я так и не разобрался…
  • ❤ 5
  • 👍 4
More from @buckwheat_thoughts
  1. Sep 17, 2026Сигнал получен, цель видна, отправляюсь за тортиком
  2. Sep 10, 2026Ураураураура! Вы спрашивали, вы ругались, вы просили, вы недоумевали — а мы делали гигачат…
  3. Aug 28, 2026Вот пришло и мое время рассказывать истории про умные хитрые модели: замеряли Qwen-3.8-27b…
  4. Aug 15, 2026Выводы: - Эксперимент очень интересный, в первую очередь тем, что гипотеза провалилась, но…
  5. Aug 15, 2026Пример простой неудачной генерации: # Prompt def subtract(a, b): """Return a minus b.""" #…
  6. Aug 15, 2026Вот табличка с результатами. Я дополнительно попробовал сделать модели чуть большего разме…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →