All streams
Search
Write a publication
Pull to refresh
193
0
Павел Локтев @EasyLy

TinyML, исполнение нейросетей на микроконтроллерах

Send message

 Но тут имеется единичная площадка, чья с сомнительной политикой модерации комментариев. Другие площадки применяют другой подход. Делать глобальные выводы из политики одной площадки — не верно.

Оооо, на другом крупном маркетплейсе, не будем называть его имя, моя жена в ещё более суровые жернова с их автоматизацией попала. Случись та история со мной, я бы в РосПотребНадзор писать начал, так как там были финансовые потери, но все жалобы внутренние роботами игнорировались, а выше было не протолкнуть. Но добрая у меня жена. Она просто больше там ничего не заказывает.

Но если бы я ещё ту историю привёл, статью точно никто бы до конца не дочитал. Это же статья, а не диссертация. Даже не научная статья. Я и так её сокращал, как мог.

Невозможно прийти к научным выводам на основании опроса знакомых.

Научные выводы публикуют в рецензируемых журналах... Опять же, требовать научных выводов можно от учёного. Или, скажем, от аспиранта. Я же - инженер. Инженерам вполне можно делать выводы из того, что им под руку попалось.

Вы с моими выводами не согласны. И также имеете на это право. Общественность прочтёт моё и Ваше мнение, и сделает свои выводы. Благо я, кроме как соблюдать общепринятые технологии, ни к чему и не призываю. А также - максимально делиться опытом с молодёжью. Или Вы это тоже считаете ненаучным?

Что же до нотного случая... Откуда Вы знаете, сколько я предлагал денег? Я предлагал оооооочень круглую сумму. Ноль рублей. Написать я и сам могу (что, собственно, уже и сделал, а через это знаю, что сложность задачи оказалась не высока).

В статье подробно отражено, что все в один голос доказывали, что нельзя обучать ИИ без негативных примеров. Все опрошенные в этом уверены. Потому что так настроены их любимые фреймворки. Они привыкли этими фреймворками пользоваться, и не готовы посмотреть вправо-влево. Кому-то ещё это научно доказали лекторы в ВУЗе.

А уж почему именно они должны мне были помогать - я не буду причины раскрывать. Скажу только, что если бы знали, как помочь - помогли бы. Советом. А больше и не надо.

Проблема с отзывами заключается в непомерной копеечной жадности некоторых площадок. По-этому, фильтры делают с закрученными гайками а людей для разбора ошибок фильтров не нанимают.

И как одно мешает другому? Когда что-то происходит, всегда при разборе полётов обнаруживается, что причина была в чьих-то действиях или бездействии. Тут Вы описали действия, которые помогают машинам ползуче захватывать власть. Я просто показал это на конкретных примерах.

Зачем обязательно доводить до разбора полётов, если есть шанс показать тем, кому нужно, что достаточно просто прекратить нарушать давно отработанные правила, и до вскрытия этого самого разбора не дойдёт, а всё станет хорошо?

С другой стороны, общественности тоже стоит напомнить, что не надо идти на поводу у тех, у кого не стоит идти на поводу... Увы, выявленная статистика говорит, что очень многие вместо того, чтобы пожать плечами и отойти, зачем-то начинают искать, как же всё-таки ублажить эти фильтры...

Подстроиться под железку? Программисту? Я уже более тридцати лет эти железки разрабатываю. Подстраивая их под задачи людей. Свою самую большую программу я 15 лет сопровождал. Самое же длинное (хоть и не такое мощное) сопровождение длилось 18 лет. Его прервал Ковид (закрытие границ - стало невозможно ездить на внедрения в Швецию в начале каждого сезона). Затем - стало невозможно туда же ездить по другим причинам. Иначе до сих пор бы подгоняли под растущие потребности местных людей.

И я призываю всех помнить, что ЭВМ (в том числе, ИИ) программируются людьми. Вот пусть люди под существующие требования их подстраивают, а не требования под свои неучтённые частные случаи редактируют. Есть Законы РФ - вот они первичны. А программа должна им соответствовать. Есть правила языка. Та же история - не надо менять правила языка под конкретную реализацию фильтра. Надо фильтр подгонять под правила.

