Оверклокинг, ты живой?


Он пробовал на прочность этот мир каждый миг,
Мир оказался прочней.

«Машина Времени»

Ежегодно на соревнованиях «Формулы 1», кроме основного кубка, вручается кубок конструкторов — награда лучшей инженерной команде сезона. С самых истоков гонки руководители команд истово борются за конструкторов — примерно с тем же усердием, что и за пилотов: в гонке решает каждый грамм веса кокпита, каждый замысел эргономики, каждый состав используемых сплавов и компонентов. Одним из первых фанатов «детальной прокачки» и одним из самых мощных конструкторов Формулы 1 был Энцо Феррари — он побеждал со своей легендарной Скудерией, побеждал в Альфа Ромео и создал легенду, от которой до сих пор сжимаются души фанатов гонок и скоростных автомобилей. Погружаясь в историю мистера Энцо Феррари, я всегда думаю о том, что он мог бы быть родоначальников оверклокеров как явления. Потому что оверклокинг — это не просто про фан или азарт, это про строгие эксперименты, инженерный талант и стремление сделать мир круче. Но не стал ли оверклокинг уже историей?

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

29 февраля — день оверклокера. И правда, как это символично — вырвать один производительный день один раз в 4 года и разогнать февраль на 3,57%! Однако этом году с 29 февраля как-то не сложилось, но есть неиллюзорные опасения, что в 2024 уже никто и не вспомнит, что такое оверклокинг. Поэтому сегодня хотим поговорить о том, что же произошло с увлечением нашей молодости (не пугайтесь, я практически бумер).

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

Дни славы оверклокинга, действительно, уже остались у ИТ-сообщества позади — в процесс устаревания этого хобби слишком охотно включились производители, геймдев и, к слову, редко упоминаемый в этом аспекте мир крипты, который как раз и увлёк часть олдов из оверклокинга — ведь теперь можно было не просто разгонять и убивать железо, но и отлично зарабатывать на мощностях. Кстати, первые разговоры о кончине оверклокинга начались аж в 2009 году и периодически они до сих пор всплывают на профильных форумах и в сообществах. Что логично: любая технология и всё, что с ней связано, имеет достаточно растянутый период затухания.

Так что же двигало и движет оверклокерами?

Началось всё, как обычно, со смекалки: в середине 90-х геймеры начали исхитряться над прокачкой материнских плат, чтобы разогнать свои тормозные домашние лошадки для приличных игр и при этом не разориться на покупку приставки. Действительно, финансовые возможности поклонников компьютерных игр не успевали за скоростью развития геймдева, и потребность в разгоне было просто жизненно необходимой (и только скажите, что это не так! ;)). Это сейчас в продаже есть всё, что душе угодно, а в те времена люди умудрялись ускорить свои компы с помощью простого карандаша с мягким грифелем и суперклея. Об охлаждении и электричестве заботились очень немногие.

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

Но тем не менее мотивация экономии сохранилась: в дело вступило видео. Работать с потоковым видео, обработкой видео (типа Adobe Premiere), видеозахватом и анализом можно только на достойных сборках, которые стоят очень дорого. В процессе разработки использование дорогих комплектующих часто нерентабельно, особенно если разработка экспериментальная, поэтому оверклокинг вошёл в мир высоконагруженной разработки и стал использоваться профессионалами.

Но это не единственная сфера совпадения интересов профессиональных сообществ и оверклокеров. Таланты «разгонщиков» оказались интересны производителям процессоров и особенно конечных устройств: ПК и ноутбуков. Многие производители до сих пор сотрудничают с экстремальными «профессиональными» оверклокерами и обращают внимание на их находки и требования. Кроме этого, практически с самого начала движения оверклокинга появились профильные соревнования, которые возвели хобби в спорт — и там уже встречаются не просто любители эффектных бенчмарков, а настоящие профессионалы с целями и инженерные гении. Не остались в стороне и финансовые трейдеры: даже зная о быстрой смерти такого оборудования, они идут на всё, чтобы получить хотя бы несколько процентов производительности и обойти своих коллег по высокочастотному трейдингу.

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

Во-первых, это красиво и даже слишком зрелищно

Интересные факты про жидкий азот

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

  1. Температура кипения жидкого азота составляет почти − 196 °C. Не абсолютный ноль, конечно, но тоже холодновато.
  2. При этом жидкий азот вполне можно налить на руку — он сразу начнёт испаряться, образуя небольшую «воздушную подушку», защищающую кожу от обморожения. Но это ненадолго — если передержать азот в руке, то будет ожог. Так что если и надумаете проводить «азотные шоу», то изучите эту тему более подробно, чтобы потом не было мучительно холодно.
  3. Азот распространён по всей Вселенной: обнаружен на Уране, Нептуне, в межзвёздном пространстве, в атмосфере нашего собственного Солнца, в атмосферах других небесных тел и их спутников, например, Титана и Плутона;
  4. Сам элемент по-латыни называется «nitrogenium» (отсюда — нитриты и нитраты), название «azote», которое предложил Антуан Лавуазье, используется только на территории бывшего СССР;
  5. Азот используют в современных огнетушителях — в отличие от воды и углекислоты, он не портит вещи и чрезвычайно экономичен;
  6. Знаменитые замороженные в азоте разбитые розочки и прочие мандарины замерзают не мгновенно, а спустя какое-то время нахождения в ёмкости с жидким азотом — не верьте визуальным спецэффектам. Сцена про заморозку Т-1000 в культовом «Терминаторе» не очень-то правдоподобна! 🙂

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

Так он-таки жив или таки мёртв?

Оверклокинг жив и будет жить, пока это кому-нибудь нужно. А нужно это многим.

  • Обычным любознательным ребятам, которые в процессе оверклокинга изучают устройство компьютера, начинают свой путь в ИТ, общаются с другими энтузиастами и геймерами.
  • Профессиональным разработчикам для моделирования поведения сборок в особых условиях.
  • Маркетологам и коммерсам вендоров и поставщиков оборудования: можно получить интересные результаты бенчмарков. Иногда даже производители заинтересованы показать всем, что именно их девайсы самые-самые, разгоняемые и стабильные, поэтому берите мол у нас. Для этого многие компании-производители идут на хитрость — предоставляют оверклокерам на тест не совсем серийные сэмплы железа, чтобы те поставили рекорд именно на них. Потенциально это обеспечивает более высокие продажи, но в то же время может увеличить количество обращений в сервис — тут у разных вендоров разная политика.
  • Хобби-DIY-гениям, которым важно заниматься оверклокингом ради фана и экспериментов. Например, один мой знакомый, вполне себе успешный айтишник, едва купив сверхновую звезду от Apple, тут же забывает про гарантии и осторожность и устраивает своим новым устройствам какие-то невероятные гонки за крупицами производительности. Потому что может. Его это по-хорошему драйвит.
  • Профессиональным оверклокерам, которые участвуют в крупных соревнованиях. Амбиции и призовые фонды решают.

А что ещё можно «оверклокать»?

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

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

P.S.: расскажите в комментариях о своей истории оверклокинга — что и когда разгоняли, зачем, почему бросили или почему продолжаете?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Знакомы с оверклокингом?
48.75% Да, баловался раньше 39
8.75% Да, и сейчас активно разгоняю 7
20% Так, время от времени играюсь с производительностью 16
1.25% Я — участник специальных соревнований 1
21.25% Мне хватает штатных мощностей для задач 17
Проголосовали 80 пользователей. Воздержались 5 пользователей.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Для чего вы использовали оверклокинг?
58.06% Для геймерских целей 36
3.23% Для работы с видео 2
9.68% Для других задач разработки 6
0% Для вендорских тестов 0
0% Для соревнований 0
62.9% Just for fun 39
Проголосовали 62 пользователя. Воздержались 13 пользователей.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
У оверклокинга есть будущее?
40.63% Да, будущее есть 26
59.38% Нет, это ИТ-прошлое 38
Проголосовали 64 пользователя. Воздержались 6 пользователей.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Главный движущий мотив оверклокера?
42.86% Экономия 27
73.02% Эксперимент 46
6.35% Деньги 4
12.7% Принципы 8
4.76% Рабочая необходимость 3
61.9% Драйв и азарт 39
Проголосовали 63 пользователя. Воздержались 8 пользователей.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Почему оверклокинг стал не таким популярным?
4.69% Из-за хостингов и облаков 3
53.13% Из-за и так мощного оборудования 34
35.94% Это всё производители процессоров 23
28.13% Из-за лени зумеров 18
6.25% Он популярный, отстаньте! 4
Проголосовали 64 пользователя. Воздержались 7 пользователей.

ссылка на оригинал статьи https://habr.com/ru/company/ruvds/blog/652589/

Как выбрать подходящий обучающий курс?

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

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

Для получения максимальной отдачи от обучающего курса нужно проявить некоторую щепетильность при его выборе и учитывать некоторые важные моменты. Именно о нюансах выбора обучения пойдет речь.

Определите собственные цели

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

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

Сравнивайте различные курсы

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

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

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

Убедитесь в надежности образовательных учреждений

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

Название известного учреждения в вашем резюме даст вам преимущество перед конкурентами и положительно повлияет на вашу карьеру, поэтому будьте мудры при выборе образовательного учреждения. Составить предварительное мнение помогут также отзывы клиентов организации.

Обучение у преподавателя, не ассоциированного с образовательным учреждением, сопровождается некоторыми рисками. Здесь следует обратить внимание на опыт работы специалиста и его медийность а также преимущества, которые будет иметь данное обучение.

Также если вы выбираете обучение у частных лиц, не имеющих лицензии на образовательную деятельность следует знать, что любые документы, выданные ими, будут считаться недействительными с юридической точки зрения.

Отсутствие аккредитации – не признак низкого качества

Под неаккредитованным обучением понимается любое обучение, которое не аккредитовано государственными органами или профессиональными ассоциациями. Сюда относится любое обучение, проводимое внутри организации, или любое неформальное обучение, проводимое инструктором. Неаккредитованное обучение может подтверждаться сертификатом об окончании, но он не равнозначен документам государственного образца

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

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

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

Проверьте квалификацию преподавателей

Поищите отзывы о преподавателях и выясните, сколько у них опыта преподавания данного предмета, а также являются ли они практикующими специалистами.

При выборе преподавателя или коуча, который будет заниматься с вами индивидуально, как и при поиске образовательной платформы, основным критерием выступает репутация.

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

Найдите подходящий стиль обучения

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

Оцените организацию образовательного процесса

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

Наиболее достоверным способом получить всю интересующую информацию будет посещение пробного занятия, если это возможно. Также если у организации или преподавателя есть материалы в открытом доступе изучите их. Таким образом вы сможете сформировать всеобъемлющее представление о интересующем вас курсе.

Стоимость курса

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

В дополнение к теме:


ссылка на оригинал статьи https://habr.com/ru/post/653731/

Принимаем «Голоса» на КВ — инструкция по применению

Во времена позднего СССР существовала довольно пародоксальная ситуация — пресса публиковала только пропаганду и одобренную партией официальную информацию, имеющую мало общего с реальностью, но все кто хотел, могли купить радиоприемник и слушать «Би Би Си», «Голос Америки» и прочие станции. СССР пытался эти передачи глушить (мачты «глушилок» кстати до сих пор стоят в Питере, хотя провода вроде как давно сняты), но получалось это плохо.

ТВ Программа "Время", 1989г (с) YouTube
ТВ Программа «Время», 1989г (с) YouTube

Если ситуация вдруг снова кажется вам знакомой — добро пожаловать под кат.

Я не планировал какие-либо дальнейшие публикации на тему радио на Хабре, но текущая ситуация в информационном пространстве меняется быстро, и по большому счету неизвестно, будут ли сайты BBC или Reuters доступны завтра. Ну а короткие волны, как известно из школьного курса физики, могут огибать земной шар, что может послужить источником альтернативной информации для тех кто хочет её иметь. На этот случай полезно знать, как это работает и возможно, подготовиться, хотя буду искренне надеяться что читателям это не пригодится.

Радиостанции

Для многих может оказаться сюрпризом, но СВ, ДВ и КВ станции до сих пор работают. Объем вещания разумеется, сокращается, многие антенны и станции были демонтированы, но кое-что еще функционирует. По ключевым словам «частотные расписания КВ» можно найти довольно много информации о станциях и сетке частот, желающие также могут открыть онлайн-приемник (например, голландский WebSDR) и послушать эфир самостоятельно:

WebSDR скриншот (c) http://websdr.ewi.utwente.nl:8901/
WebSDR скриншот (c) http://websdr.ewi.utwente.nl:8901/

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

Приемники

Онлайн-радио это безусловно, интересно, но нас будет интересовать радио обычное. В продаже есть «ретро-приемники», в стиле 70х, но кроме винтажного внешнего вида, практического толку в них мало. Более-менее функциональный вариант — всеволновые приемники, например Tecsun:

Радиоприемник Tecsun PL-990
Радиоприемник Tecsun PL-990

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

Другим интересным вариантом является российская разработка, приемник Малахит-DSP, сделанный на базе SDR. Панорамный экран и цифровые фильтры гораздо более удобны для приема сигналов, но увы, приемник выпускается мелкосерийно и купить его не так-то просто, когда я последний раз интересовался, срок предзаказа был порядка нескольких месяцев. На eBay и Aliexpress также можно найти множество клонов, ничего про их качество я сказать не могу, зато они относительно дешевы и всегда есть в наличии:

Клон Malahit DSP, eBay
Клон Malahit DSP, eBay

Наконец, последний вариант — это стационарный приемник SDR (Software Defined Radio). Интересными по функциональности являются приемники SDRPlay, которые можно найти как в оригинальном варианте, так и в виде клонов.

Приемник SDRPlay (c) https://www.sdrplay.com
Приемник SDRPlay (c) https://www.sdrplay.com

Такой приемник подключается по USB, требует наличия ПК для работы и не является портативным, что имеет как плюсы в плане функциональности, так и минусы в плане автономности. Благодаря обработке сигналов на компьютере можно видеть широкую полосу в диапазоне нескольких МГц.

SDR Uno, скриншот
SDR Uno, скриншот

Оригинальные модели продаются британской компанией, что может вызвать сложности с доставкой, однако клоны доступны на eBay и на Aliexpress.

Антенны

К сожалению, просто купить приемник недостаточно от слова «совсем». Длинные, средние и короткие волны имеют длину волны от 10 до 100 метров, и современная квартира с арматурой в стенах является для них практически идеальной «клеткой Фарадея». Вторая проблема — помехи. Т.к. радио сейчас практически никто не слушает, производители бытовой аппаратуры экономят на фильтрах и экранировании, практически любое устройство «фонит» на частотах от 100КГц до нескольких мегагерц. По большому счету, это никому не мешает, до тех пор пока мы не захотим услышать хоть какие-то станции на этих же частотах — в реале прием коротких волн в современной квартире практически невозможен, кроме треска и шипения не удастся услышать ничего.

Однако решение проблемы вполне возможно, и тут есть несколько вариантов.

  • Отойти от жилых домов

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

  • Активная антенна

    Этот вариант удобен тем, кто хочет принимать станции у себя дома. Активная антенна фактически представляет собой широкополосный ВЧ-усилитель, суть которого — поймать сигнал за пределами здания:

    Антенна (с) https://www.on8im.be/en/active-antenna-pa0rdt.html
    Антенна (с) https://www.on8im.be/en/active-antenna-pa0rdt.html

    Важно отметить, что такая антенна не работает в квартире — её желательно разместить снаружи, например на крыше или хотя бы на балконе (при размещении антенны на крыше нужно подумать о грозозащите). Антенну можно купить или собрать самостоятельно, как можно видеть из фото, схема довольно простая, найти ее можно по ключевым словам PA0RDT или Mini Whip. Существуют кстати и пассивные антенны, например японская AOR SA7000, которая не требует питания, но она довольно дорогая.

  • Магнитная антенна (Magnetic Loop)

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

    Антенна Wellbrook (с) https://www.wellbrook.uk.com/loopantennas/Loop_Antennas
    Антенна Wellbrook (с) https://www.wellbrook.uk.com/loopantennas/Loop_Antennas

Также как и в случае активной антенны, магнитную антенну желательно разместить снаружи здания. Простейшую конструкцию можно сделать за час из двух кусков провода и конденсатора переменной емкости. Антенну можно купить, диапазон цен колеблется от 30$ за китайские антенны на eBay/Aliexpress до 300 фунтов за английские Wellbrook. Есть даже магнитные антенны, способные работать на передачу — с помощью цифровых видов связи можно передавать информацию на тысячи километров с малой скоростью даже при нескольких ватт мощности. Для радиоприема это не актуально, но знать о такой возможности все же полезно.

Заключение

Дальний прием радиостанций — довольно интересное хобби. Я все же надеюсь, что в виде хобби оно и останется, и большинству читателей Хабра не пригодится, но в случае необходимости знать о возможностях дальнего радиоприема полезно.

Желающие прочитать более подробно о теме радио, могут посмотреть другие статьи:


ссылка на оригинал статьи https://habr.com/ru/post/653737/

Кастомные Android-прошивки и всё, что с ними связано

Покупаешь новый смартфон и ходишь радостный пока опять новый кастом не накатил. Он и работает шустро, и игрушки идут лучше, уж побыстрее стока, но тут прилетело OTA, ядро новое вышло, да и Magisk обновился уже — пора ставить апдейты и получать “бутлупы”. Да, от общего числа пользователей Android смартфонов доля тех, кто сидит на кастомах крайне мала. Однако, всё же людям приходят в голову странные мысли по типу: “А не прошить бы мне свой Xiaomi, что б летал как ракета”. По такому случаю статья, в которой рассказывается про кастомные Android прошивки от А до Я.

Кастомные прошивки и их классификация

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

Вот основые вариации Android-прошивок:

  1. Официальная от производителя (стоковая)

  2. Кастомная, собранная из исходников

  3. GSI-прошивка

  4. Портированная прошивка

А теперь про каждую поподробнее. Официальная прошивка от производителя установлена в смартфоне с завода: то есть вы покупаете телефон именно с ней. Её делал отдел компании-производителя, который отвечает за программное обеспечение своих устройств. Также, любая уважающая себя компания, предоставляет исходный код прошивки, которую они создали, те самые исходники. Далее по списку кастомная прошивка, собранная из исходников — та, которую собирали сторонние разработчики. Такая прошивка является модифицированной и может включать в себя всевозмножные улучшения и кастомизации, которых не было в официальной. Следующая у нас GSI-прошивка — отличается от двух предыдущих тем, что при её установке не затрагивается раздел Vendor, так как GSI-образ это и есть образ системы. Работают эти GSI прошивки куда медленнее и менее стабильно, чем собранные из исходников. Ну и последняя — порт прошивки с другого девайса. Это прошивка, полностью перенесённая с иного устройства и изменённая для работы на конкретном смартфоне. По большей части это самые багованные прошивки, так как система не просто не родная, она ещё и содрана с другого устройства. Но их используют: к примеру те же любители фирменных оболочек различных устройств. Существует огромное колличество портированных прошивок со смартфонов OnePlus с их оболочкой OxygenOS, которая многим приходится по душе.

Мы будем рассматривать именно те кастомы, которые собираются из исходного кода. На это есть ряд причин, а именно: такие прошивки работают быстрее остальных, они стабильнее и представляют из себя полноценную замену стоковой, так как собирались под конкретный девайс, а не имеют лишь образ System как GSI и не являются портированными. Естественно, не без учёта качества сборки. На данный момент кастомы имеют широкое распространение среди многих моделей различных брендов, также, само сообщество создателей кастомов постоянно растёт и развивается, поэтому найти стабильно работающую прошивку по свой смартфон не представляет особой трудности.

Существует классификация прошивок, показывающая, на основе какого исходного кода взята база для сборки:

  1. AOSP — Android Open Source Project. Представляет из себя абсолютно голую систему Android, на которую в последующем «навешивают» оболочки, по типу One UI, MIUI, OxygenOS и так далее. Даже в сматфонах Google Pixel не AOSP, в них установлена собственная оболочка.

  2. CAF — Code Aurora Forum. Проект Linux Foundation, который содержит программный код для прошивок смартфонов на базе процессоров Qualcomm. Прошивки, которые базируются на CAF-тегах могут быть не самыми стабильными, но за счёт последних версий драйверов они имеют ряд приемуществ: лучшая производительность, более высокая скорость интернет соединения, хорошая автономность и улучшенное качество звучание.

  3. LineageOS — кастом, на котором базируются многие другие кастомы, вроде CRdroid, Resurrection Remix и им подобные. Изначально был CyanogenMod: именно он был на слуху, да и развивался постоянно. Позже переименовался в LineageOS. В какой-то момент в AOSP было внесено столько изменений разработчиками линейки, что её начали использовать как базу для других прошивок.

Зачем же нужны кастомные прошивки?

Простому пользователю — незачем. Если хочется поиздеваться над устройством, либо наоборот преобразить его с помощью новоиспечённого кастома на последней версии Android и перевернуть в нём всё, чтобы сделать так, как хочется — это ваше. Когда человек ставит кастом, он берёт ответственность за работоспособность девайса полностью на себя, и в случае, если вдруг что-то пойдёт не так, а вы не сможете починить свой смартфон, то, это уже будет ваше личное дело. Скорее всего ваш случай не попадёт под гарантийный, даже если сломалась аппаратная часть смартфона. Придётся как минимум заставлять СЦ проводить нормальную диагностику, чтобы исключить самую тупую причину поломки: кастом. Также, почти любую софтовую поломку во время прошивки можно устранить в домашних условиях, не прибегая к помощи работников сервисного центра. Так что если кто надумал шиться, знайте: кирпич это не так страшно. В любом случае в интернете есть огромное колличество гайдов «как и что в случае чего».

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

Процесс установки прошивки и разделы накопителя

Итак, вот мы и подошли к самому главному: установка. Это универсальная инструкция для всех смартфонов, которая будет работать при установке большей части прошивок. Но, на некоторых устройствах могут быть свои особенности установки, которые нужно уточнять в источнике откуда берёте прошивку. Обращать внимание на нюансы действительно очень важно, так как если шить «как захотел», то в лучшем случае можно получить «бутлуп», а в худшем будет «кирпич». Все манипуляции должны производится на уже разблокированном загрузчике. Разблокировка осуществляется с помощью софта от производителя смартфона, либо командами Fastboot. За подробностями — в тему своего устройства.

При подготовке скачиваем всё, что необходимо для установки прошивки: нужное TWRP, последний Firmware (если имеется на ваш смартфон), сама прошивка, кастомное ядро (вдруг нужно), патчи и фиксы (при надобности), по желанию GAPPS (Google Apps), дешифратор (снятие шифрования Data) и Magisk (Root-права). После того, как всё скачалось, лучшим вариантом будет перекинуть все эти файлы на флешку, чтобы шиться с неё. Из всего выше перечисленного для установки прошивки нужно только TWRP и сама прошивка, но, чаще всего люди шьют и всё остальное, поэтому вот последовательность, которая включает в себя самую обычную установку прошивки.

  • Ставим TWRP на свой смартфон:

TWRP — модифицированная версия Recovery (режим восстановления), в котором мы и будем производить все манипуляции. Для этого достаточно установить драйвера для своего устройства на компьютер и прошить образ нужного TWRP в раздел «Recovery» (если не грузиться, то и в Boot) через специальную утилиту в зависимости от платформы процессора смартфона: MediaTek или Qualcomm (SPFlashTool или Minimal ADB and Fastboot). Выбирайте TWRP на вкус и цвет, главное чтобы работало. Если TWRP уже установлен, сразу начинаем со второго пункта.

  • Очистка разделов смартфона:

