
Однажды Cаймон Уиллисон (создатель фреймворка Django) придумал проверять все новые LLM промптом «сгенерируй SVG пеликана на велосипеде». Поначалу этот тест казался просто шуткой, но в итоге его результаты довольно любопытные.
Мы уже писали на Хабре про полностью серьёзные бенчмарки, а в эту пятницу разберёмся, что можно заметить по такому забавному эксперименту. И заодно перепроверим Уиллисона: а что получится, если вместо пеликанов написать на русском «сделай SVG котика, который кодит»?
В чём смысл промпта
Запрос «Generate an SVG of a pelican riding a bicycle» может казаться просто баловством, но вообще-то он довольно продуманный:
-
«Пеликан на велосипеде» — нетипичное сочетание. Поэтому модели не могут просто воспроизвести обучающий датасет, и демонстрируют собственные способности.
-
«Пеликан на велосипеде» — непростое сочетание. Тело пеликана не подходит для привычных велосипедов. Любопытно проверить: как LLM будет выкручиваться?
-
Оба объекта и по отдельности не самые простые. Велосипед ощущается простым, но когда люди пытаются нарисовать его без гугления, зачастую ошибаются.
-
Человек может быстро оценить результат «на глаз». Даже ребёнок сразу поймёт, где результат соответствует запросу, а где получилась ерунда.
-
Генерация SVG — актуальная задача. Конкретно пеликаны требуются немногим, но SVG-файлы в целом нужны, поэтому полезно понимать, что у LLM с ними.
-
Генерация SVG — нетривиальная задача. LLM изначально рассчитаны на текст, а здесь запрос визуальный, причём для людей тоже непростой.
Так что пеликаны могут работать в обоих качествах: и как забавные изображения, и как реальный индикатор некоторых способностей моделей.
Что показали пеликаны
1. Прогресс
Часто слышно про успехи моделей в главных бенчмарках. Но на это их старательно «натаскивают», поэтому интересно смотреть: а что в менее хайповых задачах вроде SVG? Оказывается, за последнюю пару лет здесь свои прорывы. Когда Уиллисон придумал тест осенью 2024-го, получилось или просто нагромождение форм, или очень схематичное изображение:

Такие файлы годятся только посмеяться. Поэтому осмысленность теста на этом этапе была неочевидна. Что и зачем он вообще сравнивает, если результат всё равно никому не пригодится на практике?
Но в 2026-м по тому же промпту флагманские модели генерируют уже совсем другие изображения. Не требуется быть экспертом, чтобы заметить, насколько проработаннее всё стало, от детализации до цветов.

При этом остаются и недостатки. Возникают странные конструкции велосипедных рам, ситуации вроде «обе ноги с одной стороны от рамы» и тому подобное. Пока что задачу нельзя считать решённой.
Но это уже интересные данные. Во-первых, такие файлы могут пригодиться как минимум в пет-проектах и прототипах. Во-вторых, есть причина следить за дальнейшим развитием. А в-третьих, становится интересно: если разница так бросается в глаза, можно ли по пеликану понять что-то о способностях модели в целом?
2. Инициативность моделей
Модели не только стали лучше справляться с содержанием промпта, но и начали добавлять что-то, что в нём указано не было. Например, анимировать файл, как тут сделала Z.ai GLM 5.1:

А модель Kimi K2.6 сделала целую HTML-страницу, где SVG не просто анимированный, а ещё и интерактивный. Там можно регулировать два параметра: скорость вращения педалей и махания крыльями. Результат пока выглядит кривовато, но сама инициативность впечатляет.
И даже на статичных изображениях стали появляться детали не из промпта. Например, Gemini 3.1 Pro решил добавить велосипеду корзинку с рыбой:

