Liquid AI d1 против Liquid AI d1-3B: почему библиотека Ollama называет это одной моделью, а вендор — двумя

Источник: OrcaRouter•

Liquid AI d1 против Liquid AI d1-3B: почему библиотека Ollama называет это одной моделью, а вендор — двумя

Ollama содержит одну запись d1; собственная документация Liquid AI указывает на d1 только для API и загружаемую версию d1-3B. В чем реальная разница и какое имя использовать для развертывания.

Существует два способа именования одного и того же набора весов, и Liquid AI d1 и Liquid AI d1-3B иллюстрируют эту разницу лучше, чем любое сравнение параметров. Если убрать дефис и суффикс размера из второго названия, получится первое, поэтому возникает соблазн считать более короткую строку псевдонимом. Два каталога, в которых фактически представлены эти модели, не согласны с такой трактовкой. В индексе документации самой Liquid AI модель d1 находится в отдельной строке с пометкой «API» там, где должны быть ссылки на скачивание, а d1-3B и d1-omni-600M — в отдельной паре строк с рабочими ссылками на Hugging Face и GGUF и пометкой «Нет» в столбце возможности обучения. Ollama, чья запись в библиотеке является причиной, по которой об этой паре вообще стоит писать, объединяет всё это на одной странице под названием d1, описывая её одной строкой как «3B-модель принятия решений от Liquid AI, построенную на базе LFM2.5-VL-3B», и предлагает ровно три тега. Таким образом, сравнение Liquid AI d1 с Liquid AI d1-3B — это не сравнение между размещенной конечной точкой и открытым чекпоинтом, и это даже не сравнение двух чекпоинтов. Это сравнение между размещенной конечной точкой и открытым чекпоинтом, который экосистема локального выполнения определила как d1, когда вы произносите это слово без уточнений. Большая часть того, что следует ниже, посвящена тому, от какой из этих трактовок на самом деле зависит ваше развертывание.

Примечание о том, как получены приведенные ниже цифры, поскольку честность важнее оформления. Все числовые данные здесь взяты из собственных отчетов Liquid AI, из карточек моделей или из поста от 7 октября. Строки Decision Index были оценены вендором с помощью официального инструмента оценки, а не представлены для публичного ранжирования, и нам не удалось найти ни одного случая, когда третья сторона независимо воспроизвела бы какой-либо результат d1. Там, где число является результатом арифметических действий над опубликованным показателем, а не измерением, об этом сказано прямо.

Откуда взялись эти два названия

Более короткое название появилось раньше. В посте Liquid AI от 5 октября модель была представлена как Liquid AI d1 — «наша первая модель принятия решений», мультимодальная в том релизе, отвечающая на напечатанные вопросы по состоянию текста, изображений или того и другого за один прямой проход без выходных токенов. В этом посте указана цена размещения в $0,04 за миллион входных токенов, оплата только за входные токены, и отмечается, что изображения тарифицируются как текст по 1,5 токена за патч 32×32, поэтому изображение 1024×1024 стоит 1536 токенов. Также указана задержка принятия текстового решения: 200–300 мс. Это показатели размещенного сервиса, и в посте прямо говорится, что среда выполнения, стоящая за ними, — это собственная конечная точка принятия решений вендора по адресу api.liquid.ai/decisions/v1/systemone.

Более длинное название появляется в посте от 7 октября и на Hugging Face, и именно оно содержит воспроизводимые детали: 3,12 млрд параметров, контекст 32 768 токенов, словарь 128 000 токенов, шестнадцать документированных языков, оптимизированный по форме 400M-визуальный энкодер SigLIP2 NaFlex и базовая цепочка LFM2.5-2.6B-Base → LFM2.5-VL-3B → d1-3B. В этой карточке также прямо указано, что модель не является чат-ботом и не пишет текст. Это тот чекпоинт, на котором построена вся локальная экосистема: репозиторий GGUF содержит Q4_K_M размером 1,67 ГБ, Q8_0 размером 2,87 ГБ, а также F16 и BF16 по 5,4 ГБ каждый.

