Роль сообществ специалистов по науке о данных в изменении мира
Реальный пример того, как сообщества могут объединиться для решения сложных проблем.
Как человек, работающий в сфере высоких технологий более 5 лет, я приятно удивлен коллегами, которые хотят оказать положительное влияние на мир. Они обладают прекрасными качествами:
- У них есть отличные идеи для широкой аудитории
- Они хотят изучать новую технологию
- Они готовы сотрудничать с другими
Однако у этих «приятных вещей» есть свои оговорки:
- Общие идеи без знания предметной области трудно реализовать на практике
- Большинство людей зацикливаются на «изобретении велосипеда», на создании чего-то идеального
- Они сотрудничают с другими людьми в сфере технологий только из-за их социального пузыря
Иногда эти предостережения добавляют веса инициативам и задерживают запуск проектов. Однако ключ к решению этих ограничений прост, но сложен: Создание сообщества.
Соревнование
В этом месяце перед тем, как присоединиться к Google, у меня была возможность стать частью разнообразного и растущего сообщества, которому небезразлично, что происходит в мире: Омдена. Я присоединился к их AI Challenge, организованному Институтом мировых ресурсов, чтобы сотрудничать с другими экспертами в своих областях, чтобы решить задачу определения финансовых стимулов для лесовозобновления и восстановления ландшафта. Основное внимание уделялось изучению государственной политики Мексики, Гватемалы, Сальвадора, Перу и Чили.
Работа в этом сообществе дает серьезные преимущества:
- Краткие, обоснованные требования, разработанные экспертами в предметной области в Omdena и Институте мировых ресурсов, в состав которых входят аналитики государственной политики.
- Сотрудники, обладающие экспертными знаниями в самых современных областях, таких как обработка естественного языка, веб-парсинг, базы данных и глубокое обучение.
- Коллабораторы, которые сосредоточены на том, чтобы как можно скорее получить MVP, соблюдая баланс между качеством и инновациями.
Фон
Чтобы решить общую задачу, нам нужно было добиться следующего:
- Извлеките из Интернета официальную достоверную информацию о политике в этой области.
- Нормализовать то, что извлекается, для использования в моделях машинного обучения, которые мы в конечном итоге используем.
- Обучите модели машинного обучения, которые дадут нам желаемый результат.
- Представьте результаты через удобный интерфейс.
Окончательное решение состояло из следующего:
- Сочетание Scrapy и APIFY как технологий для извлечения более 100 000 документов, связанных с финансовым стимулированием лесовосстановления и восстановления ландшафта для 5 стран.
- Препроцессор NLP, который использует библиотеки NLTK, Spacy и другие Python для нормализации входных данных.
- Две полууправляемые модели: выделение сегментов и тематическая модель. Средство выделения сегментов (BETO) принимает статью в качестве входных данных и выводит абзацы-кандидаты, в которых вы можете найти финансовые стимулы. Тематическая модель использует LDA (скрытое распределение Дирихле) для извлечения тем в документе, например, лесовосстановления.
- Веб-приложение, обслуживаемое через сервер Flask, размещенный в экземпляре AWS EC2
Моя роль
В рамках проекта я имел удовольствие выполнять следующие обязанности:
Руководитель задачи предварительной обработки
Мне выпала честь руководить группой сотрудников любого уровня подготовки. Эта группа работала над нормализацией документов, извлеченных из Интернета, для использования в наших полууправляемых моделях машинного обучения. Я управлял этими усилиями в основном за счет использования встреч Trello, GitHub, Slack и Zoom.
Проблема
Документы могут содержать орфографические ошибки, артефакты из исходных файлов, таких как PDF, конечные пробелы и т. д. Это может затруднить понимание текстовых данных для наших моделей машинного обучения.
Кроме того, мы потребовали, чтобы документы были разделены на абзацы, чтобы средство выделения сегментов выбирало абзацы, а не предложения, содержащие стимулы.
Метод
- Удаление пробелов
- Извлечение абзаца и токенизация на уровне слова
- Исправление орфографии с помощью проверки орфографии
Мы просмотрели различные библиотеки для предварительной обработки NLP, такие как Spacy, NLTK и Scikit, и проверили желаемые результаты. Я специально участвовал в предоставлении рекомендаций по используемым инструментам, извлечению абзацев и проверке орфографии.
Весь конвейер должен быть доступен всем участникам группы предварительной обработки, чтобы мы могли нормализовать документы для 5 стран. Я отвечал за создание программы Python, объединяющей все эти компоненты. Я записал видео, чтобы новички и опытные пользователи могли одинаково использовать инструмент и при необходимости вносить в него изменения.
Вывод
Согласованные, нормализованные, чистые текстовые файлы, которые использовались задачей моделирования.
Архитектура прикладного программного обеспечения
Я также возглавляю программную архитектуру всего решения в тандеме с остальными руководителями задач.
Проблема
Я занимаюсь разработкой программного обеспечения, и у меня были два приоритета: сделать все как можно более модульным и сопоставить все с тем, что нужно клиенту.
Метод
- Для задач предварительной обработки и моделирования я создал начальный скелет сценариев предварительной обработки и моделирования в сотрудничестве с моими товарищами по команде. Скрипты должны быть модульными, легко расширяемыми и читаемыми.
- Я набросал диаграммы, в которых подробно описывалось, как компоненты подключены для доставки данных через приложение конечному пользователю.
- Я участвовал во встречах, на которых выслушивал требования клиентов и преобразовывал их в варианты использования, требования заинтересованных сторон и системный дизайн с формальным стандартом, который позволял напрямую сопоставлять его с программными модулями в высокоуровневой архитектуре.
- Создал доказательство концепции MVP, который обслуживал фиктивные данные через сервер Python Flask, чтобы сопоставление между вариантами использования и модулями было четким для задач визуализации, моделирования и предварительной обработки данных.
Вывод
- Модульный код для предварительной обработки и скрипты модели выделения сегментов
- Доказательство концепции того, как должны быть получены результаты
- Требования и варианты использования, которые необходимо выполнить для решения в целом
Дополнительная поддержка
На ранних этапах работы с маркерами сегментов я помогал с тестированием моделей, которые мы использовали для этой цели. На последних этапах модели тем я предложил добавить отрицательные примеры, чтобы усилить различение тем, которые нас волнуют.
С помощью этой разнообразной группы экспертов мы смогли закончить и представить инструмент для действующих политиков в пяти странах, который показал им, что именно они ищут, - финансовые стимулы во всех странах. страны по темам в удобном пользовательском интерфейсе.
Я горжусь тем, что смог представить разработчикам политики отличное решение, которое поможет им принимать действенные решения и улучшать лесное хозяйство и природные ландшафты в этих пяти странах. Будем надеяться, что эту работу можно будет распространить на большее количество стран мира.
Это было бы невозможно без моих коллег и сообщества Омдена, к которому мы теперь принадлежим.
Спасибо за эту возможность!