Добрый день, уважаемые подписчики и читатели моего блога.
Я долго думала и сомневалась, прежде, чем написать эту статью. Всё дело в том, что я стараюсь выкладывать результат, а не сам процесс. Сегодня я решила нарушить свой собственный регламент и рассказать как раз о самом процессе. Речь пойдет о редактировании прошивки блока управления двигателем с помощью искусственного интеллекта.
Немного расскажу предыстории из автобиографии. Итак, после ухода с работы, где я занимала должность инженера по учету автотранспорта, я занималась автоэлектрикой-диагностикой. Некоторые мои работы попали на страницы данного блога на дзен. Потом я работала механиком по ремонту в ремзоне грузовых автомобилей, а впоследствии мастером-консультантом онлайн.
Мне хотелось перейти работать в ITсферу и так как я человек действия, то сразу выбрала необходимую программу переподготовки и пошла учиться на администратора баз данных. Училась онлайн, после работы. Знания конечно давались самые базовые. После окончания обучения мне посчастливилось устроиться в IT компанию, так как я получила релевантный опыт в проекте цифровой автосервис.
Обучение на этом не закончилось, а только началось, и наряду с приобретенными знаниями я начала изучать языки программирования и нейросети. Изучать языки это конечно громко сказано, на это уходят годы. Но в целом понимание алгоритмизации и структуры некоторых языков я всё же освоила.
Сразу оговорюсь, что описываемый ниже опыт носит исключительно экспериментальный характер, я не являюсь ни калибровщиком, ни чип тюнером и не собираюсь ими становиться. По сути мне был интересен сам эксперимент.
Начну с того, что в основном мы привыкли, что нейросети используются для создания всевозможных мемов, аватарок, видео, продающих скриптов для менеджеров и операторов контактных центров, а также для ответов на различные вопросы подобно онлайн энциклопедии. Я захотела найти инженерное применение искусственному интеллекту.
Итак, мне хотелось попробовать, возможно ли вообще в принципе выполнять редактирование прошивок с помощью ИИ, без использования специального ПО. Первый мой опыт был проведен на ЭБУ Bosch ME 17.9.21. Суть эксперимента состояла в следующем: возможен ли реинжиниринг с помощью ИИ. Я скачала стоковую прошивку с сайта chiptuner.ru, открыла ее в HXD редакторе, скопировала машинный код в нейросеть, выполнила перевод машинного кода в С++, выполнила отладку кода и далее снова скомпилировала код на с++ обратно в машинный код.
Результат получился с точностью 100%, была выполнена валидация всех контрольных сумм. Говоря простым человеческим языком, после проделанных манипуляций я получила исходную стоковую прошивку. К слову, я пробовала аналогичный эксперимент с графическим изображением: картинку описать с помощью кода на с++, а потом перевести код обратно в картинку. Изображение не получалось точь в точь, хотя и было очень похожим. А эксперимент с прошивкой получился!
Далее, воодушевившись успешным предыдущим опытом, я решила теперь уже проделать аналогичный эксперимент с откалиброванной прошивкой. Я взяла две прошивки: стоковую и прошивку с увеличенной мощностью, выполненную ранее калибровщиком. По аналогии, описанной выше, я открыла каждую из прошивок в HXD редакторе для анализа структуры и контрольных сумм. Далее я откалиброванную прошивку декомпилировала в код с++, и стоковую прошивку тоже декомпилировала в с++, а потом с помощью промта внесла изменения в код на с++, обеспечивающие прибавку к мощности. А потом обе прошивки обратно рекомпилировала в машинный код. Обе прошивки получились точными клонами изначально взятой откалиброванной прошивки.
Хочу сразу предупредить, что вышеописанный опыт носил исключительно экспериментальный тестовый характер и я не могу его рекомендовать как альтернативу специализированному программному обеспечению! В статье я просто делюсь опытом самого процесса. «Подопытным кроликом» выступал автомобиль Opel Omega B, ДВС Z22XE с ЭБУ SIEMENS 5WK9158. И у меня имелся в наличии подменный блок управления. После заливки в автомобиль прошивки, отредактированной с помощью ИИ автомобиль завелся, ездил, детонации у двигателя не наблюдалось.
Впоследствии, через некоторое время в автомобиль была перезалита стоковая заводская прошивка, так как в самой тюнинговой прошивке нет необходимости. Двигатель исправен, коды неисправностей отсутствуют. От себя добавлю, что я как человек, имеющий отношение к автодиагностике, вообще не сторонник внесений изменений в конструкцию автомобиля и его заводские настройки программного обеспечения. Я за грамотную диагностику и устранение неисправностей. Описанный случай носил повторюсь исключительно экспериментальный характер, так сказать из любви к искусству. А подробное описание решила сделать, так как многие подписчики задают вопросы и в посте на несколько строчек данный опыт не опишешь.
Я даже не делала фото, так как планировала сперва откатать саму технологию, а потом уже выложить статью в виде пошаговой инструкции. Но получилось как получилось.
Для любителей кидаться камнями в комментариях сразу говорю: за публичное оскорбление предусмотрена административная и уголовная ответственность, даже если вы пишете с аккаунта с точками, заборами и никами. Это так, на всякий случай, хотя я надеюсь на ваше уважение и понимание.
А теперь самое главное: я попыталась повторить данный эксперимент с другой прошивкой и каково было моё удивление, когда в одном случае я получила откровенную абрукадабру, а во втором нейросеть вообще отказалась писать код! Тоже самое происходило и с графическими изображениями. Эксперимент удавался через раз. С чем это связано я честно, не знаю. Я обычный пользователь ИИ, промт-инженер, но обучением AI пока не занимаюсь, поэтому не могу ничего сказать о том, как работают ИИ алгоритмы.
Изучала данный вопрос на форумах промт-инженеров и оказалось, что с подобной проблемой сталкиваются практически все, кто практикует промт- инжиниринг. Некоторые специалисты даже вели журнал записи промтов, но никогда не получали 100% результат при одинаковых запросах. Так что мой случай можно отнести скорее к везению и схождению звёзд, чем к техническому методу.
Но есть те области инжиниринга, где нейронка себя показала на все сто! Это например, написание скетчей для Arduino. Тесты с написанием скетча с помощью ИИ, например мигание светодиодной ленты, подобно гирлянде я откатала и могу со 100% гарантией утверждать что они работают. При чем получается не только написать скетч с помощью ИИ, но и произвести его отладку. Так что пробуйте, экспериментируйте, возможно у вас получится даже больше и лучше, чем у меня. Только хочу всё же предостеречь: чип-тюнинг это внесение изменений в конструкцию автомобиля, связанный с большими финансовыми рисками и ответственность будет лежать на вас. А пока что я скажу вам, как говорят во многих реалити шоу, «не пытайтесь это повторить».
С постами по применению промт-инжиниринга вы можете ознакомиться здесь: https://vk.com/avtodiagnost161. Мой паблик Digital инженерия.
На этом всё. Просьба не задавать мне вопросы в комментариях, касающиеся тонкостей калибровок и чип-тюнинга. Я не заливала прошивку, я ее только подготовила. Повторюсь, я не калибровщик, а промт-инженер. Если у вас имеется опыт применения ИИ для реинжиниринга или вы уже откатали технологию редактирования прошивок с помощью ИИ, поделитесь опытом в комментариях, буду признательна. Статья не про чип-тюнинг, а про промт-инжиниринг!
PS: Буквально на днях я нашла причины нестыковок и "ляпов" при попытке повторного эксперимента. Здесь скажу лишь, что она кроется в самой методике написания промта и теперь у меня всё получается. Возможно, расскажу об этом в одной из следующих статей.
Всем добра и позитива!