Чего не говорит вслух ни один документ вендора, так это того, что Liquid AI d1 и Liquid AI d1-3B — это одни и те же веса. Индекс документации присваивает им отдельные строки. В релизном посте d1 называют семейством, а не чекпоинтом. Сторонние обзоры заметили этот разрыв и отметили, что вендор не подтвердил идентичность. Так что честное утверждение будет коротким: цифры, с которыми опубликованы оба названия, нигде не противоречат друг другу, релиз семейства и запуск конечной точки были анонсированы с разницей в два дня с совместимым описанием, а вендор не заявлял, что это одна и та же модель. Относитесь к эквивалентности как к разумному рабочему предположению, а не как к факту, под которым подписался вендор.

Что на самом деле меняет локальная сборка

Запись в Ollama — это не перевыпуск и не новый чекпоинт. Это решение по упаковке, и упаковка накладывает три ограничения, о которых вообще не упоминает документация вендора. Первое — это список тегов: d1:latest, d1:3b и d1:3b-q8_0, три тега, обозначающие одну квантованную версию. Репозиторий GGUF, который публикует Liquid, содержит четыре уровня точности, и Q4_K_M объемом 1,67 ГБ — тот, который большинство людей выбрали бы для ноутбука — отсутствует среди тегов Ollama. То, что вы можете загрузить, — это Q8_0 объемом 2,87 ГБ и всё, во что он разворачивается в локальном хранилище; страница библиотеки сообщает о размере загрузки в 3,7 ГБ.

Второе — это контракт запроса. Ollama отвечает на эти модели по адресу /v1/systemone, принимает состояние плюс объект вопросов и возвращает типизированные ответы с output_tokens: 0. Это та же форма, которую использует размещенная конечная точка вендора, что и делает переключение между локальной и размещенной версиями изменением конфигурации, а не переписыванием кода. Третье ограничение находится в документации к конечной точке Ollama, а не на странице модели, и оно жестче, чем у генеративной модели: запросы должны укладываться в 64 КБ без изображений и 32 МБ с ними, потоковая передача не поддерживается, облачные модели отклоняются, а изображения должны быть в формате base64 PNG, JPEG или WebP в теле запроса — удаленные URL-адреса отклоняются. Изображения являются общими для каждого вопроса в запросе, поэтому для картинки, для которой вы хотите получить только один ответ, требуется отдельный вызов. Ввод никогда не обрезается, что означает, что при превышении размера состояния возвращается ошибка, а не молчаливое усечение. Это лучший режим сбоя, но это всё равно режим сбоя, с которым должен справляться ваш клиент.

Две детали документации остаются нерешенными, и о них стоит знать, прежде чем отправлять отчет об ошибке. Справочник конечных точек Ollama описывает тип вопроса с выбором как принимающий от 2 до 255 ключей вариантов, в то время как страница возможностей моделей принятия решений говорит о 2–26; одно из этих утверждений устарело. А страница возможностей перечисляет поддерживаемые модели как Nimble, Tev1, Clef и Clef Flash, без упоминания d1 — несмотря на то, что в файле readme пакета d1 задокументирована поддержка /v1/systemone и --ask, а пакет требует Ollama 0.40.4, в то время как задокументированный минимум для самой конечной точки составляет 0.35.0. Читайте требования к версии в пакете, а не в руководстве.

Цифры и то, под каким именем они были опубликованы

Это та часть сопоставления, в которой легче всего ошибиться, потому что оба названия опубликованы с показателями производительности, и эти показатели организованы не так, как вы могли бы ожидать.

