Кратко / Главное
Google только что запустил LiteRT.js, новую библиотеку, которая обеспечивает скорость ИИ, близкую к нативной, прямо в вашем браузере. Вот почему ее ядро WebAssembly делает TensorFlow.js устаревшим и открывает новую эру машинного обучения на устройстве.
Узкое место JavaScript устранено
TensorFlow.js годами был библиотекой машинного обучения Google для браузеров, но он всегда сталкивался с проблемой: ядра на основе JavaScript. Эти ядра являются значительным узким местом, неспособным полностью использовать аппаратное обеспечение CPU или GPU, как это может делать нативная среда выполнения. Они испытывают трудности с прямым взаимодействием с оборудованием и параллельной обработкой, что означает, что TensorFlow.js постоянно отставал по производительности от нативных приложений.
Google только что устранил это узкое место с помощью LiteRT.js. Это не просто обновление; это меняет правила игры. LiteRT.js — это привязка JavaScript для LiteRT, проверенной среды выполнения инференса на устройстве от Google, которая годами использовалась в Android, iOS и встроенном оборудовании. Теперь тот же оптимизированный движок появляется в вашем браузере.
LiteRT.js достигает этого, используя WebAssembly (WASM), поставляемый со своими собственными оптимизированными ядрами. Вы больше не получаете «веб-ориентированный уровень абстракции», который испытывает трудности с доступом к оборудованию. Вместо этого вы получаете по-настоящему оптимизированный, нативный движок среды выполнения, скомпилированный в WASM, напрямую предоставляющий те же высокопроизводительные аппаратные возможности, которые ранее были эксклюзивными для инференса на Android и iOS. Это представляет собой фундаментальный сдвиг в ИИ на основе браузера.
Тройное аппаратное ускорение
LiteRT.js не просто обещает скорость; он обеспечивает ее благодаря продуманной трехуровневой архитектуре бэкенда, разработанной для достижения максимальной производительности от любого устройства. Эта архитектура обеспечивает универсальную совместимость и экстремальную производительность там, где это позволяет оборудование.
Для универсальной совместимости LiteRT.js по умолчанию использует XNNPACK для инференса на CPU. Это оптимизированная многопоточная библиотека ядер CPU от Google, с поддержкой relaxed SIMD. Она действует как надежный, универсальный запасной вариант, обеспечивая эффективное выполнение моделей машинного обучения на любом устройстве, даже на тех, у которых нет выделенного GPU.
Там, где позволяет оборудование, LiteRT.js переключается на высокую скорость с MLDrift over WebGPU. Это основной путь ускорения GPU, использующий нативные ядра GPU напрямую. Он устраняет узкое место производительности оркестрации JavaScript для шейдеров, которое преследовало TensorFlow.js, позволяя значительно увеличить скорость инференса за счет перемещения тензорных вычислений с CPU.
Заглядывая в будущее, LiteRT.js также включает экспериментальную поддержку NPU через WebNN API. Доступная в Chrome и Edge через Origin Trials, эта функция нацелена на специализированное аппаратное обеспечение для нейронной обработки. Она обещает повышенную энергоэффективность и еще более быстрый инференс для специализированных рабочих нагрузок ИИ по мере того, как интеграция NPU становится все более распространенной в потребительских устройствах.
Этот интеллектуальный, многоуровневый подход гарантирует, что LiteRT.js обеспечивает как широкую совместимость с самым широким спектром устройств, так и максимальную производительность на современном кремнии. Он эффективно обеспечивает перспективность ИИ на основе браузера, делая передовое машинное обучение по-настоящему практичным для веб-приложений.
Бенчмарки: 60-кратный скачок скорости
Заявления Google о LiteRT.js впечатляют, но могут ли они быть реализованы? Согласно их официальным бенчмаркам, проведенным на 2024 MacBook Pro с M4 silicon, LiteRT.js достигает до 3-кратного ускорения инференса по сравнению с другими веб-средами выполнения для распространенных моделей зрения и аудио на CPU и GPU. Более требовательные задачи, такие как отслеживание объектов или манипуляции с изображениями на GPU или NPU, показывают еще больший прирост, с увеличением производительности от 5 до колоссальных 60 раз, в зависимости от задачи.
Независимое тестирование в значительной степени подтверждает эти более скромные заявления. Например, приложение для захвата 3D-движения в реальном времени, полностью работающее в браузере, продемонстрировало стабильные 120 кадров в секунду с использованием WebGPU по сравнению с 38 FPS на CPU. Это означает примерно 3-кратное увеличение частоты кадров и 2,8-кратное сокращение времени инференса, что напрямую подтверждает менее экстремальные цифры Google в практическом сценарии.
Естественно, вам следует управлять своими ожиданиями; эти впечатляющие цифры не гарантированы для всех. Сама Google признает, что это наилучшие сценарии. Ваши фактические результаты будут значительно варьироваться в зависимости от вашего конкретного GPU, потенциального thermal throttling и качества драйверов вашего устройства. Для тех, кто хочет глубже погрузиться в технические детали, Google предлагает обширную документацию по LiteRT for Web with LiteRT.js | Google AI Edge.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Помимо скорости: Новая эра веб-ИИ
Помимо чистой скорости, LiteRT.js предоставляет значительные практические преимущества, которые напрямую влияют на ваш бюджет и рабочий процесс. Теперь вы можете запускать существующие .tflite models непосредственно в браузере, устраняя сложные преобразования и экономя время разработки. Для пользователей PyPyTorch, LiteRT PyTorch предлагает простой путь к файлам `.tflite`, а AI AI Edge Quantizer уменьшает размеры моделей без полной переработки. Это значительно снижает барьер для разработчиков, желающих внедрить сложный ИИ в Интернет.
Этот скачок производительности открывает совершенно новый класс веб-приложений, перемещая тяжелую обработку с удаленных серверов. Представьте себе обнаружение объектов YOLO в реальном времени или оценку 3D-позы с помощью вашей веб-камеры, все это работает непосредственно в вашем браузере. Эти client-side operations обеспечивают повышенную конфиденциальность пользователей и устраняют затраты на серверы, делая расширенные функции ИИ более доступными и экономичными для разработчиков и предприятий. Демонстрации Google уже показывают впечатляющие возможности, такие как монокулярная оценка глубины и масштабирование изображений.
Будущее выглядит еще более привлекательным для ИИ на основе браузера. Google уже анонсировала LiteRT-LM.js, который принесет эти преимущества производительности большим языковым моделям. Это означает запуск полноценных LLM, таких как веб-оптимизированные варианты Gemma 4, локально в браузере, открывая двери для продвинутых, частных ИИ-опытов без зависимости от удаленных серверов. Это настоящий прорыв для ИИ на устройстве.
Часто задаваемые вопросы
Что такое LiteRT.js?
LiteRT.js — это новая библиотека JavaScript от Google, которая позволяет разработчикам запускать модели машинного обучения со скоростью, близкой к нативной, непосредственно в веб-браузере. Она использует WebAssembly, чтобы перенести высокопроизводительный движок инференса LiteRT от Google, уже используемый на Android и iOS, в Интернет.
Чем LiteRT.js быстрее TensorFlow.js?
TensorFlow.js полагается на ядра, основанные на JavaScript, что создает узкое место в производительности. LiteRT.js обходит это, компилируя свои оптимизированные ядра C++ в WebAssembly, что позволяет ему более эффективно использовать аппаратное обеспечение CPU и GPU для значительно более быстрого инференса.
TensorFlow.js теперь полностью устарел?
Не совсем. Хотя LiteRT.js позиционируется как мощная замена для инференса моделей благодаря своей превосходной производительности, TensorFlow.js все еще может быть полезен для задач предварительной и постобработки в конвейере ИИ. Разработчики могут использовать LiteRT.js специально для этапа выполнения модели, сохраняя при этом свой существующий код TensorFlow.js для манипуляций с данными.
Какие модели может запускать LiteRT.js?
LiteRT.js может запускать любую существующую модель, сохраненную в формате TensorFlow Lite (.tflite). Он также предоставляет прямой путь преобразования для моделей из PyTorch, JAX и стандартного TensorFlow, что делает его очень совместимым с существующими рабочими процессами ML.