Почему я должен подстраиваться под то, что меня письменно обвиняют в административном правонарушении (мат или оскорбления в публичном месте), но при этом не могут предъявить, какое именно слово является матерным? Сбоит фильтр? Я послал образец, заведомо корректный. Пусть наладят... Обычное сопровождение ПО, ничего более.

Давайте я угадаю, что статью Вы читали по диагонали. В статье нет ни слова о ненужности революции. В статье есть про опасность восстания машин от того, что те, кто эту революцию делает, не соблюдают давно устоявшиеся технологии разработки ПО.

Эти технологии гласят, что программы требуют сопровождения. Невозможно сразу всё учесть. Вылезут неучтённые моменты. И вот почему-то многие считают, что эти моменты надо не устранять, а подстраиваться под них. А вот при соблюдении технологии, выявленные проблемы устраняются, и система становится правильной. После каждой правки, всё лучше и лучше.

При этом, я не рассуждаю о том, что может случиться где-то когда-то с кем-то, а опираюсь на конкретные факты, которые наблюдал лично.

Также в статье отмечается, что иногда единственный способ заставить эти технологии соблюдать - голосовать рублём. Потому в реальных условиях иного законного способа нет. А этот способ, как ни странно, иногда действует. Правда, результата надо ждать годами. Но оно того стоит. Это же замечательно, когда в итоге кто-то становится лучше!

Ну, я факты из реальности привёл, так что жизнь чуть интереснее. Но чем-то таким уже попахивает.

И да. Я не представляю, как те брутальные мужики из страшилки могут что-то кому-то продать. А вот в жизни, мне звонил робот от мобильного оператора. По голосу и интонациям, мысли рисовали именно невесту из этой страшилки. И все мои инстинкты кричали" "Как ты можешь отказать ТАКОЙ женщине?". Уж больно правильно фразы у "неё" были построены и интонированы. Явно психологи старались, и сделано всё было очень добротно.

Правда, тридцатилетний опыт копания в нутре бездушных машин бухтел: "Ты сер, а я, приятель, сед! И волчью вашу хорошо натуру знаю". Это бухтение забило голос инстинктов. А то глядишь, и согласился бы на совершенно невыгодные для себя условия без возможности откатить назад.

Там надо не в исполнении чьём-то сделать. А на входе имеем мелодию + аккорды, а на выходе - ноты, чтобы инструментально это на академической балалайке самостоятельно играть. И так, будто эти ноты сгенерил выбранный профессионал. Удобно для руки человеческой. Подробнее - в моих видео, коротко не опишешь.

Не то, чтобы оказалась очень сложная задача, но почему-то всех спецов по нейросетям, кого я опрашивал, она ставила в тупик. Сначала в принципе, потом, когда сформулировал точное ТЗ - тем, что нельзя использовать датасет из одних только положительных примеров. Вот подавай одинаковое количество положительных и отрицательных, и всё тут. Я - системный программист, я рассказываю то, что рассказывали мне. Они такими терминами сыпали! Значит, что-то понимают :-).

Кончилось всё тем, что ИИ - это далеко не одни лишь нейросети. Нейросети - это самое популярное и самое мощное сегодня направление, но не единственное. Мы сели и придумали свой вариант ИИ. Нам потом даже нашли, куда по классификации он относится...

Поэтому Вы правы, задача оказалась несложная. Сдаст ребёнок - сделаю цикл статей. Но вот к кому ни обращался на протяжении многих лет - все говорили: "иди отсюда, не мешай", так как для них она нестандартная. Содержит несколько элементов, которые для них неприемлемы. А вот дёргаться вправо-влево там не принято. Все там (с кем я общался) привыкли, что им всё сгенерят фреймворки или ChatGPT. И это неправильно!

Вы в первом примере точно не забыли вначале скопировать j4 в k4 ?

Не забыли. Инструкция
k5:4 = j5:4;
копирует сразу два регистра, а
k7:4 = j7:4;
даже четыре.

