ИИ в мирных целях

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

Сотруд­ник попро­сил мне напи­сать ему харак­те­ри­сти­ку с места рабо­ты. Писать вся­кую ерун­ду — дело нын­че не цар­ское. Обра­тил­ся, конеч­но, в ЧатЖПТ. «А напи­ши-ка мне, батень­ка, на него харак­те­ри­сти­ку, поло­жи­тель­ную, как в про­фес­си­о­наль­ном, так и в лич­ном каче­стве». Напи­са­ло, да так, что я в паре мест сам чуть не про­сле­зил­ся.

«Одна­ко что дей­стви­тель­но отли­ча­ет Мар­тѝ­на Гар­сию от дру­гих, так это его роль любя­ще­го отца. Его пре­дан­ность бла­го­по­лу­чию и вос­пи­та­нию доче­ри поис­ти­не вдох­нов­ля­ет. Я видел, как он делал все воз­мож­ное, что­бы создать забот­ли­вую и под­дер­жи­ва­ю­щую сре­ду для сво­е­го ребен­ка. Мар­тѝн Гар­сия при­ви­ва­ет им такие цен­но­сти, как ува­же­ние, сопе­ре­жи­ва­ние и тру­до­лю­бие, пода­вая при­мер во всех аспек­тах сво­ей жиз­ни. Его без­услов­ная любовь и неиз­мен­ное при­сут­ствие в жиз­ни доче­ри сами слу­жат сви­де­тель­ством его харак­те­ра и при­о­ри­те­тов.»

Глад­ко пишет, зара­за!!!

PS: Да, сотруд­ник — дей­стви­тель­но хиспа­ник, если чо.

Не прошло и нескольких часов…

…как оче­ред­ную дырень в том же самом, уже набив­шем оско­ми­ну, спе­ку­ля­тив­ном выпол­не­нии кода, в оче­ред­ной раз нашли уже в про­цес­со­рах Интел серии Core, от 6‑го до 11-го поко­ле­ния. Окре­сти­ли Downfall.

Може­те озна­ко­мить­ся по ссыл­ке. В этот раз кра­дут дан­ные, исполь­зуя спе­ку­ля­тив­ную пере­сыл­ку дан­ных в век­тор­ной инструк­ции Gather (часть рас­ши­ре­ния AVX2/AVX512, ЕМНИП).

Я же гово­рил — это музы­ка будет веч­ной, пока от спе­ку­ля­тив­но­го испол­не­ния не отка­жут­ся совсем. А не отка­жут­ся от него мини­мум пока ско­рость опе­ра­тив­ной памя­ти не вырас­тет на несколь­ко поряд­ков. А это про­изой­дёт… даже не знаю, когда. Может быть, и нико­гда.

Нет, я сла­бо верю в то, что дыры в SE когда-нибудь при­кро­ют окон­ча­тель­но. С тех пор, пока нашли пер­вые, посто­ян­но нахо­дят всё новые и новые — уж такая тех­но­ло­гия.

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

А вот кому жар­ко? А жар­ко про­вай­де­рам, напри­мер, облач­ных ресур­сов. Арен­ду­ешь ты, такой кра­си­вый, у них часть вычис­ли­тель­но­го узла. Какой ты на этой части узла будешь запус­кать код — одно­му Гефе­сту извест­но. У про­вай­де­ра нет ника­ко­го кон­тро­ля над тво­им кодом. А если ты запу­стишь код, вору­ю­щий дан­ные у сосе­да, с кото­рым вы дели­те вычис­ли­тель­ный узел, что тогда будет? AWS, Azure и про­чие очень мно­го денег и уси­лий тра­тят на обес­пе­че­ние без­опас­но­сти одно­го жиль­ца, от дру­го­го жиль­ца. И откры­тие вот таких вот дыр им здо­ро­вья… ох, не при­бав­ля­ет.

Спекулятивное исполнение

Вот как вы дума­е­те, совре­мен­ные про­цес­со­ры, встре­тив в коде услов­ный пере­ход типа if () {} else {}, какую ветвь кода выпол­ня­ют?

Пра­виль­ный ответ: обе.

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

Толь­ко вот с выбра­сы­ва­ни­ем есть… эффек­ты. Кото­ры­ми мож­но зло­упо­тре­бить. Имен­но отсю­да рас­тут ноги туе­вой хучи экс­плой­тов типа Spectre, Meltdown, и про­чих радо­стей. Теперь с эффек­та­ми засве­ти­лись про­цес­со­ры AMD.

Я пло­хо пони­маю кон­кре­ти­ку, но каким-то обра­зом зло­умыш­лен­ни­ки могут заста­вить цен­траль­ный про­цес­сор счи­тать, что коман­да XOR явля­ет­ся рекур­сив­ным вызо­вом. Далее, как водит­ся, идёт пере­пол­не­ние буфе­ра, и воз­врат сте­ка на про­из­воль­ный адрес, кото­рый любез­но под­со­вы­ва­ет ему хакер. Таким обра­зом могут быть воз­вра­ще­ны при­ват­ные дан­ные из дру­го­го непри­ви­ле­ги­ро­ван­но­го про­цес­са.

https://www.bleepingcomputer.com/news/security/new-inception-attack-leaks-sensitive-data-from-all-amd-zen-cpus/

Когда же всё это почи­нят? Да нико­гда. Уби­ра­ние спе­ку­ля­тив­но­го испол­не­ния сто­ит огром­но­го паде­ния в про­из­во­ди­тель­но­сти. Поэто­му оно с нами будет как мини­мум до тех пор, пока память типа SRAM не будет сто­ить как обыч­ная опе­ра­тив­ка RAM.

Микрософтовская болталка

Я, при­знать­ся, ожи­дал луч­ше­го. Она даёт фак­ти­че­ски невер­ные отве­ты и рабо­та­ет доль­ше, чем ЧатЖПТ. Сна­ча­ла ищет отве­ты в сво­их бин­гах, а потом резю­ми­ру­ет най­ден­ное. Вот, вопрос из тео­рии музы­ки — в чём раз­ни­ца меж­ду нон­ак­кор­да­ми C9 и Cadd9:

Бол­тал­ка попы­та­лась меня уве­рить, что в Cadd9 тоже есть сеп­ти­ма, толь­ко она боль­шая (B), а не малая (Bb). А вот шЫш, не было там нико­гда сеп­ти­мы. Cadd9 — это очень кра­си­вый аккорд с добав­лен­ной ноной (D).

При этом оно даёт ссыл­ки с доку­мен­та­ми, в кото­рых англий­ским по бело­му напи­са­но, что сеп­ти­мы там нет. Я ему напи­сал, что оно непра­во. Изви­ни­лось.

Цирк с коня­ми на ней­рон­ной тяге.

Протокол HTTP и политика

У людей, делав­ших про­то­кол http, всё же было чув­ство юмо­ра.

Поми­мо уже всем извест­ных кодов оши­бок 404 или 403 есть ошиб­ки с забав­ны­ми кода­ми. Напри­мер, есть ошиб­ка HTTP 418 I’m a teapot (я чай­ник).

Смысл этой ошиб­ки, на пер­вый взгляд, создан­ной чисто ради хох­мы, всё же есть. Ошиб­ка выле­та­ет, если сер­вер счи­та­ет, что его исполь­зу­ют не по назна­че­нию. Офи­ци­аль­ное опи­са­ние: «любая попыт­ка зава­рить в чай­ни­ке кофе вме­сто чая долж­на вызы­вать ошиб­ку 418 Я Чай­ник.» Веб­де­вы ино­гда исполь­зу­ют эту ошиб­ку внут­ри соф­та, когда, напри­мер, есть несколь­ко сер­ве­ров, и один из них обслу­жи­ва­ет один класс кли­ен­тов, а дру­гой — всех осталь­ных, и запрос слу­чай­но при­хо­дит не на тот сер­вер.

Немно­го дру­гой смысл у более зло­ве­щей ошиб­ки HTTP, 451. Циф­ра 451 — это отсыл­ка к Рею наше­му Брэд­бе­ри, романе-дисто­пии «451 по Фарен­гей­ту», про тота­ли­та­ризм, где запре­щён­ные кни­ги сжи­га­ют вме­сте с дома­ми, где они были най­де­ны.

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

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

Про законы робототехники

У Айзе­ка Ази­мо­ва мно­го напи­са­но про то, что три зако­на робо­то­тех­ни­ки — это заме­ча­тель­но, но даже такие три про­стые пра­ви­ла мож­но интер­пре­ти­ро­вать по-раз­но­му. В одном из рас­ска­зов, не вспом­ню сей­час в каком, закон пер­вый, т.е. «робот не может при­чи­нить вред чело­ве­ку или сво­им без­дей­стви­ем допу­стить, что­бы чело­ве­ку был при­чи­нён вред» — был интер­пре­ти­ро­ван робо­том как «людей надо неж­но свя­зать и запе­реть, что­бы они не при­чи­ни­ли себе вред». Что он неза­мед­ли­тель­но и сде­лал.

А ныне ВВС США сде­ла­ли симу­ля­цию дро­на, управ­ля­е­мо­го ИИ, кото­рый уни­что­жал систе­мы вра­же­ской ПВО. Преж­де чем отбом­бить­ся, ИИ запра­ши­вал раз­ре­ше­ния у опе­ра­то­ра, кото­рый мог запре­тить уни­что­же­ние кон­крет­но это­го рас­чё­та ПВО. Нью­анс в том, что за каж­дую уни­что­жен­ную систе­му ПВО иску­ствен­но­му интел­лек­ту начис­ля­лись очки. Кон­чи­лось тем, что ИИ отбом­бил­ся… по опе­ра­то­ру дро­на, что­бы тот не выпенд­ри­вал­ся, и не мешал ИИ наби­рать эти самые очки.

https://www.theregister.com/2023/06/02/ai_drone_simulation/

«Гигабайт» слегка обосрался

Как инте­рес­но. У ком­пью­те­ров с систем­ной пла­той «Гига­байт» есть авто­ма­ти­че­ское обнов­ле­ние про­шив­ки, кото­рое запус­ка­ет­ся при каж­дой загруз­ке ком­пью­те­ра и обра­ща­ет­ся к одно­му из сле­ду­ю­щих ресур­сов:

http://mb.download.gigabyte.com/FileList/Swhttp/LiveUpdate4
https://mb.download.gigabyte.com/FileList/Swhttp/LiveUpdate4
https://software-nas/Swhttp/LiveUpdate4

При обна­ру­же­нии обнов­ле­ний оно их сгру­жа­ет и выпол­ня­ет с систем­ны­ми при­ви­ле­ги­я­ми.

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

Да, вос­поль­зо­вать­ся этой уяз­ви­мо­стью не ска­зать, что­бы было силь­но про­сто — потре­бу­ет­ся доступ к сети орга­ни­за­ции. Но сам факт того, что сгру­жа­тель может ска­чи­вать вся­кую фиг­ню, никак не про­ве­ряя то, что он ска­чи­ва­ет, доволь­но позор­ный. Я был луч­ше­го мне­ния о про­грам­ми­стах «Гига­байт».

https://eclypsium.com/blog/supply-chain-risk-from-gigabyte-app-center-backdoor/

PS: Обнов­ле­ния для Windows, кста­ти, тоже ска­чи­ва­ют­ся по про­сто­му http — это сде­ла­но для того, что­бы созда­вать мень­шую нагруз­ку на сер­ве­ры ком­па­нии. Но Вин­да про­ве­ря­ет хеш каж­до­го ска­чан­но­го обнов­ле­ния — а уж сами хеши пере­да­ют­ся по защи­щён­но­му кана­лу.

PPS: У меня MSI 🙂

Про отнимание работы искуственным интеллектом

