Тема: Поддержка исполнения моделей машинного обучения в виртуальных машинах JavaScript для платформы KInference
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Обзор 6
1.1. ONNX 6
1.2. TensorFlow.js 8
1.3. KInference 9
1.4. Kotlin Multiplatform 10
1.5. Браузерные оптимизации 11
2. Реализация 16
2.1. Переход на Kotlin Multiplatform 16
2.2. Сравнение браузерных оптимизаций 19
2.3. Подключение TFJS к KInference 20
3. Апробация 28
3.1. Эксперимент с моделью GPT-2 29
3.2. Эксперимент с моделью BERT 29
Заключение 31
Список литературы 32
📖 Введение
На данный момент существует два концептуальных подхода к интеграции моделей машинного обучения в веб-приложения. Первый подход предполагает удаленное исполнение моделей машинного обучения: необходимые данные из веб-приложения на удалённый сервер отправляются, далее вычисляется результат работы модели, и результат пересылается обратно пользователю. Данный способ имеет ряд недостатков: зависимость от скорости интернета пользователя, необходимость обеспечения конфиденциальности данных и затраты на содержание серверов для запуска моделей.
Второй подход заключается в исполнении модели машинного обучения напрямую в среде исполнения веб-приложения, то есть в браузере пользователя. Данный подход исключает все недостатки предыдущего, но при нем производительность модели зависит от вычислительных мощностей устройства пользователя. Тем не менее, для широкого спектра “простых” моделей, то есть моделей с небольшим числом операторов, этот вариант вполне подходит.
Вариант с локальным исполнением моделей машинного обучения неизбежно приводит к необходимости выбора системы описания и исполнения модели, способной работать в браузере. Существует большое количество библиотек для создания моделей машинного обучения, реализующих разные форматы их представления, и задача нахождения единой системы запуска для всех них далеко не тривиальна. К тому же необходимо, чтобы система исполнения была эффективна и обеспечивала приемлемую задержку, так как многие задачи требуют быстрого отклика.
Для решения проблемы поддержки многих форматов моделей был разработан универсальный формат Open Neural Network Exchange (ONNX) , в который можно конвертировать модели из различных фор-матов.
В настоящее время на языке Kotlin разрабатывается библиотека KInference . Её основная цель — запуск моделей машинного обучения в формате ONNX. На данный момент KInference поддерживает исключительно JVM как среду исполнения, поддержка JS виртуальных машин — безусловно важная задача для развития данной библиотеки.
Постановка задачи
Целью данной работы является поддержка исполнения моделей машинного обучения в виртуальных машинах JavaScript для платформы KInference.
Для достижения поставленной цели требуется:
• реализовать возможность запуска платформы KInference в виртуальной машине JavaScript;
• провести обзор оптимизаций математических операций, доступных в браузере;
• провести апробацию оптимизаций математических операций, доступных в браузере;
• выбрать и реализовать наиболее оптимальные варианты оптимизаций;
• провести апробацию конечного решения.
✅ Заключение
• реализована возможность использования KInference в проектах на JS;
• проведён обзор оптимизаций математических операций, доступных в браузере;
• проведена апробация оптимизаций математических операций, доступных в браузере;
• разработана и интегрирована новая реализация KInference для JS с использованием тензорных операций из библиотеки TFJS и технологии WebGL;
• проведена апробация конечного решения.
В рамках дальнейшей работы планируется провести эксперименты с WebGPU и расширить поддержку операторов в GPU реализации KInference.
Результаты, полученные в ходе данной работы, будут использованы в проекте Grazie Platform компании JetBrains для осуществления возможностей автодополнения и исправления грамматических ошибок в текстах на английском языке локально в веб-редакторе Grazie и рас-ширении для браузеров Google Chrome — Grazie Chrome Extension.



