[Open source, Программирование, Учебный процесс в IT] Как я учил студентов Северной Кореи разрабатывать ПО с открытым исходным кодом (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
03-Июл-2021 16:33

В 2016 году я отправился в Северную Корею, чтобы учить студентов магистратуры тому, как участвовать в разработке ПО с открытым исходным кодом. Вот фотография с одной из моих лекций:

В рамках курса студенты должны были опубликовать патчи для выбранного ими проекта. В этой статье я расскажу о том, как два патча были внесены в популярные библиотеки машинного обучения mlpack и vowpal wabbit. Я считаю, что эти примеры подчёркивают, что научное сотрудничество между северокорейцами и американцами может принести выгоду обычным гражданам обеих стран и улучшить дипломатические взаимоотношения.
Патч mlpack
Один из студентов работал над «системой распознавания транспортных средств на основе зрения» для своей магистерской дипломной работы. В этой задаче у нас есть трансляция с видеокамеры, установленной недалеко от дороги. Цель заключается в подсчёте количества проезжающих легковых и грузовых автомобилей. Это довольно стандартная задача машинного зрения, которую регулярно реализуют студенты всего мира, её выходные данные выглядят примерно так:

(К сожалению, это изображение взято не из проекта студента, а из https://github.com/ahmetozlu/vehicle_counting_tensorflow.)
Очевидно, студенту посоветовало заняться этой задачей Министерство транспорта Северной Кореи, потому что в Пхеньяне быстро растёт объём трафика. Люди, посещавшие Пхеньян в 1990-х, часто говорили о малом количестве машин на дорогах, но в наши дни город изобилует трафиком. Думаю, знаменитым пхеньянским девушкам-регулировщицам пригодилась бы автоматизированная помощь.
Студенты-выпускники в Северной Корее имеют доступ к Интернету без фильтрации, и мой студент воспользовался этим доступом, чтобы скачать библиотеку машинного обучения mlpack для реализации своей системы распознавания транспорта. Он решил использовать mlpack, потому что она написана на C++, а это основной язык, который студенты изучали на старших курсах. Но они столкнулись с очень серьёзной проблемой: их компьютер оказался очень старым и в нём не хватало памяти для компиляции библиотеки!
Потратив около часа на отладку, мы со студентом выявили источник проблемы, ими оказались шаблоны C++, используемые в mlpack. Во всех частях кода mlpack активно используются шаблоны, чтобы обеспечить возможность обобщённого программирования без затраты лишних ресурсов во время выполнения. Благодаря шаблонам mlpack получила репутацию библиотеки, выполняющей модели очень быстро и почти без использования лишней памяти, однако обратной стороной этого стала медленная и требующая много памяти компиляция. В то время компиляция требовала до 2 ГБ ОЗУ, а на ноутбуке северокорейского студента был установлен только 1 ГБ.
В конечном итоге студенту удалось заставить mlpack скомпилироваться, значительно оптимизировав процедуру компиляции. В оригинальном коде содержались сотни необязательных конструкций #include, и для решения проблемы достаточно было просто удалить этот мёртвый код. Сам коммит можно посмотреть на github. Это исправление повысило скорость компиляции на 25% и более чем в два раза снизило потребление памяти. Десятки тысяч людей и компаний, использовавшие mlpack после этого патча, очень выиграли от того, что северокорейский студент выполнил такую потрясающую работу.
Патч vowpal wabbit
Многие из студентов моего курса пока не определились с темой своей дипломной, поэтому я порекомендовал одному студенту поработать над анализом настроения постов в Twitter. Допустим, у нас есть такой твит:

и нам нужно классифицировать твит, как имеющий положительное или отрицательное отношение к его теме. Например, в показанном выше твите есть отрицательное отношение к саммиту в Сингапуре 2018 года между Дональдом Трампом и Ким Чен Ыном. Проанализировав тысячи (или миллионы/миллиарды) твитов таким образом, мы можем определить, как разные общества относятся к определённой теме. Это тоже совершенно повседневная задача, реализуемая студентами всего мира. Но для северокорейских студентов эта задача стала необычной.
Все студенты слышали о Twitter, но никогда им не пользовались. Несмотря на то, что их компьютеры имели прямой нефильтруемый доступ к Интернету, им было запрещено создавать аккаунты в сервисах соцсетей. Как мне объяснили, причина заключается в том, что США контролируют большинство инфраструктуры Интернета (в том числе такие веб-сайты, как Twitter), и с помощью таких программ, как PRISM АНБ и Cyber Command Вооружённых сил США шпионит за пользователями и манипулирует соцсетями.
США и Северная Корея так и не подписали мирного соглашения после Корейской войны, поэтому северокорейцев по-прежнему очень беспокоит возможность нападения США. Запрет на создание аккаунтов в соцсетях — это одна из «мер защиты», которых северокорейских студентов должны придерживаться, чтобы снизить влияние потенциальных «американских кибератак». К счастью, изучение Twitter — одна из областей моих исследований, и я привёз с собой довольно объёмные массивы данных, которые могли анализировать студенты.
Как любил напоминать мне один из моих северокорейских коллег, этот проект был примечателен тем, что в нём северокорейский студент впервые анализировал данные Twitter. И анализ данных Twitter вскоре приобретёт геополитическую важность: спустя менее чем год после начала проекта президентом США был избран Дональд Трамп, и Twitter стал одним из основных инструментов, через которые его администрация начала сообщать о своей внешней политике миру. К счастью, к тому времени, как Трамп придал Twitter этот псевдоофициальный статус, хотя бы малая доля северокорейцев уже имела опыт анализа его данных. Они могли использовать этот опыт, чтобы лучше понимать и твиты Трампа, и ответы, отправляемые миллионами американцев. Правительство Северной Кореи сегодня признаёт важность пользования соцсетями для понимания американской политики, поэтому недавно создало новое Министерство иностранных дел, занимающееся анализом намерений США через соцсети и другие источники публичной информации. И для обеих стран это отличная новость! США созданы на основе системы прозрачности, потому что государство хочет, чтобы каждый (в том числе и северокорейцы) понимал, как работает демократия и как нам лучше договариваться, чтобы достигать общих целей.
Это взаимодействие между научным обменом знаниями и дипломатией называется дипломатией науки, оно оказалось чрезвычайно важным для успешного обсуждения США и СССР ограничений на системы ядерных вооружений во время холодной войны. Я считаю, что мой труд по преподаванию ПО с открытым исходным кодом в Северной Корее поможет показать, что эта модель дипломатии науки также может быть успешно применена и в переговорах между США и Северной Кореей.
Но вернёмся ко вкладу моего студента в open source. Я порекомендовал, чтобы студент использовал для выполнения анализа vowpal wabbit, так как этот отличный инструмент для анализа объёмных текстовых массивов данных. Студент скачал код, скомпилировал его и проанализировал настроение нескольких тысяч твитов. В этом случае код хорошо работал на компьютере студента без всяких изменений. Однако для прохождения курса ПО с открытыми исходниками ему всё равно нужно было опубликовать патч.
Он нашёл на Github открытый issue с просьбой добавить возможность менять способ взаимодействия свободного члена с регуляризацией L2 при обучении линейных моделей, и опубликовал патч, добавляющий такое поведение. (Пул-реквесты обоих проектов были отправлены с моего Github-аккаунта, потому что Github считается соцсетью, а северокорейским студентам нельзя создавать аккаунты в соцсетях.) Позже в этом патче обнаружился баг, и был добавлен следующий патч, устраняющий эту проблему. Именно таким образом и должен работать процесс разработки ПО с открытым исходным кодом, и мне кажется потрясающим, что open source позволяет обычным людям со всего света находить общие цели, создавая отличное ПО, даже несмотря на кажущиеся неразрешимыми политические разногласия.
Будущее open source в Северной Корее
Если я не ошибаюсь, то отправленные в рамках этого курса патчи стали первым вкладом в open source, сделанным из Северной Кореи; к сожалению, они же стали последними.
На следующий год (2017) я организовал ещё одно путешествие в Северную Корею и должен был привезти с собой ещё несколько преподавателей ПО с открытым исходным кодом, однако президент Трамп запретил американцам посещать Северную Корею. Поэтому мы с другими преподавателями больше не могли встретиться с северокорейскими студентами, и больше никто не мог учить их делать вклад в open source или мотивировать их к этому.
Президент Байден недавно объявил о своей политике «практичной дипломатии» с Северной Кореей. Однако подробности этой политики пока неизвестны, а запрет на посещение сохраняется. Поэтому американцы не смогут воспользоваться тем, что северокорейцы устраняют баги в их коде, а дипломатию науки, которая, по сути, снизила трения между США и СССР, невозможно использовать как инструмент снижения трений между США и Северной Кореей.
На правах рекламы
VDSina предлагает серверы в аренду под любые задачи, огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного ISO, удобная панель управления собственной разработки и посуточная оплата.
Подписывайтесь на наш чат в Telegram.

оригинал
===========
Источник:
habr.com
===========

===========
Автор оригинала: Mike Izbicki
===========
Похожие новости: Теги для поиска: #_open_source, #_programmirovanie (Программирование), #_uchebnyj_protsess_v_it (Учебный процесс в IT), #_severnaja_koreja (северная корея), #_programmirovanie (программирование), #_c++, #_mlpack, #_vowpal_wabbit, #_blog_kompanii_vdsina.ru (
Блог компании VDSina.ru
)
, #_open_source, #_programmirovanie (
Программирование
)
, #_uchebnyj_protsess_v_it (
Учебный процесс в IT
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 21-Сен 08:25
Часовой пояс: UTC + 5