В ком­мен­тах к запи­си про заме­ну про­дав­цов маши­на­ми вполне спра­вед­ли­во ука­за­ли, что не толь­ко работ­ни­кам тор­гов­ли сто­ит опа­сать­ся кон­ку­рен­ции со сто­ро­ны ИИ. Я думаю, нали­чие того же Адо­бе Свет­ляч­ка, резуль­та­та­ми кото­ро­го я недав­но делил­ся, или Мик­ро­софт Дизай­не­ра могут серьёз­но под­ко­сить инду­стрию иллю­стра­то­ров.

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

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

Как эти вопро­сы будут решать­ся с ней­ро­сет­ка­ми — понят­но сла­бо, поэто­му я думаю, что вра­чам как раз опа­сать­ся нече­го. Тут у нас будет не заме­на вра­чей, а мен­таль­ный экзоске­лет — во мно­го разу уси­ли­ва­ю­щий воз­мож­но­сти док­то­ра.

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

Подроб­но­сти мож­но про­чи­тать у ув. giovanni1313:

Часть пер­вая: https://giovanni1313.livejournal.com/119149.html
Часть вто­рая: https://giovanni1313.livejournal.com/119504.html

TLDR; Джо­шуа Бру­дер создал весь­ма успеш­но­го кибер-адво­ка­та, изна­чаль­но сде­лан­но­го для того, что­бы отфут­бо­ли­вать авто­мо­биль­ные штра­фы, а потом раз­дув­ше­го амби­цию до жела­ния исполь­зо­ва­ния систе­мы аж в Вер­хов­ном Суде. А дру­гие адво­ка­ты ему суну­ли в рот извест­но что, и поло­жи­ли извест­но что на ворот­ник. «Дан­ная дея­тель­ность тре­бу­ет лицен­зи­ро­ва­ния, так что ты, Джо­шуа Бру­дер, сей­час зани­ма­ешь­ся адво­кат­ством без лицен­зии. Отси­деть шесть меся­цев в тюря­ге хочешь?» Ожи­да­е­мо, Бру­дер сдул­ся, и так мно­гое обе­ща­ю­щий стар­тап закрыл­ся.

Хоро­шо это полу­чи­лось? Я счи­таю, что нет. Но это было ожи­да­е­мо — те, кому хоро­шо в какой-то опре­де­лён­ной ситу­а­ции, будут эту самую ситу­а­цию защи­щать, ибо им инте­рес­но ста­тус-кво. Про­сто у иллю­стра­то­ров или там сто­ке­ров в мага­зине в зад­ни­це не так круг­ло, как у Наци­о­наль­ной Гиль­дии Адво­ка­тов. Поэто­му послед­ние пока­мест суме­ли осто­ять ста­тус-кво. Погля­дим, надол­го ли.

Фаерфоксяша, гудбай

Я очень дол­го исполь­зо­вал Фаер­Фокс в каче­стве основ­но­го бра­у­зе­ра, но боль­ше так не могу. И дело не в том, что он меня не удо­вле­тво­ря­ет — он мне нра­вит­ся.

Но всё боль­шее коли­че­ство сай­тов с ним не рабо­та­ют или име­ют кри­вую функ­ци­о­наль­ность. Стра­ни­цы не пере­ли­сты­ва­ют­ся или ещё что подоб­ное. Все нын­че пишут под две плат­фор­мы: Хро­мо­об­раз­ное или Сафа­ри. При всей моей непри­яз­ни к раз­ра­бот­чи­кам веб-сай­тов мне слож­но их винить — при коли­че­стве поль­зо­ва­те­лей под Фаер­фок­сом менее 5% слож­но от них тре­бо­вать писать толь­ко так, что­бы и под ним тоже рабо­та­ло.