• Decision Index 0.2.1 — 48.57, опубликовано в рамках Liquid AI d1-3B. Liquid описывает это как лучший показатель для модели принятия решений с количеством параметров менее 10 млрд, что ставит её выше модели 35B-A3B с результатом 47.11. • Задержка текстового решения — 200–300 мс, опубликовано в рамках Liquid AI d1 в посте о хостинг-API. Для самой открытой контрольной точки (checkpoint) эквивалентного показателя не приводится. • Задержка при обработке одного вопроса на локальном оборудовании — 8 мс на RTX 4090, 16 мс на Jetson AGX Thor, 26 мс на Jetson AGX Orin 64 ГБ, 50 мс на Orin Nano, 30 мс на Apple M5 Pro. Опубликовано в рамках Liquid AI d1-3B. • Пропускная способность — 475 решений в секунду на RTX 4090 и 1106 в секунду на AMD MI325X при пакетной обработке вопросов. Опубликовано в рамках Liquid AI d1-3B. • Зрение — среднее значение 74.1 по одиннадцати публичным бенчмаркам изображений против 73.9 для базовой модели LFM2.5-VL-3B, на основе которой она была создана. Опубликовано в рамках Liquid AI d1-3B. • Абляция изображений — тот же набор вопросов, на который отвечали без использования изображений, получил 45.1 балла; это собственная оценка вендора того, какой вклад вносит визуальный компонент. Опубликовано в рамках Liquid AI d1-3B.

Из этого списка вытекают две проблемы, и ни одна из них не является критической, именно поэтому их часто упускают из виду. Показатели хостинга и локальной работы различаются в 25–37 раз — 200–300 мс против 8 мс — и они были измерены на вещах, которые вендор не описывает в сопоставимых терминах. Интерпретация разрыва как «локально быстрее» не подтверждается, поскольку число для хостинга — это сквозное время через API, а 8 мс — это прямой проход (forward pass) на конкретном GPU. Это не одни и те же измерения, и вендор никогда не утверждает обратного.

Вторая проблема — строка со зрением. Улучшение на 0.2 балла по сравнению с базовой моделью по одиннадцати бенчмаркам изображений находится в пределах погрешности большинства отчетов, поэтому, что бы ни давал вам «решающий» заголовок (decision head), это не делает модель существенно лучшим кодировщиком изображений. Строка абляции выглядит гораздо более впечатляющей в другом направлении — разница примерно в 29 пунктов при добавлении изображений, — но она сравнивает два разных набора вопросов, а не две версии одного, о чем сама Liquid заявляет в посте. Обе строки полезны. Ни одна из них не подтверждает громких заявлений о качестве визуальных решений, и ни одна третья сторона не проводила их проверку.

Где два названия расходятся на практике

Для покупателя различие сводится к четырем вопросам, и ответы на них не всегда указывают в одном направлении.

• Структура затрат — Liquid AI d1 оплачивается за входной токен по опубликованному тарифу вендора, без оплаты выходных токенов. Liquid AI d1-3B — это загрузка объемом 2.87 ГБ в пакете Ollama или 1.67 ГБ из репозитория GGUF вендора, без какой-либо тарификации за вызов. • Задержка, поддающаяся измерению — хостинг-вариант указывает 200–300 мс на текстовое решение. Опубликованные 8 мс для локального варианта — это прямой проход на RTX 4090 с прогретой моделью, что является реальным числом, а не временем кругового запроса. • Путь данных — хостинг-вариант отправляет состояние вендору. Локальный вариант сохраняет его на машине, что для тикета поддержки, медицинской записи или фотографии обычно является аргументом, закрывающим дискуссию. • Фиксация версии — Liquid AI d1 за эндпоинтом — это то, что вендор предоставляет сегодня. Liquid AI d1-3B в Ollama — это фиксированный пакет, который вы контролируете, и плата за это заключается в том, что вы сами отвечаете за обновления.

Неловкая реальность, лежащая в основе всех четырех пунктов, заключается в том, что открытая контрольная точка является «родственником» хостинг-модели, а не её заменой, и вендор не утверждал обратного. Карточка модели для открытой контрольной точки рекомендует её для маршрутизации и сортировки, модерации, классификации намерений, проверок извлечения данных, переранжирования, использования LLM в качестве судьи и создания защитных барьеров, а также описывает её как модель, прошедшую пост-тренировку на базе LFM2.5-VL-3B для однопроходных калиброванных решений. Пост о хостинг-версии описывает тот же набор задач другими словами и указывает цену хостинга. Если это одна и та же модель, то локальная сборка — это бесплатная копия хостинг-продукта, что было бы необычным шагом для лаборатории без соответствующих пояснений. Если же это две разные донастроенные версии общей базы, то опубликованные цифры не следует считать переносимыми в любом направлении. Второе объяснение требует от вендора меньшего и соответствует имеющимся у нас доказательствам.