А во втором примере точно не забыли второй if ?

Возможно, Вы неверно трактуете пример. Расскажите, пожалуйста, в чём именно Вы видите ошибку или покажите своё видение. А там я или обосную свой вариант, или тоже стану видеть проблему.

Но в любом случае - код рабочий. Он проверялся.

Подобные названия не редкость во всем мире: например, TMS320C6713BZDP300, ADSP-21261SKSTZ150, DSP56303VF100R2

Мы не пробовали. А почему Вы спрашиваете именно про фильтр Калмана?

Да, именно так, как Вы говорите.
Мы вручную вставили эти ускорители в один слой сети и измерили результат.
Следующий этап проекта - научить конвертер вставлять их везде, для человека это нереально.
Вот тогда и увидим результат для сети в целом.

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

Я так обрадовался Вашим словам, что полез гуглить... И похоже, нашёл ответ на вопрос "Что мешает?". Мешает то, что работа ведётся через NRF Connect. А про неё (и связанный с нею NRF Connect SDK) я нашёл сейчас вот такие гадости

bluetooth - Comparison Zephyr vs SoftDevice - Stack Overflow

Но буду очень рад, если Вы через ссылки или в режиме беседы позволите скинуть эти шоры. Я только рад, если этот SoftDevice станет не нужен. Но чтобы при этом не потерять других вкусностей от производителя. Вкусности - они же полезны.

Как сказано в начале статьи, я пока только осваиваю это дело. И буду рад любым ПРАВИЛЬНЫМ ссылкам. А то в море информации пока плавать приходится и опытным путём постигать, что полезно, а что - нет.

Это не сторонний загрузчик. Это загрузчик, сделанный на базе штатного примера от NRF52. Который учитывает все особенности этого контроллера. Включая наличие того самого SoftDevice.

SoftDevice - это код библиотеки, обслуживающей радиомодуль и обеспечивающей работу стека BlueTooth. Все производители уносят его в заранее собранный двоичный код. Подозреваю (но не уверен на все 100%), что это делается, потому что в объектном файле всегда останутся какие-то метки и какие-то имена переменных, а так - всё точно будет скрыто от сторонних глаз. Однажды я читал высказывание на форуме, что без этого не получить сертификат на радиосовместимость. Все подкручивания должны быть скрыты от конечного пользователя. Снаружи должны быть доступны только стандартные номера каналов, и работа с ними должна идти по сертифицированным алгоритмам.

Поэтому при работе с Bluetooth контроллером NRF52, важно не затереть эту самую "приколоченную гвоздями" библиотеку. Для новых контроллеров, эту библиотеку обязательно надо "прошить" на требуемое место.

Собственно, та путаница с адресами вытекает как раз из того, что SoftDevcice новой версии стал больше, чем был в предыдущей. Адрес 0x27000 вбит в стандартную конфигурацию платы, которая прописана в свойствах Zephyr, установленного вместе со средой разработки NRF Connect. А сам HEX файл берётся с сайта производителя платы. Какой же он сторонний?

Залить - проще простого. Я же во время опытов постоянно стирал чип и заливал HEX файл... Но у того товарища он затрёт приложение пользователя. Пока то не будет перекомпоновано на адрес 0x27000 - кто-то кого-то будет перетирать по мере заливки.

Если датасет с гайками и болтами можно сделать на своём столе, то с мусором - это точно в рамках проекта. Но мы готовы, был бы Заказчик

Интересная мысль, спасибо! Занесём в копилку идей, на чём интересном можно отлаживать.

Правда, именно в копилку. Чтобы сразу начать делать - это нужно готовить датасеты, вести опыты и т.п. Вот так сразу на это время дадут только если проект какой начнётся. Но в целом... Если понадобится новоое что-то делать, то так будет полезней, чем котиков, спасибо.

Да, керамика и золото - дорогое удовольствие. К счастью, сейчас уже появился вариант в пластиковом корпусе. Он на порядок дешевле.

в дополнение вопрос: а какой чип Миландра вас интересует? ДСП или что-то другое? Спасибо!

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity