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

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

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

Это странно, правда?

Вот несколько напоминаний о том, почему такие вещи важны.

1) Вы помните Cambridge Analytica и Facebook, верно? (Напоминаем, что информация 87 миллионов пользователей была ненадлежащим образом предоставлена ​​Cambridge Analytica для анализа политического поведения пользователей Facebook и манипулирования им). Короче говоря, основная причина такой практики обмена данными, нарушающей конфиденциальность, заключалась в злоупотреблении API Facebook. В результате Facebook ограничил доступ разработчиков к данным, внося изменения в свои политики API.

2) Есть также проблемы, когда API-интерфейсы машинного обучения используются в качестве аналитических сервисов. В этом случае разработчики - это те, у кого есть данные, и они обращаются к API машинного обучения крупных технологических компаний для обработки этих данных (MLaaS). Исследование Джой Буоламвини и Тимнит Гебру Гендерные оттенки выявило значительную расовую и гендерную дискриминацию нескольких API распознавания лиц. Фактически, в результате, крупные технологические компании ограничили предоставление своих API-интерфейсов правоохранительным органам США (хотя кто знает об их деловых отношениях с другими странами…?)

Но как насчет обязанностей разработчиков, которые хотят использовать универсальные услуги технологических компаний? Есть ли какие-либо рекомендации, которые помогут им выбрать и использовать эти ML API ответственно в своих конкретных областях ?

API анализа эмоций: IBM Tone Analyzer или ParalletDots Text Analysis?

Если вы как разработчик не хотите создавать систему машинного обучения с нуля или использовать предварительно обученную модель, другой вариант - использовать облачные API машинного обучения. Все готово к работе: вы настраиваете учетную запись разработчика и получаете учетные данные API, вы предоставляете входные данные, поставщик услуг творит свою «магию», и вы получаете результаты в качестве вывода. Легкий! Вам даже не нужны какие-либо знания о данных и машинном обучении, чтобы иметь возможность интегрировать этот API в свой продукт. По крайней мере, так компании продают свои услуги.

Как разработчик, у вас есть очевидный набор критериев для выбора услуги: такие критерии, как точность, стоимость и скорость. Но что, если вы хотите выбрать службу ML API на основе других критериев, таких как конфиденциальность, безопасность, справедливость и прозрачность? Через какой процесс вы проходите? Что вы проверяете?

Вернемся к твитам Fair & Lovely. Считая себя нашим гипотетическим разработчиком, я с помощью Twint собрал несколько сотен твитов на тему fair & lovely на английском языке. Затем я рассмотрел RapidAPI, платформу, которая помогает разработчикам управлять и сравнивать различные API, и выбрал IBM Watson Tone Analyzer и ParrallelDots как лучшие варианты. Обе службы обещают выявлять эмоции, включая страх, гнев, радость, счастье и т. Д., Из твитов.

Затем я зарегистрировался в обеих службах и получил учетные данные API для бесплатных учетных записей разработчиков. Бесплатная учетная запись IBM «Lite» обеспечивает 2500 вызовов API в месяц; ParallelDots бесплатен для 1000 обращений к API в день.

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

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

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

На данный момент я бы не стал использовать ни один из этих инструментов в данном конкретном случае! Вы скажете мне, если фраза «Unilever - отмените честно и мило - подпишите петицию!» радостный! 🤦🏻‍♀️

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

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

Регистрация: политика конфиденциальности и условия обслуживания

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

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

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

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

IBM Tone Analyzer: When you want to create a developer account, IBM points you to their general privacy policy that lists everything from website visit to using cloud services. There are some vague statement such as:
"IBM may also share your personal information with selected partners to help us provide you ..." Who are their partners though?!
 Or "We will not retain personal information longer than necessary to fulfill the purposes for which it is processed." What is "longer than necessary?"
If you want specific information about data collection and retention via Tone Analyzer API go to the product document page. Some relevant information includes:
• "Request logging is disabled for the Tone Analyzer service.the service does not log or retain data from requests and responses."
The service "processes but does not store users' data. Users of the Tone Analyzer service do not need to take any action to identify, protect, or delete their data for this service."
ParallelDots: The website says that ParallelDots “protects your data and follow the GDPR compliance guidelines to the last word.” But it doesn’t go further? Which data? Metadata or developers’ information or users’ data? 
ParallelDots' ToS says "you may not access the services for purposes of monitoring their availability, performance or functionality, or for any other benchmarking or competitive purposes" This is bizarre to me, does that mean I broke their Tos?!

