|
|
|||||||||||||||||||||||||||||
|
Архитектура IBM WatsonКогда говорят о Watson, то подразумевают систему, состоящую из трех компонентов: суперкомпьютера, работающего под управлением операционной системы Linux, связующего ПО, реализующего архитектуру UIMA (Unstructured Information Management Architecture), и системы ответов на вопросы DeepQA, специально "заточенной" под Jeopardy!. Центральной частью и, возможно, наиболее важной на последующую перспективу является UIMA.Вопрос-ответные системы (Question Answering, QA) предназначены для поиска точных ответов на вопросы, поставленные на естественном языке (Natural Language Processing, NLP). Важно подчеркнуть, что речь идет о точных ответах, человек-пользователь должен иметь возможность для однозначной интерпретации ответа, поэтому ответ может сопровождаться какой-то детализирующей или конкретизирующей информацией. Источником сведений могут быть неструктурированные данные (книги, журналы, Web-страницы, блоги), квазиструктрированные (справочники, словари, энциклопедии, вики и ее аналоги) и базы данных. В Европе такие исследования объединяет организация Cross-Language Evaluation Forum (CLEF), а в Японии ведет рабочая группа NTCIR в рамках реализуемого Национальным институтом информатики проекта Cross-Language Information Retrieval (CLIR). Технология управления неструктурированной информацией (Unstructured Information Management, UIM) и соответствующая архитектура UIMA разрабатывалась в IBM Research еще с 90-х годов группой, насчитывавшей порядка 200 сотрудников. Их деятельность была сосредоточена на средствах для работы с NLP и включала поддержку диалога на естественном языке, выделение полезной информации, анализ текстов, классификацию документов, машинный перевод и вопрос-ответные системы. Итогом стало создание связующего ПО, получившего название UIMA, которое может служить ядром для создания и внедрения распределенных аналитических машин (analysis engine), или UIM-приложений, позволяющих извлекать знания из неструктурированной информации, в том числе из текстов, аудио, видео и изображений.
Структура UIMA (рис.) состоит из нескольких компонентов. Захват данных (Acquisition) обеспечивает сбор документов из разных источников и формирование необходимых коллекций (collection), предназначенных для определенных приложений. Функцию захвата могут, например, осуществлять Web-пауки (web crawler), а также иные средства, какие именно, для приложений не важно, поскольку имеется специальный уровень интерфейса Collection Reader, связывающий приложения с коллекциями данных и метаданных. Анализ неструктурированной информации (Unstructured Information Analysis) делится на два последовательных этапа - сначала выполняется анализ документов, а затем анализ коллекций документов. Входные документы обрабатываются текстовыми аналитическими машинами (Text Analysis Engine), в том числе трансляторами и модулями, выполняющими грамматический разбор, классификацию, обобщение. Используя входные документы, текстовые аналитические машины вырабатывают обобщенные аналитические структуры (Common Analysis Structure). На этап анализа коллекций документы могут поступать напрямую или через промежуточный этап, на котором выполняется необходимая фильтрация и переформатирование для последующей параллельной обработки. Анализ на уровне коллекций (Collection Level Analysis) позволяет обобщить сведения, содержащиеся в коллекции документов. Анализ структурированной информации (Structured Information Analysis) используется как для входных данных, поступающих в структурированной форме, так и для данных, появляющихся после анализа неструктурированной информации, где их значительная часть структурируется, с тем чтобы к ним можно было применить известные методы анализа. В результате аналитические механизмы, предназначенные для двух типов данных, оказываются охваченными общей петлей обратной связи. В 2004 году были подведены предварительные итоги работ по созданию UIMA, и в качестве ближайшей цели была выбрана система подготовки ответов IBM Question Answering, которая к тому времени уже разрабатывалась в течение двух лет. В дальнейшем развитие UIMA продолжилось автономно от IBM. В 2005 году правительство США спонсировало создание рабочей группы UIMA Working Group, объединившей несколько компаний и университетов, заинтересованных в создании фреймворка для решения задач NLP, в 2006 году IBM опубликовала исходные коды UIMA на портале Source Forge , а университет Карнеги-Меллона взял на себя поддержку этого репозитория. Сейчас коды UIMA доступны на сайте Apache Software Foundation . В 2008 году был выпущен релиз Apache UIMA-AS (Asynchronous Scaleout), в котором к основной функциональности UIMA была добавлена возможность асинхронного масштабирования. Отличие этого релиза в том, что оригинальное монолитное решение Collection Processing Management заменено на решение, использующее Java Messaging Services и Apache ActiveMQ и поддерживающее обмен сообщениями. Деятельность сообщества привнесла еще одну разумную вещь - согласование Apache UIMA c Apache Hadoop. Обе эти новации были использованы при создании системы ответов DeepQA, обеспечивающей Watson способность играть в Jeopardy!. Систему DeepQA разрабатывали 20 человек в течение трех лет. О значимости этой работы можно судить по тому, что ей присвоили имя основателя IBM Томаса Уотсона. Работа началась с фундаментального исследования самой игры и тактики игроков. Помимо таких очевидных задач, как генерация гипотез, сбор доказательств, анализ и численная оценка, авторам пришлось решать и специфичные задачи: улавливание иронии, обнаружение скрытого смысла и других человеческих особенностей. Поиск ответа на вопрос в игре совсем не похож на поиск данных в Web, здесь ищутся не сведения, а точный ответ, поэтому источником для поиска ответов служит собственная база данных, куда занесены и структурированные, и неструктурированные данные, собранные как в Интернете так и во множестве других источников. Сегодня Watson уступает настоящим игрокам в том, что является системой класса NLP, то есть аудио- и видеоданные он пока не понимает. В DeepQA используется более 100 различных методик анализа данных на естественном языке. Параллельно с главной целевой задачей, разумеется, разрабатывались и технологии широкого применения. В некотором смысле Watson все же паровой каток - в DeepQA загружено 200 млн страниц текстов, то есть он "как бы" прочел миллион книг. С таким объемом без Apache Hadoop явно не справиться, поэтому специальные программы, обеспечивающие аннотацию (в DeepQA их называют UIMA-аннотаторами), создают средствами Hadoop конструкцию MapReduce и распределяют задания по процессорам в кластере. Аннотаторы просматривают тексты и создают что-то вроде коротких рефератов, это позволяет осуществлять суждение о содержании. UIMA умеет согласовывать работу этих аннотаторов и собирать от них сведения, чтобы потом интегрировать, оценивать и тестировать. С появлением версии UIMA-AS открылась возможность распараллеливания, и действие, которое требовало раньше два часа на одном процессоре, теперь выполняется в режиме реального времени. Кластер Watson может быть построен на процессорах Power7, ядра которых одновременно выполняют фрагменты DeepQA. В конфигурации, использовавшейся 14 февраля 2011 года, было объединено в кластер 90 Linux-серверов IBM Power 750 с 32 ядрами Power7/3,55 ГГц на каждом. Эти серверы собраны в десять стандартных стоек, укомплектованных коммутаторами и узлами ввода/вывода. Размер памяти - 16 Тбайт, производительность 80 ТFLOPS. Сочетание высокой производительности ядра Power7 с памятью 512 Гбайт на ядро превращает аппаратную часть Watson в мощный инструмент для поддержки процессов, нуждающихся в большой памяти и высокой процессорной мощности. Преимущество Watson по сравнению с Deep Blue, который в свое время был собран из 30 узлов RS/6000 SP на процессорах Power2/120 МГц, состоит в том, что в последнем еще стояли 480 специальных шахматных процессоров, которые невозможно использовать ни для чего иного, а Watson собран из коммерчески доступных компонентов. Опыт его создания может быть распространен на другие приложения. Признание способности Watson понимать смысл и контекст сказанного на естественном языке, находить точные ответы на сложные вопросы может изменить представление людей о том, для чего могут быть использованы компьютеры. И еще один важный момент, связанный с открытием кодов и их последующим использованием, - эволюция UIMA свидетельствует о рациональности подхода Open Source. Сначала была многолетняя исследовательская работа в стенах корпорации, потом стали доступны ее результаты. За время пребывания в открытом состоянии UIMA обогатилась асинхронным масштабированием Asynchronous Scaleout и поддержкой Hadoop, что существенно расширило функциональны возможности и сферу применения параллельных вычислений.
|
|