Основные разделы смартфона, которые видно в TWRP:

  1. Dalvik / ART Cache — кэш виртуальных машин Dalvik / ART.

  2. Cache — системный кэш.

  3. Data — раздел с данными системы и всех установленных в ней программ.

  4. System — сама система. Те же GSI-образы устанавливаются именно в этот раздел.

  5. Vendor — бинарники, конфиги, библиотеки. В общем всё, что запихнул производитель в смартфон, для нормальной его работы.

  6. Внутренняя память — она у вас на главной странице в проводнике. Созданные или скачанные вами файлы.

  7. Micro SDCard — точка монтирования карты памяти (флеш-память).

  8. USB OTG — точка монтирования флешки, либо харда, подключенных по OTG-кабелю.

Заходим в TWRP той комбинацией клавиш смартфона, которой заходят в режим Recovery и производим очистку смартфона, чтобы кастом шился на чистый накопитель. Для этого в TWRP ищём пункт связанный с очисткой и заходим в него. Там же мы наблюдаем разделы смартфона и галочки рядом с ними. Нам нужно поставить галки напротив разделов Dalvik / ART Cache, Cache, Data, System, Vendor (необязательно), Внутренняя память, но не ставить на Micro SDCard и USB OTG, которые указывают на SD-карту, либо OTG-накопитель, в зависимости от того, где у вас лежат файлы для прошивки. После мы просто проводим свайп для очистки разделов (вы потеряете все данные на смартфоне). Далее нам нужно отформатировать DATA-раздел. Делается это там же в меню очистки с введением подтверждения в виде слова «yes». После успешного форматирования DATA-раздела нам нужно сделать перезапуск в TWRP. Зачем? Это может быть необходимо, для правильного определения разделов самим TWRP во избежание ошибок при установке прошивки. Также, существует вариант OTA-обновления: установка прошивки как обновления уже существующей, без форматирования памяти.

  • Грузимся обратно в TWRP и приступаем к установке:

    Выбираем накопитель на котором лежат необходимые файлы и ставим всё в такой последовательности:

    1. Firmware

    2. Прошивка (Система, которую ставим)

    3. Перезагрузка в TWRP (По причине, описанной выше)

    4. Ядро

    5. Перезагрузка в TWRP

    6. Необходимые патчи / фиксы

    7. GAPPS (Google Services)

    8. DFE (Отключение шифрования)

    9. Magisk (Root права)

  • Перезагрузка в систему и дальнейшая её настройка на ваш вкус.

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

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

Ошибки могут быть разные, но решаются по одному и тому же алгоритму. Если TWRP выдаёт ошибку, то:

  1. Проверить какую прошивку вы ставите. Всякое бывает, можно и не свою скачать случайно.

  2. Перечитать инструкцию если таковая есть, вдруг что-то пропустили.

  3. Перекачать установочный zip с прошивкой (он может быть битый).

  4. Если 1-2-3 не сработали, то проводим очистку разделов и форматируем Data.

  5. Крайний случай: прошиваем стоковой прошивкой через фирменный прошивальщик.

  6. Только при наличии программатора и умения с ним работать: шьём через него сток (может решить проблему, если не помог обычный прошивальщик)

  7. Пробуем восстановить смартфон по индивидуальной для каждого инструкции «Восстановление из кирпича», которая ищется в теме своего устройства.

  8. Если совсем никак, скорее всего проблема в железе. Поэтому остаётся только вариант сервисного центра.

Все проблемы, которые могут возникнуть в рабочей системе решаются установкой «Фикса от Васяна», сменой ядра, либо установкой другого кастома.
Если вы уже решили заняться этим делом, то ищите и пытайтесь пофиксить, а ещё лучше показать остальным как вы решили свою проблему, если решения до вас не было.

Выводы: нужно оно нам, или нет

Для начала придётся немного пострадать, а там уже опыт наберётся и можно будет шиться без гайдов и фиксить любую проблему самому. Получение удовольствия от использования своего смартфона станет не таким редким явлением. Захотели себе что-то особенное и лучше чем сток? Готовы уделять этому время? Форумы с прошивками вас ждут. «Кастом будет всегда лучше любого стока» — эта фраза будет иметь смысл только в том случае, если прошивка хорошо собрана, имеет ядро с различными оптимизациями и почищена от мусорных приложений. Тут дело уже не во вкусах, а в том, как на самом деле.


ссылка на оригинал статьи https://habr.com/ru/post/653757/

DeepETA: как Uber прогнозирует ETA с использованием глубокого обучения

Прим. Wunder Fund: В сегодняшней статье рассказываем, как Уберу удается точно предсказывать время прибытия такси или курьера. Мы нашли её очень увлекательной, как и несколько других статьей из технического блога Убера.

Волшебный клиентский опыт пользователей Uber зависит от точного прогнозирования ожидаемого времени прибытия (Estimated Time of Arrival, ETA) автомобиля. Мы используем ETA для расчёта тарифов, для оценки времени подачи автомобилей, для стыковки пассажиров и водителей, для планирования доставок и для многого другого. Традиционные системы маршрутизации вычисляют ETA путём разделения дорожной сети на маленькие сегменты, представленные взвешенными рёбрами графа. Эти системы используют алгоритмы поиска кратчайшего пути для нахождения наилучшего пути на графе и складывают веса для получения ETA. Но, как всем известно, карта — это не то же самое, что поверхность Земли: граф дорог — это всего лишь модель, она не способна идеально соответствовать реальности. Более того — мы можем не знать о том, какой именно маршрут к пункту назначения выберет конкретный пассажир или водитель. Обучая ML-модели (Machine Learning, машинное обучение) на базе прогнозов, построенных с применением графов дорог, применяя исторические данные в комбинации с данными, получаемыми в режиме реального времени, мы можем уточнить расчёт ETA, приблизить расчётные показатели к реальным.