Документация

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

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

Вот еще одно сравнение, на этот раз безопасности API:

IBM Tone Analyzer: 
 IBM suggests developers use IBM Cloud Activity Tracker with LogDN to monitor the activity of an IBM Cloud account and investigate abnormal activity.
The service also requires a strong password and sends you a verification code to confirm your developer account.
ParallelDots: There is no information about API security in the API document page. However they mentioned that they only provide encrypted access to premium content. 
For registration, developers are not required to set a strong password, however, ParallelDots sends you a verification email to confirm your account.

🌏 Точно и точно… но для кого? В примере с Fair & Lovely язык играет важную роль. Твиты только на английском языке не дают точного понимания дискуссий вокруг продукта, потому что они не ограничиваются одним языком.

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

В нашем случае вот что я обнаружил:

IBM Tone Analyzer: The company listed 11 supported languages. However, there is no breakdown information about accuracy or other evaluation metrics based on different languages.
ParallelDots: The company listed 14 supported languages. However, there is no information about accuracy or other evaluation metrics based on different languages.

❗️ Предлагаемые (не) варианты использования. Компании также предоставляют рекомендации по предлагаемому использованию своих услуг, но иногда вариант использования может быть опасным или неэтичным. Компании должны быть прозрачными в случаях, когда разработчики не должны пользоваться их услугами.

IBM Tone Analyzer: Tone Analyzer use cases according to the document page include predicting customer satisfaction in support forums; predicting customer satisfaction in Twitter responses; predicting online dating matches; Predicting TED Talk applause. There is no indication about Not-to-Use Cases.
ParallelDots: There are two suggested use cases: “target[ing] detractors to improve service to them” and “brand-watching.” There is no indication about Not-to-Use Cases.

⚖️ Практика честности. За последние пару лет исследователи и практики повысили осведомленность о дискриминационных результатах систем машинного обучения. Они предоставили множество наборов инструментов, чтобы помочь компаниям оценить последствия своих инструментов для прав человека и быть прозрачными в отношении потенциальных социальных рисков. Отслеживаю различные инициативы, документы, инструменты здесь.

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

IBM Tone Analyzer: IBM provides information about background research, data collection process (twitter data), and data annotation method. However there is no mention of potential discrminatory outcomes and no breakdown information about demographics and measurement based on different sub-groups (language, gender, age, etc.)
Fun fact: IBM Research is one of the pioneers in providing fairness and explanability toolkits (check out IBM 360). They also proposed using FactSheets for every ML model to show the origin of training datasets, model specifications, and use cases. But when it comes to their own model, you rarely find such information on their product pages! 
This reminded me of the great piece of poem from Nizami, basically meaning first fix your own flaws before being too critical of others:
عیب کسان منگر و احسان خویش      دیده فرو کن بگریبان خویش
ParallelDots: I found no information about fairness practices.

🛠 Обслуживание и обновления

IBM Tone Analyzer: The company frequently update the service and provides information about the updates. However, in some updates there are generic sentecs including "The service was also updated for internal changes and improvements." What are those internal changes and improvements?
ParallelDots: I couldn't find information about updates and maintenance. 

💬 Сообщество разработчиков. Сообщества разработчиков (через Slack Workspace, Stack Overflow, GitHub и т. д.) помогают обмениваться отзывами, взаимодействовать с самими собой и поставщиками услуг и поднимать вопросы, касающиеся конфиденциальности, безопасности, справедливости, объяснимости определенный продукт и в определенной области.

IBM Tone Analyzer: IBM Watson provides Slack workspace (there is no dedicated channel for ethical uses, however) and a Stack Overflow developers community. The Github page for the Tone Analyzer is here. 
ParallelDots: The company has a GitHub page.

Рекомендации

