(Оговорка: Как и с любым Do-It-Yourself (DIY) проект, я не несу ответственности, если вы не довольны своим Уотсона Я основе подхода о том, что я читал из общедоступных источников, и моя работа в Linux, суперкомпьютеры, XIV, и SONAS. Для наших целей Уотсона полностью основана на аппаратном обеспечении с открытым кодом, а также общедоступных источников информации. Ваш Уотсона, конечно, не так быстро или так умна, как IBM Watson вы видел по телевизору.)

Шаг 1: Купить оборудование
http://farm6.static.flickr.com/5176/5454292829_9fd1d8dfda.jpg

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

        Три x86 хозяев, со следующим:
            64-разрядные четырехъядерные процессоры, как Intel-VT или AMD-V способна,
            8 Гб DRAM, или больше
            300 Гб жесткого диска, или больше
            CD или DVD для чтения / записи дисков
            1GbE Ethernet
        Компьютерный монитор, мышь и клавиатура
        Ethernet 1GbE 4-портовый концентратор, а также соответствующие кабели RJ45
        Сетевой фильтр и удлинитель
        Локальная консоль монитора (LCM) 4-портовый коммутатор (ранее известная как переключатель KVM) и соответствующих кабелей. Это необязательно, но будет легче в процессе разработки. После того как Уотсона работает, вам нужно будет только монитора и клавиатуры, подключенной к одной машине. Две другие машины могут остаться "обезглавленный" серверов.

Шаг 2: Создание сети

    IBM Watson используемых Juniper переходит работать на 10 Гбит Ethernet (10GbE) скорости, но не был подключен к Интернету во время игры Jeopardy! Вместо того, чтобы эти связи были Ethernet для серверов POWER7 разговаривать друг с другом, и получить доступ к файлам через Network File System (NFS) протокол для внутреннего хранения настроенные SONAS I / O узлов.

    Уотсона будет возможность запускать "отключен от Интернета", а также. Тем не менее, вы должны доступ в Интернет для загрузки кода и источники информации. Для наших целей, 1GbE должно быть достаточно. Подключите Ethernet-концентратор к DSL или кабельный модем. Подключить всех трех компьютеров к коммутатору Ethernet. Подключите клавиатуру, видеомонитор и мышь, чтобы НОК и подключить НОК с тремя узлами.
Шаг 3: Установка Linux и Middleware

    Сказать, что я использую Linux на ежедневной основе, является занижение. Linux работает на моей Android на основе мобильного телефона, ноутбука на работе, мои персональные компьютеры у себя дома, большинство наших устройств хранения IBM с регулировкой громкости SAN в XIV в SONAS, и даже на моей Tivo в доме, который записал свой телевизионных эпизодов Jeopardy !

    Для этого проекта, вы можете использовать любой современный Linux дистрибутив, который поддерживает KVM. IBM Watson использовал Роман SUSE Linux Enterprise Server [SLES 11]. Кроме того, я также рекомендую либо Red Hat Enterprise Linux [RHEL 6] или каноническом [Ubuntu v10]. Каждый дистрибутив Linux поставляется в различных направлениях. Скачать 64-битную "ISO" файлы для каждой версии, и записать их на компакт-дисках.

        Графический интерфейс пользователя (GUI), ориентированных, часто упоминается как "Рабочий стол" или "HPC-Head"
        Интерфейс командной строки (CLI), ориентированных, часто упоминается как "сервер" или "HPC-Compute"
        Гостевая ОС ориентированный для работы в таких, как гипервизор KVM, Xen или VMware. Novell называет их "Just Enough Operating System" [JeOS].

    Для Уотсона, я выбрал [многоуровневой архитектуры], который иногда называют «многоуровневых» или «клиент / сервер" архитектуры.

    Хост 1 - Presentation Server

        Для человеко-машинного интерфейса [HCI], IBM Watson получила категорий и подсказки в виде текстовых файлов через TCP / IP, была [красивый аватар] представляет планета с 42 кругами полос по орбите, и текст в синтезатор речи для ответить компьютерный голос. Ваш Уотсона не будет этого сложного. Вместо этого, мы будем иметь простой текстовый запрос группы веб-интерфейс доступен из браузера, как Mozilla Firefox.

        Хост 1 будет ваш Presentation Server, подключение к клавиатура, видео монитор и мышь. Установить "Рабочий стол" или "HPC головной узел" версию Linux. Установка [веб-сервера Apache Tomcat и], чтобы выполнить запрос группы. Хост 1 также будет вашим "программирование" хозяина. Установите [Java SDK] и [Eclipse IDE для разработчиков на Java]. Если вы всегда хотели узнать, Java, теперь это твой шанс. Есть много книг по Java, если это не язык, который вы обычно писать код.

        В то время как три маленьких систем не является "Extreme Облако" окружающей среды, которые Вы хотели бы попробовать "Extreme средства администрирования Cloud", называется [xCat], которая используется для управления многими серверами IBM Watson.
    Хост 2 - сервер бизнес-логики

        Хост 2 будет движущей большинство "мышления". Установить "Сервер" или "HPC Compute Node" версию Linux. Это будет работать под управлением гипервизора виртуализации серверов. Я рекомендую KVM, но, вероятно, можно запустить Xen или VMware, а, если хотите.
    Хост 3 - файлов и сервер базы данных

        Хост 3 будет держать источников информации, индексов и баз данных. Установить "Сервер" или "HPC Compute Node" версию Linux. Это будет ваш NFS сервер, который может придумать, как вопрос во время процесса установки.

    Технически, вы можете запускать различные Linux дистрибутивы на разных машинах. Например, вы можете запустить "Ubuntu Desktop" для принимающей 1 ", RHEL 6 Сервер" для хоста 2, и "SLES 11" для хоста 3. В целом, Red Hat пытается быть лучшим "Сервер" платформе, и Novell старается SLES быть лучшим "гостевой ОС".

    Мой совет, чтобы выбрать одно распределение и использовать его для всех, Desktop, Server, и гостевой ОС. Если вы новичок в Linux, выбрать Ubuntu. Есть много книг о Linux в целом и Ubuntu в частности, и Ubuntu имеет полезные сообщества добровольцев, чтобы ответить на ваши вопросы.
