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

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

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

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

Почему хорошая документация данных важна для Tech

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

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

  1. Помогает людям быть на одной волне. Наличие хорошей документации позволяет людям из разных команд иметь общее понимание.
  2. Делает видение и планы ясными. Правильные действия варьируются в зависимости от планов, видения и ограничений организации. Наличие подробной документации позволит каждому лучше понять следующие шаги. Помните, трудно увидеть цель, в которую вы не можете попасть. Документация делает ваши цели более конкретными.
  3. Сокращает время регистрации. Каждый раз, когда я работаю над новым проектом, я первым делом просматриваю то, что уже сделано. Это включает в себя описание методов, информации о собранных данных, обоснование конвейеров машинного обучения и т. д. Наличие хорошей документации значительно сократит время, которое я в противном случае потратил бы на то, чтобы наверстать упущенное.

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

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

Детали хорошей документации для машинного обучения.

Итак, теперь, чтобы ответить на многомиллионный вопрос: «Как написать хорошую документацию в области машинного обучения?» Давайте углубимся в это. Чтобы иметь хорошую документацию, вам необходимо обратиться к следующим областям:

  1. Видение компании и продуктов (поверьте мне, это очень важно)
  2. Ресурсные/ситуационные ограничения
  3. Используемые источники данных, доступные наборы данных и выполненная обработка
  4. Текущие проекты
  5. Фактический код у вас есть

Давайте рассмотрим каждый из них в отдельности

1: Видение и планы компании

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

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

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

У нашей новой гипотетической компании есть два пути. Один из них — попытаться обслуживать множество клиентов и зарабатывать деньги, достигая большого объема (тонны клиентов/заказов). Другой — работать только с несколькими крупными клиентами и создавать очень тяжелые решения, ориентированные на этих клиентов. В любом случае это позволит вам построить процветающий бизнес. Однако инженерные задачи для каждого из них очень разные. Четкое видение поможет всей вашей организации двигаться к правильным целям.

2: Ресурсные/ситуационные ограничения

Имея четкое видение, вам также необходимо обозначить ограничения, с которыми в настоящее время работает ваша команда. Эти ограничения могут быть ориентированы на физические/ресурсные ресурсы (нехватка рабочей силы, облачные вычисления, финансы) или на предметную область (правила и положения). Они могут даже навязываться самим себе (соответствовать определенным базовым показателям, использовать определенные инструменты/решения, интегрироваться в рамки). Четкое разъяснение этих вопросов будет иметь решающее значение, и вся документация должна охватывать их.

3: Информация о данных

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

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

Текущие проекты

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

Фактический код у вас есть

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

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

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

Это все для этой статьи. Если вы хотите заняться машинным обучением, в этой статье вы найдете пошаговый план развития навыков машинного обучения. Он использует БЕСПЛАТНЫЕ ресурсы. В отличие от других учебных лагерей/курсов, этот план поможет вам развить базовые навыки и настроить себя на долгосрочный успех в этой области.

Для машинного обучения крайне важна база в области разработки программного обеспечения, математики и компьютерных наук. Это поможет вам концептуализировать, построить и оптимизировать машинное обучение. Мой ежедневный информационный бюллетень Простые интервью по программированию охватывает темы проектирования алгоритмов, математики, последних событий в области технологий, разработки программного обеспечения и многого другого, чтобы помочь вам стать лучшим разработчиком. Сейчас действует скидка 20 % на ЦЕЛЫЙ ГОД, так что не забудьте проверить ее.

Я создал Coding Interviews Made Simple, используя новые методы, полученные благодаря обучению нескольких людей в ведущих технологических фирмах. Информационный бюллетень предназначен для того, чтобы помочь вам добиться успеха, избавив вас от часов, потраченных впустую на работу с Leetcode. У меня есть политика 100% удовлетворения, поэтому вы можете попробовать ее без риска для себя. Вы можете прочитать FAQ и узнать больше здесь

Не стесняйтесь обращаться, если у вас есть какие-либо интересные работы/проекты/идеи для меня. Всегда рад вас выслушать.

Для денежной поддержки моей работы следуют мои Venmo и Paypal. Любая сумма приветствуется и очень помогает. Пожертвования открывают эксклюзивный контент, такой как анализ бумаги, специальный код, консультации и специальные тренировки:

Венмо: https://account.venmo.com/u/FNU-Devansh

Paypal: paypal.me/ISeeThings

Свяжитесь со мной

Воспользуйтесь ссылками ниже, чтобы ознакомиться с другим моим контентом, узнать больше о репетиторстве или просто поздороваться. Кроме того, ознакомьтесь с бесплатной реферальной ссылкой Robinhood. Мы оба получаем свободный сток (денег вкладывать не надо), и никакого риска для вас нет. Таким образом, если вы не используете его, вы просто потеряете бесплатные деньги.

Ознакомьтесь с другими моими статьями на Medium. : https://rb.gy/zn1aiu

Мой Ютуб: https://rb.gy/88iwdd

Свяжитесь со мной в LinkedIn. Подключаемся: https://rb.gy/m5ok2y

Мой Инстаграм: https://rb.gy/gmvuy9

Мой Твиттер: https://twitter.com/Machine01776819

Если вы готовитесь к программированию/техническим интервью: https://codinginterviewsmadesimple.substack.com/

Получите бесплатный сток на Robinhood: https://join.robinhood.com/fnud75