Program-as-Weights: программирование нечётких функций как нейросетевых артефактов

Многие повседневные задачи программирования, поиск важных строк в логах, восстановление повреждённого JSON, ранжирование результатов поиска по намерению пользователя, плохо поддаются чистой логике и часто отдаются в облачные LLM-API. Это дорого, привязывает обработку к интернету и затрудняет воспроизводимость. Исследователи из Hugging Face предложили парадигму fuzzy-function programming, в которой такую функцию компилируют из текстового описания в малый нейросетевой артефакт, работающий локально. Решение называется Program-as-Weights (PAW). 4-миллиардный компилятор, обученный на датасете FuzzyBench из 10 млн примеров, генерирует параметрически эффективные адаптеры для заморозленного интерпретатора. Ключевой результат: 0,6-миллиардный интерпретатор Qwen3, выполняющий PAW-программы, по качеству соответствует прямому использованию Qwen3-32B, но требует примерно в 50 раз меньше памяти и работает со скоростью 30 токенов в секунду на MacBook M3. Парадигма переосмысляет роль фундаментальной модели: из решателя задач для каждого входа она становится конструктором инструментов, вызывается один раз для определения функции и создаёт переиспользуемый артефакт для дешёвых и оффлайновых применений.
Ключевые факты
- Новая парадигма fuzzy-function programming позволяет компилировать описания неструктурированных задач в локальные нейросетевые адаптеры вместо использования облачных LLM-API
- Program-as-Weights использует 4B компилятор для генерации параметрически эффективных адаптеров на датасете из 10 млн примеров (FuzzyBench)
- Интерпретатор Qwen3 размером 0,6B с PAW-программами достигает качества Qwen3-32B с 50-кратной экономией памяти
- Решение работает оффлайн на локальном оборудовании: 30 токенов/сек на MacBook M3, устраняя зависимость от облачных сервисов
- Переосмысляет фундаментальные модели с решателей задач на инструменты для построения специализированных функций
Почему это важно
Облачные LLM-API дороги, требуют интернета и усложняют воспроизводимость работы. Типовые задачи (поиск в логах, исправление JSON, ранжирование) текущей практике решаются либо жёсткими правилами (неполные), либо через API (затратно). Новая парадигма показывает, как между этими полюсами построить промежуточное решение: отдельно обучить универсальный компилятор, который один раз преобразует описание в маленький, быстрый артефакт. Это открывает путь к локальным, дешёвым и воспроизводимым системам для целого класса задач.
Кому это важно
Разработчикам, которые ищут альтернативу облачным LLM-сервисам; компаниям, чувствительным к стоимости инференса; системам, требующим работы без интернета или с низкой латентностью. Исследователям в области нейросетевых компиляторов и параметрически эффективных методов адаптации моделей.
Как это применить
Для типовых задач логирования, обработки структурированных данных, поиска и ранжирования: вместо хардкода или облачного API напишите текстовое описание функции и пропустите его через PAW-компилятор один раз. Получившийся артефакт (адаптер для замороженной базовой модели) становится переиспользуемым инструментом. На MacBook M3 это даёт скорость 30 токенов/сек, что приемлемо для batch-обработки и некритичных по задержке приложений.
Можно ли доверять
Результаты опираются на датасет FuzzyBench из 10 млн примеров, который авторы выпускают вместе с методом. Сравнение проведено корректно: 0,6B модель с PAW сравнивается с прямым использованием 32B модели, и паритет по качеству достигнут. Однако это исследовательская работа, и её практическое применение требует оценки на собственных задачах.
Риски и подводные камни
PAW работает лучше всего на задачах, похожих на примеры FuzzyBench; на экзотичных или очень специальных функциях качество может упасть. Мороженая базовая модель (Qwen3) может не подходить для всех случаев; подбор правильного интерпретатора, отдельный вопрос. Скорость 30 токенов/сек на M3 уже заметно медленнее, чем облачные API, хотя и компенсируется локальностью и стоимостью. Требует обучения компилятора на каждый новый класс моделей.