Шаг 4: Скачать Источники информации

    Вам понадобятся некоторые документы для Уотсона для обработки.

    IBM Watson использовал модифицированную SONAS для обеспечения высокой степени доступности кластерной NFS сервера. Для Уотсон-младший, нам не нужно, что уровень сложности. Настройка хост 3 в качестве сервера NFS, и Хосты 1 и 2 клиента NFS. См. [Linux-NFS-HOWTO] для деталей. Для оптимизации производительности, принимающих 3 будет "официальная копия мастер", но мы будем использовать Linux утилиту Rsync скопировать источников информации к хостам 1 и 2. Это позволяет задача двигателей на этих узлах доступа к локальным ресурсам диске во время ответов на вопросы обработки.

    Нам также понадобится реляционная база данных. Вам не нужно будет мощный IBM DB2. Уотсона может делать хорошо что-то вроде [Apache Derby], который является открытым исходным кодом IBM Cloudscape от его приобретения Informix. Настройка хост 3 в качестве сервера Derby Network и Хосты 1 и 2, клиенты Derby Network. Более подробную информацию о структурированной информации в реляционных базах данных, см. мой пост [IBM Watson - Business Intelligence, извлечения данных и Text Mining].

    Linux включает в себя утилиту Wget, которая позволяет загружать контент из Интернета на вашей системе. Какие документы вы решили загрузить до вас, основанные на какие вопросы вы хотите ответить. Например, если вам нравится литература, проверить огромные ресурсы на [FullBooks.com]. Вы можете автоматизировать загрузку, написав скрипт или программу для вызова Wget, чтобы все места, которые вы хотите получать данные. Переименуйте скачанные файлы на что-то уникальное, как часто они просто "index.html". Более подробную информацию о Wget утилита, см. [IBM DeveloperWorks].
Шаг 5: Запрос Panel - разбор вопроса
    Запрос группы

    Далее, нам необходимо проанализировать этот вопрос и есть смысл того, что просили. Для этого мы будем использовать [OpenNLP] для обработки естественного языка, и [OpenCyc] для концептуальных рассуждений логики. Смотрите Дуг Ленат Представляя этот 75-минутный видео [Компьютеры против здравого смысла]. Для получения дополнительной информации см. [CYC 101 Учебник].
http://farm6.static.flickr.com/5092/5456837509_c600c0c269_m.jpg

    В отличие от Jeopardy! где Алекс Trebek дает ответ и участники должны ответить правильный вопрос, мы будем делать нормальные Вопрос-ответ обработки. Для простоты мы ограничимся вопросами на следующие форматы:

        Кто это ...?
        Где ...?
        Когда сделал ... произошло?
        Что такое ...?
        Какая ...?

    Хост 1 будет иметь простой запрос группы веб-интерфейс. В верхней части место для входа на ваш вопрос, и кнопку "Отправить", и место в нижней части для ответа и требовалось доказать. Когда "Отправить" нажата, это пройдет вопроса "main.jsp", программа Java сервлет, который начнется Вопрос-ответ анализа. Ограничение типов вопросов, которые могут быть поставлены упростит гипотеза поколения, сокращения набора кандидатов и оценки доказательств, позволяющих аналитику обработку продолжать в разумные сроки.