Разработчикам

  • Не используйте API машинного обучения вслепую, особенно если они представляют собой черные ящики. Помимо таких критериев, как стоимость, скорость и точность, предлагаемых поставщиком услуг, рассмотрите критерии, связанные с честностью, конфиденциальностью, безопасностью и прозрачностью.
  • Если это не задокументировано, обратитесь к поставщикам услуг и спросите их, проводили ли они какие-либо проверки справедливости. Они обязаны опубликовать эту информацию в Интернете или помочь вам с ней ознакомиться. Используйте свою покупательную способность, они вас выслушают!
  • Подумайте о домене, для которого вы будете использовать инструмент. На кого может непропорционально повлиять результат интеграции данного ML API с вашим продуктом? Подумайте о поле, расе, религии, возрасте, языке, акценте, стране, социально-экономическом статусе (прочтите это, чтобы узнать больше об уязвимых группах, которые защищены конвенциями о правах человека). Я отслеживаю различные инструменты оценки машинного обучения здесь; вы можете найти их полезными в процессе оценки.
  • Попытайтесь найти наборы контрольных данных, которые относятся к дискриминационным результатам проектов машинного обучения (Equity Evaluation Corpus - это пример набора контрольных данных, который используется для изучения предвзятости в системах анализа настроений). Обратитесь к людям, которые участвуют в создании таких тестов, и попросите их помочь изучить API в вашем конкретном домене. Загляните в справочник FAccT Conference, чтобы найти людей, которые работают над этими вопросами.
  • Если вы подозреваете, что с какой-либо службой API в вашем конкретном домене что-то не так с этической точки зрения, поделитесь этим с другими разработчиками, открыв проблему на странице GitHub этой службы, на страницах Stack Overflow или на страницах сообщества разработчиков. Практически все службы у провайдеров есть эти платформы, на которых разработчики могут поделиться своими проблемами. Поставщики услуг могут сказать, что невозможно тестировать и проверять свои инструменты для каждого отдельного домена, потому что их сервис является универсальным инструментом. Но вы можете сообщить им об этических проблемах, с которыми вы сталкиваетесь в определенной области для ваших сценариев использования. Предоставляя общедоступную информацию, вы также можете помочь другим разработчикам, которые могут захотеть использовать эту услугу!
  • Если вы интегрируете сторонние API машинного обучения в свой продукт, укажите это в политике конфиденциальности вашего продукта и условиях предоставления услуг. Не сводите его к предложению, в котором говорится, что «мы пользуемся услугами других сторон». Включите информацию об этих сторонних услугах - в данном случае о поставщике услуг машинного обучения. Будьте прозрачны в отношении того, как обрабатываются данные пользователей из-за конкретных отношений с третьей стороной.

Поставщикам услуг API машинного обучения

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

  • Документируйте и будьте прозрачны! Не скрывайте критерии справедливости в 500-страничном документе. Используйте более наглядные и удобные пользовательские интерфейсы, чтобы помочь разработчикам ознакомиться с критериями справедливости и конфиденциальности перед регистрацией для использования вашего сервиса.
  • Добавьте вопросы, связанные с честностью, безопасностью и конфиденциальностью ваших собственных служб API, на порталы ваших разработчиков и на страницах сообщества. Позвольте разработчикам обсудить эти вопросы на этих порталах (например, создать специальный канал Slack в Рабочей области разработчиков) и побудить разработчиков поделиться своим опытом в области справедливости, конфиденциальности и безопасности при использовании ваших услуг (IBM 360 Slack Channel , Предупреждения в интерфейсе Salesforce являются хорошими примерами). Не только демонстрируйте "успешное" использование и положительные отзывы на своей странице на торговой площадке!
  • Каждый уровень учетной записи разработчика (бесплатная, стандартная, премиум) несет для вас разные уровни ответственности. Разработайте методы защиты конфиденциальности для отслеживания потенциальных злоупотреблений вашими услугами. В этом документе предлагаются некоторые возможные решения: Мониторинг неправомерного использования подотчетного« искусственного интеллекта как услуги ».

Аудиторам машинного обучения и специалистам в области прав человека и технологий

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

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

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

Я работаю над проблемами на стыке технологий и прав человека. Если вы разработчик и думаете о способах более ответственного выбора и использования строительных блоков вашего продукта, пожалуйста, свяжитесь со мной. Буду рад поговорить с вами: [email protected].

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