А так как я последнее время активно пилю Coddy Agent размышляю в контексте сего агента, короче, он умеет настраивать сам себя. Конфиг он правит собственными тулами
config_set, config_changes, config_commit, config_rollback, руками в текст лезть не нужно. Четыре глагола (set, add_list, del_list, delete), парсер, dry-run, стейджинг и откат на снапшот. Других агентов, которые так умеют, я пока не встречал. Подробнее тут.И тут пришла идея. А если положить рядом с бинарником маленькую модель, которая умеет этими тулами пользоваться? Человек ставит Coddy на чистую машину, пишет "вот openai-совместимый сервер, вот ключ, вот две модели, вторую сделай основной", и всё заполняется само. Без облака и без интернета.
Сейчас там замкнутый круг. Чтобы подключить провайдера, нужен уже подключённый провайдер, а на свежей установке Coddy отвечает
no model configured и на этом разговор заканчивается.Натравил на тему сначала Fable, потом Astra, а отчётик собрал в формате репа.
Если по существу вопроса, то расклад следующий
Модель не сочиняет YAML, она выбирает действие, а применяет его Coddy сам.
Размер. Сто-двести миллионов параметров выглядят реалистично, в четырёх битах это 70-150 МБ весов. Но память процесса считается отдельно. В замерах Google для FunctionGemma файл занимает 288 МБ, а пиковый RSS 551 МБ, так что "маленькая модель" и "маленький расход памяти" это про разное.
Чистый Go без cgo оказался возможен. Есть goccy/go-llama, это llama.cpp, скомпилированный в wasm и переведённый в Go-исходники. Собрал статический бинарь под linux/amd64, вышло 23,7 МБ, движок стартует за 7 мс, GBNF-грамматики поддерживаются.
Чего пока не получается
С русским под миллиард параметров всё грустно. Qwen3-0.6B выбивается по размеру и скорости, из мелочи остаются ruGPT3-small на 125M и ruT5-small на 65M, обе старые и без инструктивного тюнинга. SmolLM2-135M современнее, но русского там почти нет.
Главный ограничитель, это prefill. Нагрузка тут обратная чатовой, тысяча токенов на вход и тридцать на выход. На моём i7-8750H выходит 6-8 секунд для 0.6B и полторы секунды для 135M, отсюда и весь разговор про размер.
Обучение оказалось дешевле, чем я думал. Пилот на 2-5 тысячах диалогов с LoRA влезает даже в процессор, часа три для 65M и часов шесть для 135M на том же старом ноуте. На видяшке будет сильно быстрее.
Что дальше
Соберу датасетик, может синта какая ещё будет, потом попробовать разные модельки потюнить, и заодно может и правда за тернаный трансформер взяться как в том посте.
Реп с заметками на тему:
https://github.com/coddy-project/coddy-tinyllm
PS. Обученной модели там пока нет, только исследование и разбор.