Шаг 6: Архитектура управления неструктурированной информации

    «Сердце и душа" IBM Watson является неструктурированной информации управления архитектуры [UIMA]. IBM разработала этот, а затем сделал его доступным для мира, как с открытым исходным кодом. Он поддерживается [Apache Software Foundation] и под контролем Организации по развитию стандартов структурированной информации [OASIS].
    UIMA мост
http://farm6.static.flickr.com/5297/5455752519_37a780c5c7.jpg

    В принципе, UIMA позволяет сканировать неструктурированных документов, блеск важные моменты, и положить, что в базе данных для последующего использования. На графике выше, баз данных означает «баз данных» и «базы знаний» КБ средства. Смотрите 4-минутный видео YouTube [Аналитика IBM Content], коммерческая версия UIMA.
    UIMA-Collection-обработке
http://farm6.static.flickr.com/5136/5455752577_19f6cfb37e.jpg

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

        (Примечание:.. Этот пункт требует, что мы в отрасли называют небольшой вопрос программирования, или [SMOP] Если вы всегда хотели узнать, Java-программирования, XML и JDBC, вы сможете сделать много здесь)

    Если вы не знакомы с UIMA, считают это [UIMA Учебник].
Шаг 7: Параллельная обработка

    Люди спрашивают меня, почему IBM Watson является настолько большим. Неужели нам действительно нужно 2880 ядер вычислительной мощности? В суперкомпьютере, 80 терафлоп IBM Watson бы поместить его только в девяносто четвёртых место на [Top 500 суперкомпьютеров]. В то время как IBM Watson может быть [умные машины на земле], самым мощным суперкомпьютером на данный момент является Tianhe-1A с более чем 186 000 ядер, способных 2566 терафлопс.

    Чтобы определить, насколько велика IBM Watson должна быть команда IBM Research побежал алгоритм DeepQA на одном ядре. Прошло 2 часа, чтобы ответить на один вопрос Jeopardy! Давайте посмотрим на данные о производительности:
    Элемент Количество ядер время ответить на один вопрос Jeopardy
    Одноядерный 1 2 часа
    Одноместный IBM Power750 сервер 32 <4 минуты
    Одну стойку (10 серверов) 320 <30 секунд
    IBM Watson (90 серверов) 2880 <3 секунды

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

    Fortuantely, UIMA предназначена для параллельной обработки. Вам нужно установить UIMA-AS для асинхронных Масштабное обработки, дополнения к базовому UIMA Java рамках поддержки очень гибкая масштабное возможности на основе JMS (Java Messaging Services) и ActiveMQ. Нам также понадобится Apache Hadoop, открытой реализации используется движок поиска Yahoo. Hadoop имеет "MapReduce" двигатель, который позволяет разделить работу, отправка частей на различные "Задача двигателей", и объединить результаты впоследствии.

    Хост 2 будет работать и Hadoop MapReduce управлять процессом. План есть три гостей KVM на хост 1, четыре на хост 2, и три на хост 3. Это означает, что у вас есть 10 двигателей задача работать. Эти задачи системы могут быть развернуты за содержание Читатели, анализ двигателей, и CAS потребителей. Когда вся обработка выполняется, в результате голоса будут сведены в таблицу и верхней ответ отображается на панели запроса на хост 1.
Шаг 8: Тестирование

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

Там вы имеете его. К тому времени, вы получите Уотсона в полном объеме, вы узнали много полезных навыков, в том числе Linux администрации, Ethernet сетей, NFS файл конфигурации системы, Java-программирования, UIMA анализ текста анализ и MapReduce параллельной обработки. Надеюсь, вы также получите удовлетворение, как трудно было для команды Исследование IBM добиться того, что у них на Grand Challenge на Jeopardy! Не удивительно, что IBM Watson делает IBM [как сексуальная работать как Apple, Google или Facebook], каждый из которых начали свой бизнес в гараже или подвале с системой как малые, как Уотсона
©  ibm.com/developerworks/mydeveloperworks/blogs/InsideSystemStorage/entry/ibm_watson_how_to_build_your_own_watson_jr_in_your_basement7?lang=en