С Новым годом, читатели Hacker Noon!

Мы с радостью сообщаем, что закончили наш первый полноценный курс под названием Meeshkan: Machine Learning the GitHub API. Курс доступен на Udemy, и вы можете пройти его бесплатно.



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

Вкратце, к концу урока вы увидите, что [барабанная дробь] плотные, полностью связанные нейронные сети узнают о звездах быстрее, чем вилки, а модели работают на удивление хорошо, когда измерение среднеквадратичных потерь между фактическим и прогнозируемым количеством звезд в дополнение к категориальной перекрестной энтропии для количества звезд выше определенного порога . Это даже после введения удовлетворительных критериев для учета асимметричного распределения некоторых целей (то есть порог stars > 80000 ? 1 : 0 будет иметь только несколько проектов в категории 1, в то время как остальные из нас, смертных, тусуются с 0s). Чтобы понять это, мы скармливаем Meeshkan множество различных веб-перехватчиков, которые обслуживают данные, собранные из GitHub API, загружая различные модели Keras в Meeshkan и передавая результаты в Meeshkan. Небольшой экспресс-сервер для визуализации работы наших моделей.

На прохождение курса уходит около дня, и к концу вы не только освоите машинное обучение, но и развернете всю среду в Amazon Web Services, которая будет автоматически принимать общедоступные данные API для машинного обучения. Если вы хотите изменить руководство, чтобы изучить один из сотен открытых API-интерфейсов в Интернете, дерзайте! Я очень рад видеть, что вы узнаете :-)

В этой статье я хотел бы рассказать о создании учебника и, в частности, раскрыть несколько интересных вещей, которые я узнал об использовании Meeshkan для анализа результатов крупных проектов по сбору данных с использованием общедоступных API.

308 550

Это количество экземпляров сервера EC2 t2.micro, которые были созданы на Amazon для анализа и проверки GitHub API. Пакет собрал данные о 995 977 репо и колоссальных 14 329 073 коммитах. Средняя продолжительность жизни сервера составляла 203,45 секунды, и мы предлагаем 0,0040 доллара США в час за каждый сервер. Итак, когда вы сделаете математику, 308550 * 203,45 * 0,0040 / 3600 = 69,75 доллара на сбор всех этих данных. Основная причина, по которой я позволяю работать так долго, заключается в том, что некоторые части настройки (EC2, GitHub, MySQL, код учебного пособия) могут иногда неожиданно отслаиваться, что означает, что вы не получите количество коммитов, необходимое для выполнения машины. обучение. Например, только 125 082 репозиториев в базе данных имеют более 50 фиксаций. Если я бегу:

SELECT full_name, stargazers_count, COUNT(*) AS commit_count FROM repos JOIN commits on repos.id = commits.repo_id GROUP BY repos.id ORDER BY commit_count ASC, stargazers_count DESC LIMIT 5;

Я получил:

+--------------------+------------------+--------------+
| full_name          | stargazers_count | commit_count |
+--------------------+------------------+--------------+
| impress/impress.js |            32868 |            1 |
| Automattic/kue     |             6852 |            1 |
| cdnjs/cdnjs        |             5801 |            1 |
| square/cube        |             3871 |            1 |
| enyojs/enyo        |             1941 |            1 |
+--------------------+------------------+--------------+
5 rows in set (7.51 sec)

Другими словами, ложные срабатывания, поскольку ни в одном из этих репозиториев нет только 1 фиксации. Но даже когда мы изучаем репозитории с более чем 20 коммитами, 100 000 точек данных более чем достаточно для начала.

Кроме того, в необработанном виде есть несколько забавных алмазов. Команда:

SELECT full_name, size, stargazers_count FROM repos WHERE size = 2 ORDER BY size ASC, stargazers_count DESC LIMIT 5;

дает:

