Джулиан Уилкисон-Дюран создал для браузера то, что он называет моделью машинного обучения бедняков.
«Что я действительно хочу сделать, так это внедрить машинное обучение во внешний интерфейс, и я не верю, что моделям нужен миллиард параметров, чтобы делать действительно крутые вещи, особенно во внешнем интерфейсе», — сказал он. «Я намеревался создать новую модель, для запуска которой не требовалось бы такое огромное количество параметров и огромный объем памяти, но [is] по-прежнему способен делать очень практичные вещи внутри веб-браузера».
Результатом является AsterMind-ELM, библиотека машинного обучения с открытым исходным кодом, написанная на JavaScript, а не, добавил он, библиотека Python с оболочкой JavaScript. Он представил проект с открытым исходным кодом на Международной конференции JavaScript devmio, проходившей в Бруклине на прошлой неделе.
Уилкисон-Дюран, инженер полного цикла программного обеспечения в Ippon Technologies, создал AsterMind-ELM как модульную библиотеку Extreme Learning Machine (ELM) для JavaScript и TypeScript. Он переписал сеть Extreme Learning Machine (ELM) на JavaScript, чтобы ее могли использовать разработчики внешнего интерфейса.
Понимание ELM
ELM — это тип алгоритма нейронной сети, разработанный в 2006 году Гуанг Бин Хуангом, чьи исследования в Наньянском технологическом университете в Сингапуре сосредоточены на нейронных сетях. ELM используется в машинном обучении и искусственном интеллекте. Он быстро и эффективно решает такие задачи обучения, как классификация, регрессия и кластеризация.
Но в 2006 году исследователи пытались решить проблему подбора оптимальной скорости обучения для вашего набора данных.
«Многие люди повсюду задают этот вопрос, потому что не хотят тратить миллиарды долларов на центры обработки данных», — сказал он.
Решение Хуанга заключалось в том, чтобы спросить, что, если мы не будем обучать все это, создавая скрытый слой, который является совершенно случайным и никогда не трогается. Будет ли это еще работать?
«Для многих инженеров, особенно в его время, это звучало как доставка производственного кода без выполнения модульных тестов. Это звучит просто безумно», — сказал Уилкисон-Дюран. «То, что он сделал, было простым математическим трюком, который мы все выучили в старшей школе. Он сказал: «Что, если мы используем скрытый слой в качестве карты?»
«Вся магия происходит внутри скрытого слоя», — добавил он. Это все равно, что смотреть на город и пытаться указать направление — вы не можете видеть отдельные улицы, потому что здания слишком высоки. «Но что, если разместить сетку поверх города», — сказал Уилкисон-Дюран.
«Вдруг, [IT’s] что-то вроде «Морского боя»: так что вы можете сказать: «О, берег находится в квадрате три-пять, а парк — в квадрате четыре-три», — объяснил он.
«То, что я понял, — это нейронные сети, и все, что они собой представляют, — это матричная математика».
– Джулиан Уилкисон-Дюран, создатель AstroMind ELM
По его словам, это дает разработчикам неточную ссылку, которая никогда не будет точной, но это достаточно хорошая карта данных, чтобы можно было определить, где что находится.
Теперь, когда у вас есть карта, как понять, как добраться из точки А в точку Б. Ответ — инверсия Мура-Пенроуза, также известная как псевдоинверсия.
«Это простая манипуляция с матрицами, которую большинство из нас изучали в старшей школе, и мы не понимали, зачем ее изучаем; и я тоже не совсем понимал, почему я изучал матричную математику в старшей школе, примерно год назад», — сказал Уилкисон-Дюран. «То, что я понял, — это нейронные сети, и все, что они собой представляют, — это матричная математика».
Подумайте о скрытом слое следующим образом: когда данные помещаются в скрытый слой, они действуют как скомканный лист бумаги, объяснил Уилкисон-Дюран. Astro-Mind ELM использует выходной слой в качестве GPS для карты скрытого слоя.
«Скажем, я беру лист бумаги и буквально мну его. Мне сейчас очень трудно пересказать предложения на этом листе бумаги или даже то, что на нем написано, но если я разверну этот лист бумаги, внезапно он снова обретет смысл», — сказал он.
ELM используется в ситуациях, когда скорость обучения в реальном времени и эффективность вычислений более важны, чем достижение абсолютной высочайшей точности. Область применения включает промышленные приложения, где скорость обучения имеет решающее значение, например, финансовое прогнозирование, анализ настроений в социальных сетях, системы управления в реальном времени и распознавание сложных образов.
AstroMind ELM переносит машинное обучение в браузер
В отличие от обычной нейронной сети, Astro-Mind ELM не находит все скрытые уровни. По его словам, он решает только последний уровень, поэтому потребление памяти и все настройки значительно уменьшаются.
«Вместо того, чтобы обучать миллиарды параметров, вы тренируете только последний слой», — сказал он.
AstroMind-ELM переносит возможности ELM в браузер и делает их доступными для разработчиков JavaScript.
«Я вставил его в браузер и спросил, что с ним можно делать теперь, когда оно в браузере?» — сказал Уилкисон-Дюран. «Я взял эту технологию, эту математику и все эти вещи, которые делают ELM, и переписал их на JavaScript… таким образом, что вы можете мгновенно обучать модели, и они работают внутри браузера без огромных объемов памяти».
Он еще раз подчеркнул, что AsterMind-ELM не был написан на Python и затем обернут в JavaScript, а был полностью переписан на JavaScript.
AstroMind-ELM не предназначен для обработки огромных языковых моделей, генерирующих огромные объемы текста, добавил он. Вместо этого, по его словам, это очень специфические модели, которые можно создавать и обучать на лету, а затем соединять друг с другом, как блоки Лего.
«AsterMind обеспечивает мгновенное, крошечное машинное обучение на устройстве в Интернете», — объяснил Уилкисон-Дюран в репозитории GitHub. «Он позволяет создавать модели, которые обучаются за миллисекунды, прогнозируют с задержкой в микросекунды и полностью работают в браузере — без графического процессора, без сервера, без отслеживания».
Помимо ELM, в библиотеку теперь входит ядро ELM.
«В данном случае ядра ELM не используют сетку», — сказал он. «Вместо этого они используют своего рода ориентиры. Если вы думаете о районе и идете по нему, там есть дерево, и оно большое, и я могу его узнать. Там есть почтовый ящик. Ядро ELM использует эти ориентиры, чтобы попытаться выяснить, где находятся ваши данные».
Демонстрация AsterMind ELM
Он продемонстрировал обучение модели вживую, используя всего 20 предложений. Затем модель классифицировала данные по миру, спорту, бизнесу и науке и технологиям. Он предсказал, что одно предложение будет относиться к науке и технике, и это было правильно. Но что интересно, это было правильно, когда оно давало предложению 48% вероятность быть наукой и технологией, в то время как другие варианты оценивались только в 18% и 17%.
«Он классифицировал все эти данные по мировому спорту, бизнесу, науке и технологиям, а затем в столбце все это ваши векторы», — сказал он. «Векторы ничего не значат, пока вы не дадите им имя, но в данном случае векторы представляют собой предложения, и еще одна вещь, на которую я хочу обратить внимание на этом слайде, — это то, что он небольшой, поэтому сама модель на самом деле представляет собой просто файл JSON».
«AsterMind обеспечивает мгновенное, крошечное машинное обучение на устройстве в Интернете».
— Репозиторий AstroMind на GitHub.
Он также продемонстрировал обучение модели распознаванию своего голоса и различению левого и правого, а затем играл в игру, используя голосовые команды для управления действиями.
«Это изменит правила игры, потому что все говорят: «О, интерфейс теперь DEA (умер по прибытии). Вы можете просто создать его с помощью LLM». [and] он может создавать богатый и динамичный пользовательский интерфейс, с помощью которого вы действительно можете делать удивительные вещи», — сказал он. «Что нам, как разработчикам JavaScript, на самом деле нравится делать, [is] создавайте потрясающие виджеты, создавайте потрясающие визуальные эффекты».
Он продемонстрировал тренировку ELM с использованием барабанного боя «четыре на полу», который является типичным рок-барабанным битом. Он быстро генерировал ритм, не дожидаясь, пока что-нибудь раскрутится или какое-либо вмешательство в серверную часть.
Библиотека AstroMind ELM также позволяет разработчикам объединять модели и запускать в браузере более одной модели одновременно. Он продемонстрировал несколько разных моделей из библиотеки.
«Главное то, что с помощью этой модели можно создавать фантастические вещи, — сказал он. — Ее можно обучать, используя очень мало данных. Для первоначального обучения можно даже использовать синтетические данные».
ELM также не требует от вас хранения данных. После обучения данные можно выбросить, чтобы освободить память.
Что касается контекстного окна, которое может быть проблемой для LLM, то ограничение находится в пределах скрытого слоя и ограничений памяти самого JavaScript, сказал он.
«Я провел обширные эксперименты в этом направлении и смог получить до 1000 параметров с помощью веб-работника и онлайн-обучения», — сказал он. «Это означает, что у меня может быть 1000 параметров, но это в веб-воркере, и я передаю данные обучения в потоковом режиме, чтобы они не занимали всю память одновременно».
Что вы можете с его помощью построить?
В репозитории объясняется, что с помощью компонентов библиотеки AstroMind ELM, таких как Kernel ELMS, Online ELM, DeepELM и разгрузка Web Worker, разработчики могут создавать:
- Например, частные классификаторы на устройстве по языку, намерениям, токсичности или спаму, которые переобучаются на основе отзывов пользователей;
- Поиск и изменение ранжирования в реальном времени с помощью компактных вложений для поиска и RAG;
- Интерактивные творческие инструменты, такие как генераторы барабанов и автозаполнение, которые реагируют мгновенно;
- Пограничная аналитика: регрессоры/классификаторы на основе данных, которые никогда не покидают страницу; и
- Глубокие цепочки ELM для мощного конвейера, которые по-прежнему крошечные и прозрачные.
Уилкинсон-Дюран надеется создать сообщество вокруг проекта с открытым исходным кодом. Он сказал, что те, кто хочет принять участие на данном этапе, могут сделать запрос на включение, который он рассмотрит. Одним из результатов, которых он хочет, является создание экосистемы весов, которыми разработчики могли бы поделиться.
«Чего я действительно хочу, так это того, чтобы люди могли улучшать эти модели, поэтому я сделал их открытыми, чтобы каждый мог разобраться и помочь мне понять, как сделать их еще более мощными, чем они уже есть», — сказал он. «Я имею в виду, что это не требует многого. Вы можете передать ему любые данные, которые хотите, обучить его мгновенно, и кого волнует, если это не сработает сразу, потому что вы не тратите на это миллиарды долларов, как LLM. Вы используете то, что у вас есть, и тренируетесь с тем, что у вас есть».
ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Лорейн Лоусон — опытный репортер в области технологий, которая в течение 25 лет освещала технологические вопросы, от интеграции данных до безопасности. До прихода в The New Stack она работала редактором сайта банковских технологий Bank Automation News. У нее есть… Подробнее от Лорейн Лоусон.