В течение нескольких лет компания Uber использовала для улучшения прогнозирования ETA ансамбли деревьев решений с градиентным бустингом. С каждым релизом системы размеры модели для расчёта ETA и её учебных наборов неуклонно росли. Для того чтобы не отстать от этого движения, команда Uber, занимающаяся Apache Sparkвнесла в апстрим-ветку XGBoost улучшения, направленные на то, чтобы модель могла бы быть ещё глубже. Благодаря этому наша модель, на то время, стала одним из самых больших и глубоких ансамблей XGBoost-деревьев. В итоге мы дошли до момента, когда увеличение размеров набора данных и модели уже себя не оправдывало. Для того чтобы и дальше увеличивать модель, чтобы продолжать улучшать её точность, мы решили исследовать тему машинного обучения. На это решение повлияло то, что большие наборы данных сравнительно легко поддаются масштабированию с использованием стохастического градиентного спуска с параллелизмом по данным (data-parallel SGD). Для того чтобы обосновать переход на глубокое обучение, нам нужно было преодолеть три основные проблемы:

  • Время отклика модели: модель должна возвращать найденное значение ETA, самое большее, в течение нескольких миллисекунд.

  • Точность: средняя абсолютная ошибка (Mean Absolute Error, MAE) должна быть значительно меньше, чем у действующей модели, основанной на XGBoost.

  • Универсальность: модель должна выдавать показатели ETA в применении ко всем видам деятельности Uber, в частности, в сферах перевозки пассажиров и доставки.

Для решения этих задач команды Uber AI и Uber Maps объединили усилия в совместном проекте DeepETA. Он направлен на разработку быстрой глубокой нейросетевой архитектуры, направленной на решение глобальных задач прогнозирования ETA. В этом материале мы расскажем о некоторых находках и проектных решениях, которые помогли DeepETA стать новой продакшн-моделью, применяемой в Uber для прогнозирования ETA.

Постановка задачи

В последние несколько лет наблюдался рост интереса к системам, комбинирующим физические модели мира и глубокое обучение. Мы применили похожий подход к прогнозированию ETA. Наша физическая модель представлена системой маршрутизации, которая использует картографические данные и сведения о дорожном движении, получаемые в режиме реального времени. Эта система используется для прогнозирования ETA путём суммирования времени, необходимого на прохождение каждого сегмента кратчайшего пути между двумя точками. Далее, мы используем технологии машинного обучения для прогнозирования расхождения между результатом, вычисленным на основе данных системы маршрутизации, и реальным результатом. Такой гибридный подход к нахождению ETA мы называем пост-процессингом ETA. DeepETA — это пример пост-процессинговой модели. С практической точки зрения обычно легче включить в систему новые источники данных и подстроить её под быстро изменяющиеся требования бизнеса, модифицируя пост-процессинговую модель, чем заниматься переделкой самой системы маршрутизации.

Рис. 1. Гибридный подход к пост-процессингу ETA с использованием моделей машинного обучения
Рис. 1. Гибридный подход к пост-процессингу ETA с использованием моделей машинного обучения

Для прогнозирования расхождения реального показателя ETA с расчётным, пост-процессинговая ML-модель принимает во внимание пространственные и временные данные, такие, как исходная точка пути, пункт назначения и время выполнения запроса. Учитываются так же и сведения о трафике, поступающие в режиме реального времени, и о природе запроса — например, о том, доставка ли это чего-либо, или посадка в автомобиль попутчика. Это показано на рис. 1. Данная пост-процессинговая модель отличается самым высоким показателем запросов в секунду (QPS, Queries Per Second) в Uber. Она должна быть очень быстрой — чтобы не слишком сильно увеличивать время обработки запросов на расчёт ETA. При разработке такой модели, кроме того, нужно ориентироваться на то, чтобы её применение приводило бы, в сравнении с предыдущей версией, к снижению MAE на различных сегментах данных.

Как мы добились высокой точности модели

Команда DeepETA протестировала и опробовала 7 различных нейросетевых архитектур: MLP, NODE, TabNet, Sparsely Gated Mixture-of-Experts, HyperNetworks, Transformer и Linear Transformer. Мы выяснили, что архитектура энкодер/декодер с механизмом внутреннего внимания даёт наилучшую точность. На рис. 2 дан общий обзор архитектуры нашей системы. Мы, кроме того, протестировали различные подходы к кодированию признаков и обнаружили, что преобразование всех входных данных в дискретную форму и создание эмбеддингов для них даёт значительные преимущества перед альтернативными подходами.

Рис. 2. Обзор информационных потоков в модели DeepETA
Рис. 2. Обзор информационных потоков в модели DeepETA

Энкодер с механизмом внутреннего внимания

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

В языковых моделях каждый вектор представляет собой токен, соответствующий одному слову. А в случае с DeepETA каждый из векторов представляет отдельный признак. Например — это может быть начальная точка поездки или время дня. Механизм внутреннего внимания раскрывает парные взаимодействия между K признаками табличного набора данных. Тут вычисляется матрица внутреннего внимания KK, содержащая попарные скалярные произведения векторов. Далее, результат применения функции softmax к этим масштабированным скалярным произведениям применяется для подстройки весов признаков. Когда слой внутреннего внимания обрабатывает каждый из признаков, он использует данные всех остальных признаков во входных данных в поиске подсказок и выводит представление текущего признака в виде взвешенной суммы всех признаков. Этот процесс показан на рис. 3. В ходе подобной работы можно встроить в текущий обрабатываемый признак сведения о нашем понимании временных и пространственных признаков и сосредоточиться на признаках, которые играют ключевую роль. В отличие от языковых моделей, в DeepETA не используется позиционное кодирование, так как порядок следования признаков здесь никакой роли не играет.

Рис. 3. Матрица внутреннего внимания
Рис. 3. Матрица внутреннего внимания

Рассмотрим в качестве примера путешествие из пункта A в пункт B. Слой внутреннего внимания масштабирует важность признаков, учитывая время дня, характеристики пунктов отправления и прибытия, загруженность дорог и так далее. Визуализация работы механизма внутреннего внимания показана на рис. 4 (анимация создана с использование Tensor2Tensor). Здесь 8 цветов соответствуют 8 ядрам внутреннего внимания, а оттенки цветов соответствуют случайным образом сгенерированным весам механизма внутреннего внимания.

Рис. 4. Механизм попарного скалярного произведения векторов входных признаков: цвета соответствуют ядрам механизма внутреннего внимания, а оттенки — случайным образом сгенерированным весам механизма внутреннего внимания
Рис. 4. Механизм попарного скалярного произведения векторов входных признаков: цвета соответствуют ядрам механизма внутреннего внимания, а оттенки — случайным образом сгенерированным весам механизма внутреннего внимания