+-------------------------------+------+------------------+
| full_name                     | size | stargazers_count |
+-------------------------------+------+------------------+
| atg/chocolat-public           |    2 |              197 |
| edankwan/Jesus.js             |    2 |              114 |
| bancek/django-smtp-ssl        |    2 |               84 |
| boucher/stripe-webhook-mailer |    2 |               81 |
| tlatsas/bash-spinner          |    2 |               50 |
+-------------------------------+------+------------------+
5 rows in set (0.45 sec)

Да, https://github.com/edankwan/Jesus.js действительно репо, да, в нем почти ничего нет, и да, ему удалось набрать 114 звезд. Собственно, сейчас 115 с одним от меня :-)

Если вы не следуете руководству по Udemy и имеете хотя бы желтый пояс в инфраструктуре JavaScript и AWS, вы можете развернуть все это самостоятельно с помощью всего нескольких щелчков мышью с «https://github.com/meeshkan/github-tutorial- куча". Запросы на вытягивание приветствуются!

73

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

Например, ту же модель можно использовать для анализа количества различных авторов в окне фиксации 3 или 10, просто изменив параметр в веб-перехватчике. Модель вообще не меняется. Для каждого веб-перехватчика я загрузил от 3 до 5 моделей, все из которых работают параллельно, поэтому мы видим значок загрузки для первых результатов в минутах, и все это завершается в течение нескольких часов для самых длительных заданий в сети Meeshkan. очень разумная цена 0,08 грн в час.

4

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

  • Я бы предпочел сосредоточиться только на звездах с порогом около 1000 звезд для проекта, запустив несколько более глубоких нейронных сетей именно на этом диапазоне.
  • Я бы сравнил это со своим набором для проверки, что очень просто. Вместо передачи веб-перехватчика tutorials.meeshkan.io/github/80_10_10_/train/... я использую tutorials.meeshkan.io/github/80_10_10_/validate/... и вуаля, мы находимся в нашем наборе проверки. Таким образом, мы узнаем, нужно ли нам упорядочить нашу модель. Потому что вы не делаете преждевременной регуляризации, не так ли? ПРАВИЛЬНО??!?
  • Я бы получил больше данных, чтобы взглянуть на немного более длинную историю коммитов и написать новую модель Keras, которая рассматривает коммиты как последовательность событий.
  • Я бы получил версию модели в производственной среде как можно скорее и начал бы использовать ее в новых репозиториях GitHub. Таким образом, если мы решим, что ранняя версия модели достаточно хороша, чтобы начать помогать нам принимать бизнес-решения, нас уже ждет небольшой запас прогнозов.

Нет, подождите, есть пятая вещь ... вы должны открыть хорошую бутылку Penfolds Grange Hermitage 1951, потому что вы собираетесь заработать на своих потрясающих навыках искусственного интеллекта ниндзя после того, как пройдете наш курс Udemy :-)

Ваш собственный API-сканер на Meeshkan

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

  • Разверните учебные материалы по Udemy. Следование руководству - это здорово, а опираться на него - еще лучше. Есть бесконечное количество гиперпараметров, которые нужно настраивать. Итак, как только вы закончите обучение, отключайтесь! И помните: если вы не хотите выполнять полное руководство, вы можете просто использовать веб-перехватчик https://tutorials.meeshkan.io/github/..., чтобы начать работу, где ... объясняется в видео 3 учебного пособия, используя модель из видео 5 учебного пособия.
  • Забронируйте время для разговора. Машинное обучение подходит всем, а не только крупным компаниям с большими деньгами, но иногда бывает сложно начать работу. Мы надеемся, что после просмотра нашего руководства у вас появятся идеи для интересных проектов, которые можно реализовать на Meeshkan. Мы будем рады помочь вам начать работу! Запишитесь на бесплатную консультацию через Meeshkan Dashboard или прямо по календарю.
  • Присоединяйтесь к нашей группе Slack. Вы можете присоединиться к группе через консоль Meeshkan или зарегистрировавшись с помощью этой формы.

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

Я уже упоминал, что вы получаете 100 бесплатных часов машинного обучения и бесплатную пятнадцатиминутную консультацию, чтобы начать работу по машинному обучению? До встречи на Meeshkan!