Запуск обеих половин решения без запуска двух стеков

На каком бы названии вы ни остановились, конвейер вокруг него обычно выглядит одинаково. Очередь поддержки получает вопрос с выбором для команды назначения, вопрос «нет» для определения того, запрашивается ли возврат средств, и вопрос с оценкой для определения срочности — одно состояние, три ответа, один проход. Там, где два названия действительно расходятся, — это точка, в которой решение открывает доступ к генеративной модели, которую вы арендуете, а не запускаете. Этот вызов — другая проблема с другим профилем сбоев, и это та часть конвейера, где правильность d1 имеет наименьшее значение: ответ маршрутизации с вероятностью 0.98, за которым следует ошибка 502 от модели, на которую вы направили запрос, в любом случае является неудачным запросом.

Мы не хостим никакие модели Liquid AI — мы проверили наш собственный каталог перед написанием этого текста, — поэтому ничто здесь не является заявлением о вызове этих весов через нас. То, что мы делаем, — это слой на другой стороне решения: один ключ, совместимый с OpenAI, для моделей, на которые распределяется отсортированный запрос, по прейскурантной цене каждого провайдера, передаваемой с 0% наценкой, так что снижение цены вендором доходит до вас в тот же день, а не при продлении контракта, с автоматическим переключением между провайдерами, чтобы отсортированный запрос выжил, даже если модель, на которую вы его направили, отключится. Если вы впервые подключаете модель принятия решений к конвейеру, именно эту часть стоит сделать «скучной».

Какое название использовать в зависимости от ситуации

Если вы хотите попробовать модель на этой неделе без необходимости поддерживать среду Python, используйте название, которое использует локальная среда выполнения. Загрузите Liquid AI d1 из библиотеки, примите Q8_0 и 3.7 ГБ, а также ограничение запроса в 64 КБ и отсутствие потоковой передачи как проектные ограничения, а не как неудобства. Вы получаете реальный эндпоинт, реальные типизированные ответы и отсутствие тарификации за вызов с первого дня.

Если вам нужен меньший объем, чем Q8_0, используйте название Liquid AI d1-3B, потому что сборка Q4_K_M объемом 1.67 ГБ находится в репозитории GGUF вендора, а не в записи библиотеки. Этот факт является самым практическим различием между двумя названиями на сегодняшний день, и именно его чаще всего упускают из виду те, кто читает страницу библиотеки и останавливается на этом.

Если вы представляете это платящим пользователям и вам нужны доказательства точности, ни одно из названий вам пока не поможет. Не существует независимой оценки какой-либо модели d1, которую мы могли бы найти, строки Decision Index были оценены самостоятельно, а вендор вообще не опубликовал бенчмарк для аудио-решений. Что вы можете сделать, так это инструментализировать значение уверенности, которое модель уже возвращает — от 0 до 1, отражающее, насколько сильно вероятности склоняются к одному ответу, а не насколько вероятно, что этот ответ верен, — и самостоятельно выяснить на своем трафике, в чем модель не уверена. Это измерение стоит больше, чем любые слайды выше, и на него уходит один день.

Модель принятия решений — это дешевая половина конвейера. Генеративная модель, на которую она перенаправляет запросы, — это та часть, для которой требуется контракт: один ключ, совместимый с OpenAI, обеспечивает работу моделей, на которые распределяется отсортированный запрос, причем каждая из них оплачивается по прейскуранту провайдера без наценки.

Уменьшение размера дистиллированной контрольной точки по сравнению с ее полным релизом — это также подходящий момент для проверки записей: задокументированные инциденты с ИИ и сбои агентов, связанные с небольшими моделями Liquid, собраны в архиве инцидентов OrcaRouter AI, где каждая запись содержит собственные источники, уровень серьезности, оценку достоверности и флаг оспаривания.

О чём эта статья

Ещё в разделе «AI и машинное обучение»

Все →

Ещё от OrcaRouter