Кодирование признаков

Непрерывные и категориальные признаки

Модель DeepETA создаёт эмбеддинги всех категориальных признаков, а перед созданием эмбеддингов признаков, представленных непрерывными значениями, разбивает их на блоки. Это несколько противоречит здравому смыслу, но разбиение непрерывных признаков на блоки приводит к более высокой точности, чем непосредственное использование таких признаков. Разбиение признаков на блоки нельзя назвать абсолютно необходимым действием. Нейронные сети способны изучать любые нелинейные прерывные функции. Но сеть, в которой используются признаки, разбитые на блоки, может иметь преимущество благодаря тому, что ей не приходится тратить ограниченные возможности по подстройке своих параметров на декомпозицию входного пространства. Так же, как было описано в этой работе, мы обнаружили, что использование квантилей при формировании блоков даёт лучшую точность, чем применение блоков одинакового размера. Мы подозреваем, что это так из-за того, что применение квантилей максимизирует энтропию. При любом фиксированном количестве блоков «квантильные» блоки несут в себе больше информации (в битах) об исходном значении признака, чем блоки, полученные при применении любой другой схемы разбиения данных на блоки.

Геопространственные эмбеддинги

Пост-процессинговые модели принимают данные о пунктах отправления и прибытия в виде информации о широте и долготе соответствующих точек. Так как эти сведения очень важны для прогнозирования ETA, DeepETA кодирует их отдельно от других признаков, представленных непрерывными значениями. Данные о местоположении географических объектов весьма неравномерно распределены по земному шару и содержат информацию во множестве пространственных разрешений. Поэтому мы квантуем сведения о местоположении, представляя их в виде нескольких сеток разного разрешения, основываясь на широте и долготе. По мере роста разрешения количество ячеек сетки растёт экспоненциально, а средний объём данных в каждой ячейке сетки пропорционально уменьшается. Мы исследовали три стратегии сопоставления этих сеток с эмбеддингами:

  • Точное индексирование: каждой ячейке сетки ставится в соответствие отдельный эмбеддинг. Это требует больше всего места.

  • Хеширование признаков: каждая ячейка сетки сопоставляется с компактным диапазоном хеш-контейнеров с использованием хеширующей функции. Количество контейнеров при таком подходе оказывается гораздо меньшим, чем при точном индексировании.

  • Множественное хеширование признаков: тут мы расширяем идею хеширования признаков, сопоставляя каждую ячейку сетки с несколькими компактными диапазонами хеш-контейнеров с использованием независимых хеширующих функций. Смотрите рис. 5.

Рис. 5. Пространственные сетки разного разрешения и применение множественного хеширования признаков с использованием независимых хеш-функций h1 и h2
Рис. 5. Пространственные сетки разного разрешения и применение множественного хеширования признаков с использованием независимых хеш-функций h1 и h2

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

Как мы добились высокой скорости работы модели

Как можно более быстрая обработка запросов на прогнозирование ETA — это очень жёсткое требование, предъявляемое к DeepETA. Хотя выдачу нужных результатов можно ускорить, используя специализированное аппаратное обеспечение и оптимизацию модели после её обучения, в этом разделе мы обсудим архитектурные решения, которые помогли свести к минимуму время обработки запросов с помощью DeepETA.

Быстрый трансформер

Хотя энкодер, основанный на трансформере, и даёт наилучшую точность, он оказался слишком медленным и не соответствовал требованиям по скорости обработки запросов в реальном времени. У исходной модели внутреннего внимания была квадратичная сложность, так как она вычисляла матрицу внутреннего внимания KK для K входов. Существует множество исследовательских работ, в рамках которых производится приведение к линейному виду вычислений, выполняемых в системе внутреннего внимания. Речь идёт, например, об исследовании таких архитектур, как linear transformerlinformerperformer. Мы, после экспериментов, выбрали архитектуру linear transformer (линейный трансформер). В ядрах такого трансформера используется особый приём, позволяющий избежать вычисления матрицы внутреннего внимания.

Для того чтобы подробнее рассказать о временной сложности модели, прибегнем к следующему примеру. Предположим, у нас имеется K входов размерности d. Временная сложность вычислений, выполняемых в обычном трансформере — это O(K2d). А временная сложность линейного трансформера — O(Kd2). Если есть 40 признаков у каждого из которых имеется 8 измерений, получается, что K = 40, а d = 2. А значит — K2d=12800, а Kd2=2560. Ясно, что линейный трансформер быстрее при K>d.

Больше эмбеддингов, меньше слоёв

Ещё один секрет высокой скорости DeepETA заключается в использовании разреженности признаков. В то время, как в модели имеются сотни миллионов параметров, в ходе конкретного сеанса прогнозирования задействуется лишь их небольшая часть — примерно 0,25%. Как мы этого достигли?

Так, сама модель сравнительно «мелка», в ней используется совсем немного слоёв. Подавляющее большинство параметров существует в форме поисковых таблиц эмбеддингов. Переводя входные данные в дискретную форму и сопоставляя их с эмбеддингами, мы избегаем необходимости применения неиспользуемых параметров таблицы эмбеддингов.

Перевод входных данных в дискретную форму даёт нам хорошо заметное преимущество в скорости обслуживания запросов в сравнении с альтернативными реализациями. Рассмотрим в качестве примера геопространственные эмбеддинги, показанные на рис. 5. Для того чтобы сопоставить широту и долготу с эмбеддингом, DeepETA просто квантует координаты и производит поиск по хеш-таблице. Временная сложность этой операции — O(1). А, для сравнения, если сохранить эмбеддинги в древовидной структуре, временная сложность поиска будет уже O(log N). Применение специально обученного полносвязного слоя для поиска подобных данных характеризуется временной сложностью O(N2). С этой точки зрения, приведение входных данных к дискретной форме и представление их в виде эмбеддингов сводится к классической компьютерной задаче поиска компромисса между местом и временем. Выполняя предварительное вычисление частичных ответов в форме больших таблиц эмбеддингов, формируемых в процессе обучения модели, мы снижаем объём вычислений, необходимых во время практического использования модели.