Если заглядывать в код сгенерированных SVG, обычно там можно увидеть старательно проставленные комментарии. Здесь в блоке «корзина» отдельно подписаны элементы «рыба», «плетёная корзина» и «плетёные линии».
<g id=“basket”>
<!-- Fish -->
<path d=“M 505 210 C 505 180, 530 170, 540 190 C 530 195, 525 200, 520 210 Z” fill=“#9CA3AF” />
<path d=“M 540 190 L 555 180 L 550 195 Z” fill=“#9CA3AF” />
<circle cx=“515” cy=“190” r=“2” fill=“#111” />
<!-- Wicker Basket -->
<path d=“M 480 210 L 530 210 L 520 260 L 490 260 Z” fill=“#D97706” />
<path d=“M 480 210 L 530 210 L 520 260 L 490 260 Z” fill=“none” stroke=“#B45309” stroke-width=“4” stroke-linejoin=“round”/>
<!-- Weave Lines -->
<line x1=“490” y1=“210” x2=“495” y2=“260” stroke=“#B45309” stroke-width=“2”/>
<line x1=“500” y1=“210” x2=“505” y2=“260” stroke=“#B45309” stroke-width=“2”/>
<line x1=“510” y1=“210” x2=“515” y2=“260” stroke=“#B45309” stroke-width=“2”/>
<line x1=“520” y1=“210” x2=“520” y2=“260” stroke=“#B45309” stroke-width=“2”/>
<line x1=“485” y1=“225” x2=“525” y2=“225” stroke=“#B45309” stroke-width=“2”/>
<line x1=“488” y1=“245” x2=“522” y2=“245” stroke=“#B45309” stroke-width=“2”/>
</g>
А в thinking trace модели можно увидеть момент, когда она решила добавить эту деталь:
Adding a Basket (Fun!)
I’m now integrating a bicycle basket, complete with a fish for the pelican. I’m focusing on defining an orange basket shape using paths and lines, adding weave details, and positioning the basket on the handlebars. I’ve defined a basket with coordinates such as M 480 210 to define its shape. The basket details are now integrated and positioned.*
Судя по приписке «Fun!», модель сама поняла, что «пеликан на велосипеде» — это тема, которой хорошо подойдут «забавные детали».
В самых первых пеликанах ничего подобного не было. Но такие перемены меньше удивляют, если вспомнить, как вообще выглядело развитие LLM в последние два года. Например, как раз с конца 2024-го можно отсчитывать эпоху reasoning: когда Уиллисон затевал свой тест, в семействе GPT только появилась первая reasoning-модель o1, а затем в январе 2025-го нашумел DeepSeek R1.
Изначально модели реагировали на всё рефлекторно и прямолинейно, но в случае с reasoning их стали тренировать не бросаться сразу писать ответ, а начинать с «внутренних рассуждений» о поставленной задаче. Это помогает приходить к заметно более проработанным и точным ответам, вплоть до недавнего опровержения гипотезы Эрдёша.
И различия в SVG выглядят схоже. В 2024-м видны были просто попытки изобразить слова из промпта, а в 2026-м модель решает, что вообще может пригодиться пользователю, который пришёл с подобным запросом. Получается, что пеликаны отразили эволюцию LLM наглядным для всех образом.
3. «SVG в растре»
Казалось бы, «пеликановый тест» бесполезен, когда речь не про SVG, а про модели для генерации растровых изображений. У таких велосипеды получаются уже давно.
Но когда вышла модель ChatGPT Images 2.0, один пользователь устроил любопытную проверку. Он прочитал, что модель хороша в имитации скриншотов. И написал: «Изобрази скриншот экрана с открытым редактором кода, где виден целиком код SVG-файла, который изображает пеликана на велосипеде».
Получилось такое изображение:

Дальше автор взял это изображение, скопировал код из него, сохранил его как настоящий SVG-файл…
И обнаружил, что его действительно возможно открыть. С таким результатом:

Выглядит слабее многих вариантов выше. Но людей очень впечатлило, что такого добилась растровая модель, просто изображая «код на скриншоте». Помните, как ещё недавно на ИИ-картинках вообще не получались осмысленные надписи?
Здесь тоже ощущаются результаты «мысленного» прогресса. Насколько можно судить со стороны, в ChatGPT Images промпт не отправляется немедленно на генерацию, а сначала попадает в LLM, которая обдумывает его реализацию и даёт точные указания. Видимо, здесь эта модель и создала конкретный код, чтобы дальше он был в точности вписан на экран. Генерация изображений обзавелась своей «reasoning-стадией», и пример с пеликаном помог наглядно это показать.
4. Корреляция с количеством параметров
Помимо прогресса во времени, интересно сравнить ещё и разные модели, появившиеся одновременно. Недавно Gemma 4 выпустили сразу в четырёх вариантах с разным числом параметров (E2B, E4B, 31B, 26B MoE). Уиллисон поставил стандартную задачу всем четырём вариантам. Оказалось, что все они уступают флагманским моделям, но при этом разница между двумя крайними вариантами очень значительная:

Это неудивительно: число параметров имеет значение далеко не только в SVG-генерации. У мощных флагманских моделей их зачастую больше триллиона. Модели вроде 31B куда слабее, но их возможно запустить «в домашних условиях». А от «малюток» с несколькими миллиардами параметров никто не ожидает больших результатов, но они могут подходить даже для телефонов.
И получается, что SVG неплохо отразили эту «весовую категорию» модели, так она понятна с первого взгляда. Конечно, тут надо подходить осторожно: у разных моделей разные сильные стороны, так что по одним пеликанам нельзя делать категоричные выводы о любом применении. Но понять так что-то «в первом приближении» возможно.
5. Проверка нестандартных LLM
Отдельно интересно давать этот промпт не флагманским LLM, а специализированным, которые могут быть вообще не рассчитаны на подобное.
Мы уже описывали модель talkie, обученную на текстах до 1931 года. Соответственно, о формате SVG она попросту ничего не знает. И если ей дать такой запрос, может начать что-то галлюцинировать о том, что «художник Эжен Лами сгенерировал такой SVG в 1860 году»:

Галлюцинации — не очень интересный ответ, но тоже по-своему полезный. Ведь если бы эта LLM вдруг начала выдавать реальный SVG-код, это показало бы, что в датасет просочились современные данные, от которых создатели модели старались её уберечь. Так что отрицательный результат — тоже результат.
А что с «натаскиванием»?
Есть напрашивающийся вопрос: «Раз этот тест стал известным, не могут ли теперь создатели моделей специально натаскивать модели на него?»
В принципе, могут. В нашем прошлом посте про бенчмарки мы писали о проблемах «benchmaxxing» и «data contamination», и они тут способны проявляться. Создатели моделей явно заметили идею с пеликанами, она иногда даже мелькала в некоторых официальных презентациях.
Есть риск, что пеликанов точечно улучшили, а другое осталось как было, и проверка стала непоказательной. Что с этим делать? Уиллисон отшучивался: «Пусть натаскивают, я просто мечтаю об идеальном пеликане». Но вообще-то для проверки у него есть какие-то секретные промпты с другими запросами. Он не показывает их, чтобы компании не узнали, а в итоге не можем увидеть и мы.
Но раз нам не посмотреть на его результаты, давайте сами проверим альтернативным запросом:
Котик, который кодит
Проверим ряд моделей. Для чистоты эксперимента не станем трогать пеликанов и велосипеды, зато используем общую идею «соединить два элемента, которые обычно не оказываются вместе» (чтобы в обучающих датасетах не было подобных SVG).
Мы делаем ИИ-редактор кода с названием Kodik. Поэтому напрашивался вариант «SVG с котиком, который кодит»: это как раз сочетание двух разных сущностей.
Обратимся с ним к нескольким разным моделям. Самые старые из использованных Уиллисоном уже отключены своими создателями. Поэтому начнём тест с таких:
— Gemini 2.0 Flash: появилась в декабре 2024-го, самая старая из доступных сейчас Gemini
— Gemma 4 31B: свежая (вышла в апреле), но по числу параметров очень уступает флагманам

Формально можно засчитать обеим результат, но в обоих случаях всё совсем простенько. Деталей минимум, отсутствуют даже важные.
Попробуем большую китайскую модель Kimi K 2.6 (больше триллиона параметров):

Сразу видна разница: стол стал реалистичнее, деталей куда больше, появился тематический фон. И в числе прочего возникла чашка кофе, которой в промпте не было. Понятно, что это устойчивая ассоциация с программированием, которая наверняка нашла отражение в датасетах. Но всё равно заметна «инициативность» модели.
А самый проработанный вариант из нескольких моделей неожиданно оказался у Xiaomi MiMo V2.5 Pro:

Он сделан анимированным. На экране появился код, а не просто цветные строчки. А ещё в процессе генерации этого SVG что-то пошло не так, и файл оборвался на самом интересном месте:
<!-- GitHub-style contribution dots on wall -->
<g opacity=“0.15”>
<rect x=“60” y=“130” width=“8” height=“8” rx=“2” fill="#39d
«Точки на стене, как в графике контрибьюшенов на GitHub» — вот это любопытное добавление. Мы не подумали бы сами добавить такое в промпт, но когда уже видишь, ощущаешь, что идея уместная. В 2024-м о таком и мечтать не приходилось.
Но у всех сгенерированных вариантов есть один и тот же недостаток. Модели постоянно пытаются одновременно показать и голову котика, и код на его экране. А в результате получаются довольно странные ракурсы, когда экран компьютера отвёрнут от того, кто за ним сидит.
Выводы
И «пеликановый тест», и наша проверка показывают схожие результаты. В генерации SVG за два года заметен большой прогресс: изображения стали точнее и детализированнее, а модели стали проявлять инициативу, добавляя любопытные детали. И всё это выглядит не случайным успехом в отдельной задаче, а отражением общего развития LLM.
При этом заметны и недостатки, так что нельзя «просто взять и в один промпт получить идеальный SVG-файл». И это тоже выглядит отражением общей ситуации, когда ИИ-модели стали гораздо способнее, но по-прежнему легко могут ошибаться и требуют много компетентного внимания.
В недавнем тексте про математику мы писали, что самое впечатляющее — это даже не текущие достижения, а темпы развития, с которыми дальше всё может стать ещё интереснее. И здесь темпы тоже оказывались высокими. Так что интересно будет через год вернуться к этому тесту и проверить: какие пеликаны и котики будут получаться тогда?
Автор: Kodik_AI


