Это ограничение только в голове у кодеров. У разработчиков и инженеров все средства хороши, особенно если нужно не абстракциями обмазываться а последний такт выжимать из железа, и последний байт.
Прекрасный стерильный и стабильный мир )) Ни слова о "а зачем вообще работать?", и "что будет если остаться без работы". Куда интереснее было бы почитать о выживании в непредсказуемом/нестабильном мире, неидеальном разношерстном мире, полном конфликтов, недопонимания и глюков, о мире с борьбой за ресурсы и их неравномерном распределении (как среди людей, так и среди машин и людей), о мире войн и катастроф, когда оставаться "нормальным и адекватным" уже героизм.
Чтобы этот код работал у кого-то ещё, нужно тягать за проектом (и собирать ручками) целый пропатченый Qt ! Ради этого мелкого типа такое городить - немыслимо.
При всех плюсах отсутствия сборщика «мусора» пока, даже в продвинутых Go, С# и Kotlin, он есть, а в Rust — его уже нет. Почему? Потому‑что в Rust сделали очень продвинутый, вобравший в себя множество современных знаний о языках программирования (и известных проблем), компилятор, использующий афинные типы данных (уникальная возможность, о ней в следующий постах), алгебраические «sum/product» типы и «pattern‑matching» по ним, концепции безопасных «shared» и «exclusive» ссылок для оптимизаций ненужных «aliasing» (этой проблеме в современных ЯП не один десяток лет и в Rust ее красиво решили) и строгую систему типов, позволяющую быстро и дешево писать высоконагруженный многопоточный код, работающий со скоростью C/C++ и при этом не «падающий» из за «неопределенного поведения».
"Смешались в кучу кони, люди, колбаса и волчий хер" :D
Начинаете оду расту за отсутствие GC, но это благодаря RAII и деструкторам Drop trait'у, scope'ам и lifetime'ам, и система типов с компилером тут ни при чём, это старо как мир, и не присуще только rust'у. А вот борьба с пресловутым borrow checker'ом как раз выливается в использование Rc/Arc (reference counting), что некоторыми считается аналогом GC (потому что это не-мануальный мемори менеджмент, пусть и не полноценный GC). Афинные и алгебраические типы, паттерн матчинг - это всё для красного словца.
позволяющую быстро и дешево писать высоконагруженный многопоточный код, работающий со скоростью C/C++ и при этом не «падающий» из за «неопределенного поведения».
За наброс на плюсы обидно, наброшу в ответ, напомнив про банальный кейс "rust panics on overflow" :D В плюсах не так много UB, в rust'e своих приколюх хватает, вроде "память течёт? - это не проблема, ведь она не кораптится, значит всё безопасно", и менежмент shared + weak указателей он оставляет на откуп юзеру, благодаря чему люто течёт память в redox и из последнего - в cosmic.
Так и хочется добавить меметичное: "I never asked for this", или "остановитесь" :D
После всех этих раздуваний языка, ИМХО тёплый ламповый c++11 выглядит ещё лучше - после него ничего существенно так и не добавили (кроме концептов, ну и модулейк коих редко встретить), как добавили лямбды, enum class, sfinae, move-семантику, constexpr, auto, так ничего радикально нового нет, пока рефлексию не завезут. Почти всё можно выразить через более базовые вещи. Ranges и fmt в stl не в счёт.
Новые потуги втискивания таких "фич" похожи уже на стагнацию, на фоне которой симпатичными становятся более стройные zig'и, rust'ы, cppfront'ы и carbon'ы :D Рефлексии/интроспекции как не было так и нет. Большинство хороших системных либ вроде freetype/harfbuzz/json/stb/sdl/png ... тысячи их, всё-ещё поддерживают именно c++11, если не C90, новых проектов на последних плюсах чёт не видно, редко встречаются робкие переходы на c++17 (и то, потому что, скажем, gtest на него перешел и задал тренд) - проекты на других ЯП, вроде "ржавого" выглядят очень смачно (мне даже приходилось большие либы бэк-портировать на плюсы), и не потому что всё там очень круто, а потому что плюсы понемногу сами-себя закапывают.
Сори за хейт-спич, наболело, и грустно становится, от того, куда движется родной язык.
Оффтоп: детерминизм симуляции у вас, напомнили мне похожее видео. Идея использования этого для криптографии тоже интересная - по сути это простой алгоритм, но с ооочень длинным ключом (состоянием).
Хэх, прочёл даже несколько раз, после того как ничего не понял и даже показалось что пьян, пытаясь разобраться во второй раз ... но, кажется, дело в другом...
В 2016 году меня посетила мысль о создании самообучающегося искусственного интеллект
окей, допустим почему-бы и нет; openai, google и прочие титаны не смогли в самообучение, тренят LLM на размеченных (и отфильтрованных) людьми данных... они просто не так хороши. Просто ... не смогли формализовать задачу постановки задачи самому себе, недотёпы.
Дальше следует упоминание генетических алгоритмов, а почему "графовые нейросети" (хм, видимо, бывают древовидные и с прочими ущербными топологиями) так перспективны - нам должно быть очевидно. Дальше - что-то вроде блок-схемы алгоритма, но все узлы прямоугольники (хотя есть ветвление), или ... это не алгоритм действий, а что-то вроде UML-диаграммы компонентов, ведь там есть "пользователь" (видимо, столь-ничтожный компонент "самообучаемой графовой нейросети GNN" (так указано в заголовке, ага, масло-масляное), что он среди прочих в нижнем регистре). Хм, не понятно.
По сути, кластер является самым компонентом элементом в иерархии программ, которые отвечают за восприятие окружающей среды и анализ происходящего. Кластеры сгруппированы в группы. Каждая группа отвечает за определенный функционал, как и нейроны в мозге человека. Каждая группа кластеров входит в раздел "мозга", который специализируется на решении задач в определенной области. Кластер сам по себе достаточно универсален по функциональности и его копии могут использоваться для решения различных задач.
Это впечатляет, но всё-ещё не понятно для обывателя, а то и хуже - похоже на shuffle из набора слов [функционал, мозг, анализ, восприятие, нейроны, кластер], так и просится цитата небезызвестного критика:
Хватит трепаться, покажите мне код (с) Линус Торвальдс
В придачу к лекциям на странице курса университета были и ссылки на научные статьи и исходный код на питоне. Таким образом, стало возможным заменить громоздкий кластер на граф знаний. При этом, в качестве постоянно обучаемой модели можно использовать GNN. На примере простого графа, который содержит несколько ссылок на функции python, мы с командой разработки scisoftdev, получили только рабочие варианты последовательностей функций. Мы создали граф знаний, который состоит из ссылок на функции, ...
Так каким образом? В публикации был какой-то код, потом с ним произвели модификации, получили нейросеть которая выдаёт "последовательность указателей на функции" (надеюсь, хэх, не копии самих функций) (про арность, последовательность вызова функций и передачу аргументов умолчим, это ... очевидно и просто, нейросети легко умеют в это, и в вывод типов).
то есть программа состоящая из конкретной последовательности функций при запуске выполняется полностью без ошибок.
Видимо, последовательное выполнение функций без взрывания пайтоновской vm и было фитнесс-функцией, эмм ... тренировки (?) :D Про это ничего не сказано, видимо уже на этом этапе происходит самообучение :D
Посмотрев на сайт на английском (как-то не скрепненько) и линкедин (уоу, а он разве не забанен?!) стало ясно - серьёзная команда, и код скорее всего проприетарная разработка, нечего тут надеяться на простой и понятный пример).
На вход мы подаем массив в виде строки
python-way, не иначе ;D О квантизации умолчим, самообученный агент автоматизировал это за нас.
как видно из вывода программы
Сори, вывод забыли добавить )) Или это пасхалка в стиле "It is obvious" как во многих математических публикациях ))
Таким образом, этот небольшой эксперимент доказал, что возможно не только строить граф знаний, но и дополнять его новыми знаниями. Для этого нужно всего два инструмента - машинное обучение на графах GML и графовые нейронные сети GNN.
Эх, а самообучение где? - Упс, как-то вывод работы целой команды (компании) немного о другом вышел. От "графа знаний", и прочих совковых представлениях об "экспертных системах" тошнило ещё лет десять назад.
-------
Ребят, от статьи тянет каким-то результатом отрыжки chatgpt, или чем-то ещё хуже. Интернет и так превращается в помойку, а хабр в не-торт, давайте не будем так.
GPT-4 – сильный искусственный интеллект. И станет еще сильнее, когда получит возможность продумывать свои ответы. По своим свойствам он будет сравним не с человеком, а с человечеством как «супер-организмом»
Мышление человека – просто угадывание следующего слова + рекурсия + рефлексия
Не знаю, во время написания статьи, Вы просто угадывали слова (:D) вместо осмысленного анализа, но следуя общепринятой класификации, ChatGPT 4 НЕ сильный ИИ (как бы маркетолухи не старались убедить плебс в этом).
Это лишь "многомерный интерполятор того, чему его натренили", плюс что-то вроде цепи Маркова. У него нет воли, самосознания, он не делает прогнозов (аппроксимацию, а ведь с такими знаниями, вполне мог бы), не инженер, не строит ракеты, не декодирует геном, не лечит болезни, не открывает теории всего, etc, но легко обманывает легко внушаемых :D
Отличается более низкоуровневым API, позволяющим самому описывать пайплайны; отличия те-же, что и между Vulkan и OpenGL. С помощью "неистового вкуривания талмудов доков, кучи бойлерплейта, и матерщины" можно выжать больше, чем используя WebGL (который вдохновлён OpenGL ES), или даже самому реализовать такой API. Если Вы уже знакомы с WebGL, для сравнения можете посмотреть базовый урок: как отрисовать треугольник.
Если Вы (как и я) "ценитель артхауса и байтоёбства" (:D) - можете посмотреть как с этим работать используя c++ + emscripten (на примере небезызвестной Dear ImGui): imgui wgpu backend, imgui wgpu example (низкоуровневость уже заметна на примере шейдеров - используется не glsl (который ещё надо скомпилировать), а сразу скомпиленый spir-v), а если вы из лагеря rust: sotrh.github.io/learn-wgpu.
"Таким приложениям" доступ к API ил ФС - это как? - Анонсирован просто запуск существующих веб-приложений (сторонних веб-сайтов) из домашнего экрана (ярлык, открывающий WebView).
Тут либо переписывать всё с нуля на native ("Аврора" основана на Sailfish OS, а значит переписывать нужно на Qt/QML), либо на манер "Electron'а" - расширять веб-логику, инжектами вызовов node'like API (и то, когда такое будет анонсировано).
Илюстрации сгенеренные ИИ, это просто треш! Вы сами-то смотрели в эти пикчи?! Статья , похоже, тоже сгенерена. И этот инфоциганский мусор в будущем будет только накапливаться, забивая харды серваков.
UPD: хах, судя по ватемарку "DALLE Malevich", это показатель мощи "rudalle" :D Прикреплю/продублирую эту мазню, на случай если потрут:
Интересно было бы посмотреть на rust gRpc с flatbuffers вместо protobuf (for perfomance reason). gRpc + flatbuffers на c++ вроде можно (хотя были казусы, когда тима gRpc ломала возможность вставить flatbuffers заместо protobuf) - соответственно, интересно, можно ли так-же на rust?
Замечу, что "воз и ныне там": РАН сменяется на Сколково, компании меняются, похоже, всё топчется на месте как минимум 4 года. Светящийся табак в продажу не поступил, не говоря о других культурах (вроде роз), города не освещаются ночью травой и деревьями вместо фонарей (статья за 2014 год) :D
Справедливости ради, не взирая на попытки rust-оманов таки пропихнуть это в ядро, версия v9 будет только в версии ядра 6.x, то есть:
на данный момент это публичная бета;
туториалов по этому (в отличие от написания модулей на С) нет;
время жизни этой поделки (просто rust-враппер, ещё одна абстракция над С) не известно (rust-for-linux-kernel ещё не родился, в отличии от С) (see: 1 , 2:
Практическое применение эффекта Линди — оценка явлений с точки зрения их пригодности к применению в реальных условиях. То, что существует долго, доказывает свою «линдиустойчивость» и, следовательно, заслуживает доверия.
стоит ли начинать бизнес/долгосрочный-проект на rust-for-linux - вопрос открытый: кроме хайпа, на этом поприще ничего серьёзного не создано (имхо, скорее всего, к счастью);
Уже подняли вой, что кольцо не заряжается, а значит дикий оверпрайс для одноразки.
Это ограничение только в голове у кодеров. У разработчиков и инженеров все средства хороши, особенно если нужно не абстракциями обмазываться а последний такт выжимать из железа, и последний байт.
Прекрасный стерильный и стабильный мир )) Ни слова о "а зачем вообще работать?", и "что будет если остаться без работы". Куда интереснее было бы почитать о выживании в непредсказуемом/нестабильном мире, неидеальном разношерстном мире, полном конфликтов, недопонимания и глюков, о мире с борьбой за ресурсы и их неравномерном распределении (как среди людей, так и среди машин и людей), о мире войн и катастроф, когда оставаться "нормальным и адекватным" уже героизм.
Чтобы этот код работал у кого-то ещё, нужно тягать за проектом (и собирать ручками) целый пропатченый Qt ! Ради этого мелкого типа такое городить - немыслимо.
"Смешались в кучу кони, люди,
колбаса и волчий хер" :DНачинаете оду расту за отсутствие GC, но это благодаря RAII и
деструкторамDrop trait'у, scope'ам и lifetime'ам, и система типов с компилером тут ни при чём, это старо как мир, и не присуще только rust'у. А вот борьба с пресловутым borrow checker'ом как раз выливается в использование Rc/Arc (reference counting), что некоторыми считается аналогом GC (потому что это не-мануальный мемори менеджмент, пусть и не полноценный GC). Афинные и алгебраические типы, паттерн матчинг - это всё для красного словца.За наброс на плюсы обидно, наброшу в ответ, напомнив про банальный кейс "rust panics on overflow" :D В плюсах не так много UB, в rust'e своих приколюх хватает, вроде "память течёт? - это не проблема, ведь она не кораптится, значит всё безопасно", и менежмент shared + weak указателей он оставляет на откуп юзеру, благодаря чему люто течёт память в redox и из последнего - в cosmic.
Напомнило movfuscator (YouTube)
Так и хочется добавить меметичное: "I never asked for this", или "остановитесь" :D
После всех этих раздуваний языка, ИМХО тёплый ламповый c++11 выглядит ещё лучше - после него ничего существенно так и не добавили (кроме концептов, ну и модулейк коих редко встретить), как добавили лямбды, enum class, sfinae, move-семантику, constexpr, auto, так ничего радикально нового нет, пока рефлексию не завезут. Почти всё можно выразить через более базовые вещи. Ranges и fmt в stl не в счёт.
Новые потуги втискивания таких "фич" похожи уже на стагнацию, на фоне которой симпатичными становятся более стройные zig'и, rust'ы, cppfront'ы и carbon'ы :D Рефлексии/интроспекции как не было так и нет. Большинство хороших системных либ вроде freetype/harfbuzz/json/stb/sdl/png ... тысячи их, всё-ещё поддерживают именно c++11, если не C90, новых проектов на последних плюсах чёт не видно, редко встречаются робкие переходы на c++17 (и то, потому что, скажем, gtest на него перешел и задал тренд) - проекты на других ЯП, вроде "ржавого" выглядят очень смачно (мне даже приходилось большие либы бэк-портировать на плюсы), и не потому что всё там очень круто, а потому что плюсы понемногу сами-себя закапывают.
Сори за хейт-спич, наболело, и грустно становится, от того, куда движется родной язык.
Оффтоп: детерминизм симуляции у вас, напомнили мне похожее видео. Идея использования этого для криптографии тоже интересная - по сути это простой алгоритм, но с ооочень длинным ключом (состоянием).
Хэх, прочёл даже несколько раз, после того как ничего не понял и даже показалось что пьян, пытаясь разобраться во второй раз ... но, кажется, дело в другом...
окей, допустим почему-бы и нет; openai, google и прочие титаны не смогли в самообучение, тренят LLM на размеченных (и отфильтрованных) людьми данных... они просто не так хороши. Просто ... не смогли формализовать задачу постановки задачи самому себе, недотёпы.
Дальше следует упоминание генетических алгоритмов, а почему "графовые нейросети" (хм, видимо, бывают древовидные и с прочими ущербными топологиями) так перспективны - нам должно быть очевидно. Дальше - что-то вроде блок-схемы алгоритма, но все узлы прямоугольники (хотя есть ветвление), или ... это не алгоритм действий, а что-то вроде UML-диаграммы компонентов, ведь там есть "пользователь" (видимо, столь-ничтожный компонент "самообучаемой графовой нейросети GNN" (так указано в заголовке, ага, масло-масляное), что он среди прочих в нижнем регистре). Хм, не понятно.
Это впечатляет, но всё-ещё не понятно для обывателя, а то и хуже - похоже на shuffle из набора слов [функционал, мозг, анализ, восприятие, нейроны, кластер], так и просится цитата небезызвестного критика:
Так каким образом? В публикации был какой-то код, потом с ним произвели модификации, получили нейросеть которая выдаёт "последовательность указателей на функции" (надеюсь, хэх, не копии самих функций) (про арность, последовательность вызова функций и передачу аргументов умолчим, это ... очевидно и просто, нейросети легко умеют в это, и в вывод типов).
Видимо, последовательное выполнение функций без взрывания пайтоновской vm и было фитнесс-функцией, эмм ... тренировки (?) :D Про это ничего не сказано, видимо уже на этом этапе происходит самообучение :D
Посмотрев на сайт на английском (как-то не скрепненько) и линкедин (уоу, а он разве не забанен?!) стало ясно - серьёзная команда, и код скорее всего проприетарная разработка, нечего тут надеяться на простой и понятный пример).
python-way, не иначе ;D О квантизации умолчим, самообученный агент автоматизировал это за нас.
Сори, вывод забыли добавить )) Или это пасхалка в стиле "It is obvious" как во многих математических публикациях ))
Эх, а самообучение где? - Упс, как-то вывод работы целой команды (компании) немного о другом вышел. От "графа знаний", и прочих совковых представлениях об "экспертных системах" тошнило ещё лет десять назад.
-------
Ребят, от статьи тянет каким-то результатом отрыжки chatgpt, или чем-то ещё хуже. Интернет и так превращается в помойку, а хабр в не-торт, давайте не будем так.
Не знаю, во время написания статьи, Вы просто угадывали слова (:D) вместо осмысленного анализа, но следуя общепринятой класификации, ChatGPT 4 НЕ сильный ИИ (как бы маркетолухи не старались убедить плебс в этом).
Это лишь "многомерный интерполятор того, чему его натренили", плюс что-то вроде цепи Маркова. У него нет воли, самосознания, он не делает прогнозов (аппроксимацию, а ведь с такими знаниями, вполне мог бы), не инженер, не строит ракеты, не декодирует геном, не лечит болезни, не открывает теории всего, etc, но легко обманывает легко внушаемых :D
Отличается более низкоуровневым API, позволяющим самому описывать пайплайны; отличия те-же, что и между Vulkan и OpenGL. С помощью "неистового вкуривания талмудов доков, кучи бойлерплейта, и матерщины" можно выжать больше, чем используя WebGL (который вдохновлён OpenGL ES), или даже самому реализовать такой API. Если Вы уже знакомы с WebGL, для сравнения можете посмотреть базовый урок: как отрисовать треугольник.
Если Вы (как и я) "ценитель артхауса и байтоёбства" (:D) - можете посмотреть как с этим работать используя c++ + emscripten (на примере небезызвестной Dear ImGui): imgui wgpu backend, imgui wgpu example (низкоуровневость уже заметна на примере шейдеров - используется не glsl (который ещё надо скомпилировать), а сразу скомпиленый spir-v), а если вы из лагеря rust: sotrh.github.io/learn-wgpu.
"Таким приложениям" доступ к API ил ФС - это как? - Анонсирован просто запуск существующих веб-приложений (сторонних веб-сайтов) из домашнего экрана (ярлык, открывающий WebView).
Тут либо переписывать всё с нуля на native ("Аврора" основана на Sailfish OS, а значит переписывать нужно на Qt/QML), либо на манер "Electron'а" - расширять веб-логику, инжектами вызовов node'like API (и то, когда такое будет анонсировано).
Илюстрации сгенеренные ИИ, это просто треш! Вы сами-то смотрели в эти пикчи?! Статья , похоже, тоже сгенерена. И этот инфоциганский мусор в будущем будет только накапливаться, забивая харды серваков.
UPD: хах, судя по ватемарку "DALLE Malevich", это показатель мощи "rudalle" :D Прикреплю/продублирую эту мазню, на случай если потрут:
rust-фанатик детектед. что меряем-то? :D printf? гоу мерять доступы к массивам, там кажись, у раста накладные на bound checking :D
Напомнило movfuscator : youtube, github
Интересно было бы посмотреть на rust gRpc с
flatbuffersвместоprotobuf(for perfomance reason). gRpc + flatbuffers на c++ вроде можно (хотя были казусы, когда тима gRpc ломала возможность вставить flatbuffers заместо protobuf) - соответственно, интересно, можно ли так-же на rust?Тоже подумал о SCP-2399 Повреждённый Разрушитель :D
Amazon превращается в Arasaka
Вы это серьёзно (в 2022 году)?! Как говорится: "С разморозкой!".
Беглое гугление указывает на статьи о разработке Ямпольского с 2018 год:
Замечу, что "воз и ныне там": РАН сменяется на Сколково, компании меняются, похоже, всё топчется на месте как минимум 4 года. Светящийся табак в продажу не поступил, не говоря о других культурах (вроде роз), города не освещаются ночью травой и деревьями вместо фонарей (статья за 2014 год) :D
Вот чуть более детальная статья на Хабре, кому интересны детали: https://habr.com/ru/company/macloud/blog/554322/
Справедливости ради, не взирая на попытки rust-оманов таки пропихнуть это в ядро, версия v9 будет только в версии ядра 6.x, то есть:
на данный момент это публичная бета;
туториалов по этому (в отличие от написания модулей на С) нет;
время жизни этой поделки (просто rust-враппер, ещё одна абстракция над С) не известно (rust-for-linux-kernel ещё не родился, в отличии от С) (see: 1 , 2:
стоит ли начинать бизнес/долгосрочный-проект на rust-for-linux - вопрос открытый: кроме хайпа, на этом поприще ничего серьёзного не создано (имхо, скорее всего, к счастью);