Как мы сделали систему универсальной

Одна из целей проектирования DeepETA заключалась в создании универсальной ETA-модели, которая подходит для всех направлений деятельности Uber во всём мире. Подобная задача может оказаться очень непростой, так как разные направления деятельности обладают различными нуждами и распределениями данных. Общая структура модели показана ниже, на рис. 6.

Рис. 6. Структура модели DeepETA
Рис. 6. Структура модели DeepETA

Декодер с корректировкой систематического отклонения

После того, как модель изучила осмысленные представления признака, нужно декодировать их и выдать прогноз. В нашем случае декодер — это полносвязная нейросеть со слоем корректировки систематического отклонения сегмента. Распределение абсолютных ошибок сильно варьируется между поездками, в ходе которых выполняется доставка чего-либо, и поездками с пассажирами, между длинными и короткими поездками, между поездками, когда ищут место посадки и высадки пассажиров. Разница есть и между однотипными поездками в разных глобальных мегарегионах. Добавление слоя корректировки систематического отклонения с целью подстройки исходного прогноза для различных сегментов помогает учесть естественные вариации ошибок и, в результате, улучшить MAE. Этот подход работает лучше, чем простое добавление в модель признаков сегментов. Причина, по которой мы реализовали слой с корректировкой систематического отклонения, а не многозадачный декодер, заключается в необходимости соблюдения ограничений на скорость работы системы. Мы, кроме того, задействовали несколько приёмов с целью дальнейшего улучшения точности прогнозов. Например — воспользовались на выходе ReLU для того чтобы спрогнозированные значения ETA были бы положительными; применили ограничение диапазона выходных значений для того чтобы ослабить воздействие на результат экстремальных значений.

Асимметричная функция потерь Хьюбера

Разные бизнес-сценарии требуют точечных оценок ETA различных типов. Их данные, кроме того, характеризуются различными пропорциями выбросов. Например, нам надо оценить средний показатель ETA для нахождения стоимости проезда, но при этом нужно контролировать воздействие выбросов в данных на результат. В других случаях может потребоваться применение специфических квантилей распределения ETA. Для того чтобы учесть всё это разнообразие требований, DeepETA использует параметризованную функцию потерь, а именно — асимметричную функцию потерь Хьюбера. Эта функция устойчива к выбросам и поддерживает разнообразные широко используемые точечные оценки.

Асимметричная функция потерь Хьюбера имеет два параметра — «дельта» и «омега». Они контролируют, соответственно, уровень устойчивости к выбросам и уровень асимметрии. Меняя «дельта» (как показано на рис. 7), мы можем гладко интерполировать квадратичную и абсолютную ошибки, при этом абсолютная ошибка оказывается менее чувствительной к выбросам. Меняя параметр «омега», можно управлять относительной стоимостью заниженных и завышенных прогнозов. Это полезно в ситуациях, когда опоздать на минуту хуже, чем приехать на минуту раньше. Эти параметры не только позволяют имитировать другие широко используемые функции потерь для регрессии, но и дают возможность приспосабливать точечные оценки, выдаваемые моделью, к требованиям, соответствующим различным бизнес-целям.

Рис. 7. Асимметричная функция потерь Хьюбера
Рис. 7. Асимметричная функция потерь Хьюбера

Обучение модели и обеспечение её работы

Для обучения и развёртывания модели мы применяем фреймворк Canvas из платформы машинного обучения Uber Michelangelo. Общая схема архитектуры, которую мы спроектировали, показана на рис. 8.

Рис. 8. Обучение и развёртывание модели
Рис. 8. Обучение и развёртывание модели

После того, как модель обучена и развёрнута в Michelangelo, нужно обеспечить передачу её прогнозов пользователям, делая это в режиме реального времени. Высокоуровневая архитектура системы показана на рис. 9.

Рис. 9. Обзор системы выдачи прогнозов пользователям, работающей в режиме реального времени
Рис. 9. Обзор системы выдачи прогнозов пользователям, работающей в режиме реального времени

Запросы пользователей Uber проходят через различные сервисы и доходят до сервиса uRoute. Этот сервис играет роль фронтенда для всех систем, отвечающих за выдачу данных по маршрутизации. Он выполняет запросы к системе маршрутизации, получая сведения о маршруте и ETA. Полученный показатель ETA и другие признаки модели он использует для выполнения запросов к сервису прогнозирования Michelangelo Online, получая в ответ данные, формируемые моделью DeepETA. Система предусматривает периодическое выполнение переобучения и перепроверки модели.

Итоги и планы

Мы запустили вышеописанную модель DeepETA в продакшн, она служит, так сказать, «полноприводным» глобальным инструментом для прогнозирования ETA. Теперь мы можем эффективно создавать, обучать и применять модели глубокого обучения, способные прогнозировать ETA лучше, чем это делали системы, основанные на XGBoost. Применение DeepETA сразу же привело к улучшению метрик, используемых в продакшне. Создав DeepETA, мы заложили базу для моделей, которые могут использоваться в самых разных сценариях.

Модель DeepETA позволила команде ETA исследовать разнообразные архитектуры моделей и наладить выдачу множества показателей ETA, нацеленных на различных пользователей. Сейчас идут работы по дальнейшему наращиванию точности модели. В частности, анализируется каждый из аспектов моделирования: наборы данных, признаки, трансформации, архитектуры моделей, алгоритмы обучения, функции потерь, инфраструктура обучения и развёртывания моделей. В будущем наша команда планирует исследовать такое перспективное направление, как непрерывное, инкрементальное обучение моделей, что позволит обучать систему прогнозирования ETA на более свежих данных.

О, а приходите к нам работать? 😏

Мы в wunderfund.io занимаемся высокочастотной алготорговлей с 2014 года. Высокочастотная торговля — это непрерывное соревнование лучших программистов и математиков всего мира. Присоединившись к нам, вы станете частью этой увлекательной схватки.

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

Сейчас мы ищем плюсовиков, питонистов, дата-инженеров и мл-рисерчеров.

Присоединяйтесь к нашей команде.


ссылка на оригинал статьи https://habr.com/ru/company/wunderfund/blog/653317/