(для TLDR; сразу перейти к выводу)

Управлять — это не только навязывать свой путь, но и позволять или намеренно вводить хаос, чрезмерно усложнять вещи, которые могли бы быть относительно простыми, или блокировать чужие предложения. И это то, что происходит в мире ИТ в целом и в веб-браузерах в частности.

Однажды присоединился к группе стандартизации веб-обучения W3C. Имея пару лет опыта работы с Javascript и зная, что каждый раз, когда появляется новый API, в репозитории npm появляется 20 новых пакетов, которые «упрощают работу» и что они почти всегда используются вместо оригинального API — войдите, чтобы попытаться убедиться в этом. сделано правильно на этот раз. И я потерпел неудачу (извините, ребята, если ML, наконец, появится в браузерах, это будет нелегко, и, скорее всего, не понадобятся обучающие функции и сторонние библиотеки). Мое участие в нем было похоже на отскок от стены. А если кратко — там были представители всех крупных компаний, таких как Google, Microsoft, Intel, Qualcomm и далее по списку…

До того, как я присоединился к моему воображению, было, что есть группа суперумных людей, которые обсуждают умные идеи и выбирают более менее демократичным способом лучшее ИТ-решение. Что ж — я ошибся ;-) Может быть, они и умные, но они были далеки от обсуждения чего-либо, это было больше похоже на небольшое притворство в борьбе, чей стандарт лучше и, следовательно, должен быть портирован на браузеры и все. Microsoft выбирает ONNX, Google — Tensorflow. Но только немного, на самом деле (в конце концов, оба в какой-то степени совместимы). Любой другой вариант или компромисс не рассматривались. И это не вызвало бы у меня особого любопытства в отношении того, что происходит, если бы в дискуссии были аргументы, даже сомнительные. Но дело в том, что ни на какие другие предложения, ни на призывы к обсуждению или рассуждениям они вообще не отвечали.

Поэтому я поднял тему прозрачности процесса стандартизации. Моя тема была быстро удалена из обсуждения лидером группы и получила личное сообщение. В сообщении было немного «бла-бла-бла» и одно ключевое слово: ПОСТАВЩИК. Сообщение в основном говорило о том, что именно вендор решает, что внедрять, а что нет, поэтому у меня есть единственный реальный вариант — следовать тому, что хочет вендор (и работать на него бесплатно как член группы и легитимировать всю хрень). И есть только один «вендор», который может диктовать рынок браузеров — Google. Просто чтобы составить представление о доле рынка браузеров вендоров: Chrome — 70%, второй в списке — Firefox — 7%. Поскольку Microsoft в этой области теперь зависит от Google, следующие 8% сказали бы — тоже принадлежат Google. Хороший! Кто бы не хотел иметь почти 80% доли рынка???

Кто-нибудь умный тогда спросит: подождите, а зачем тогда W3C, если это на самом деле «вендор», который решает, что внедрять? Ответ прост — сделать вид, что монополии нет, чтобы у вендора была отговорка перед регуляторами. У W3C были только «платные стулья» (стать членом группы стандартизации можно было только заплатив значительную сумму $$$$$$), но это уже было предметом подозрений в монополизации, поэтому недавно им пришлось изменить правило и разрешить «бесплатные стулья», как у меня. Но это опять же просто притворство плюрализма, так как вы не будете иметь влияния на стандарт, если у поставщика нет бизнеса в конкретной теме, или вы поддержите идею поставщика.

Следующий вопрос: почему вендор не слушает, если есть идеи получше? Чтобы ответить на этот вопрос, я должен привести вам пример того, за что именно я выступал в этой группе:
1. Простой в освоении API (для простых нейронных сетей он должен быть чем-то похож на простоту библиотеки Brain.js, а для новичков в машинном обучении должен быть плавный старт перед тем, как прыгнуть в глубокую воду)
2 . Простой в использовании API без необходимости использования какой-либо сторонней библиотеки (может быть даже поверх полноценного API tensorflow или ONNX или чего-то еще… мне все равно)
3. Возможности обучения (обучение/переобучение/обновление моделей машинного обучения в браузере — не все используют предварительно обученные модели или модели, требующие большой вычислительной мощности для обучения, некоторые на самом деле даже оценят НС, которые могут адаптировать/изменить поведение «на лету» »)

Итак, по первым 2 пунктам я могу привести вам пример, чтобы получить представление о том, о чем я говорю. Поставщики браузеров включили API OpenGL и назвали его webgl. И пока все круто, низкоуровневый доступ к такой штуке из JS дает свободу, что хорошо, НО… 98% из вас все равно будут использовать довольно тяжелую библиотеку с гораздо более простым API под названием Three.js вместо низкоуровневого API, если оно придет в 3D-графику в браузере. То же самое произойдет сейчас с машинным обучением в браузерах.

Так почему же вендор не сделает простой и удобный API? Наверное, потому что это будет означать ненужные затраты, не приносящие прибыли. Вендору не нужны простые костюмы API, дети, студенты или разработчики без сверхвысоких требований от ML, у вендора есть люди, которые хорошо знают тензорный поток, затем они хотят продвигать тензорный поток как стандарт, поэтому все, что им нужно, это просто тензорный поток.

По состоянию на 3-й пункт. Это немного сложно. Как и прежде, это также требует немного больше усилий по реализации (поэтому будут затраты без прибыли), но на самом деле не намного больше этих усилий (говоря как разработчик, который реализовал пару NN с нуля). Но главное здесь заключается в том, что внедрение возможностей обучения представляет собой серьезную угрозу для всех инвестиций в облачные вычисления с использованием графического процессора. Браузеры без возможностей обучения — это просто потребители обученных моделей, то есть потребители всей вычислительной мощности, которую они уже продают. Хочу отметить, что под «они» я подразумеваю не только Google. Это также Microsoft, Amazon, Facebook и так далее. И вот тут начинается большая игра.

Есть вещи, которые «читаю между строк» ​​— никаких доказательств/прямо никто не подтвердит — есть только одно письмо, после которого я прекратил посещение групповых встреч. Но пока есть одно важное сообщение:

Браузеры и их API правят современным миром. Действительно ли мы хотим, чтобы Google делал это за нас?

Мой вывод будет таким:

Google — монополия, обладающая слишком большой властью в Интернете и поэтому легко злоупотребляющая своим положением (и, скорее всего, так и есть). Стандартное решение должно быть принято против монополии, и в этом случае Google должен ОТДЕЛИТЬ подразделение браузера в ПРОЗРАЧНЫЙ НЕЗАВИСИМЫЙ ФОНД, тем самым уравняв Google с другими компаниями на рынке. Поскольку Google имеет и еще какое-то время будет получать прибыль от текущего полного контроля над браузером, он, вероятно, должен быть обязан спонсировать фонд в течение 2–3 лет. После этого интернет снова станет более честным :-)

Здоровье мировой интернет-экономики, справедливый доступ к интернет-рынку не должны быть оставлены на откуп Google.

Ваше здоровье!

Даниэль

Пс. Я поляк, извините за мой не очень красивый английский :-)