Фаер­фокс так­же исклю­чи­тель­но кри­во рабо­та­ет под Линук­сом. Вот он ниче­го не делая, про­сто будучи запу­щен­ным, отжи­ра­ет серьёз­ный ресурс у про­цес­со­ра. Чего он там дела­ет — загад­ка, осталь­ные-то бра­у­зе­ры рабо­та­ют нор­маль­но! Даже Эдж рабо­та­ет про­сто заме­ча­тель­но. Ага, Эдж есть под Линук­сом! При­кинь­те, ком­па­ния Мик­ро­софт выпус­ка­ет вер­сию сво­е­го бра­у­зе­ра под Линукс. Рас­ска­жи мне это в каком-нибудь 1999 году, я бы толь­ко паль­цем у вис­ка покру­тил. Одна­ко у Мик­ро­соф­та нын­че с Линук­сом любовь — что мне нра­вит­ся, так как я, навер­ное, про­цен­тов 25 сво­ей рабо­ты делаю под WSL. WSL в сто раз кру­че, чем тот же Цыг­вин, пото­му что паке­ты ста­вят­ся по-чело­ве­че­ски, через apt. Что­бы доба­вить пакет в Цыг­вин, надо каж­дый раз setup.exe запус­кать. И обнов­лять­ся так же. Нафиг-нафиг.

В‑общем, Фаер­фокс меня заму­мил окон­ча­тель­но, так что я от него изба­вил­ся. Нет, я пере­шёл не на Хром. Хром я не люб­лю, как и мно­гие дру­гие про­дук­ты ком­па­нии Гугл (напри­мер, ВЕДРОИД этот ваш бого­мерз­ский).

Я пере­шёл на Брейв — сиречь, форк опен­сорс­но­го Хро­ми­ума. Эдж, к сло­ву, тоже форк Хро­ми­ума. И Эдж мне в прин­ци­пе, вполне нра­вит­ся — я поль­зу­юсь им для рабо­ты, так как я уж точ­но знаю, что с мик­ро­соф­тов­ски­ми сай­та­ми он будет рабо­тать нор­маль­но. Это был мой запас­ной вери­ант, если бы Брейв мне не понра­вил­ся.

Брейв пока неплох. Без про­блем вта­щил все мои заклад­ки и даже исто­рию из Фаер­фок­са. Сай­ты все рабо­та­ют, пока всё хоро­шо. Буду наблю­дать.

MIDI-квест или скупой платит дважды

Кто поку­па­ет три раз­ных MIDI гов­ношнур­ка, преж­де чем купить нор­маль­ный — тот я.

Совре­мен­ные музы­каль­ные инстру­мен­ты под­клю­ча­ют­ся к ком­пью­те­ру по USB, изоб­ра­жая интер­фейс USB MIDI. И всё с этим про­сто и понят­но.

Одна­ко ста­рые инстру­мен­ты име­ют пятиштырь­ко­вый разъ­ём MIDI, и под­клю­чать их надо через пере­ход­ни­ки MIDI->USB. Так вот, если возь­мё­тесь такое делать, послу­шай­те мой доб­рый совет — не поку­пай­те дешё­вые. Деш­ман­ские шнур­ки либо не рабо­та­ют вовсе, либо внут­ри них сто­ит настоль­ко про­стень­кий мик­ро­кон­трол­лер, что он про­сто не успе­ва­ет обра­ба­ты­вать посту­па­ю­щие дан­ные. Осо­бен­но это каса­ет­ся MIDI бара­ба­нов, где часто игра­ет­ся одна и та же нота, мно­го раз за секун­ду (дробь).

Един­ствен­ный шну­рок, спо­соб­ный обра­бо­тать MIDI сиг­на­лы мое­го TD10 с такой ско­ро­стью — род­ной Ролан­дов­ский.

Я дол­го жад­ни­чал, пото­му что он сорок дол­ла­ров сто­ит 🙁 А вот не надо было. Вот и полу­чи­лось, что ску­пой пла­тит два­жды, пря­мо как в посло­ви­це.

Зато теперь мож­но играть на бара­ба­нах через EZDrummer на лап­то­пе, если нор­маль­ная зву­ко­вая кар­та, под­дер­жи­ва­ю­щая ASIO — без задер­жек вооб­ще.