Шрифт:
Проблема железа для CV заключается в том, что до сих пор нет процессоров, полностью соответствующих задачам моделирования. нейронных сетей. Фон-неймановские CPU были задуманы для расчетов, то есть для последовательного выполнения одной программы, хотя за десятилетия их научились искусственными приемами адаптировать к распараллеливанию, или, как сейчас чаще говорят, к работе в многопоточном режиме, более соответствующим требованиям машинного обучения. Однако CPU, имея относительно небольшое число (десятки) производительных ядер, остаются способными обрабатывать ограниченное количество мощных потоков. Ограниченность обычных CPU для задач CV и других задач, связанных с машинным обучением, была осознана давно, чтобы с ней справиться в ход идут не только графические, карты (GPU), аудиокарты, сигнальные процессоры, программируемые матрицы FPGA и многое другое. Успешнее других оказалось внедрение GPU, задуманные для задач трехмерного рендеринга они отличаются большим числом ядер, но эти ядра существенно меньше и проще, чем CPU. Так уж случилось, что GPU, рожденные для компьютерных игр, смогли обеспечить прорыв в AI. Сегодня огромные кластеры, собранные из игровых в прошлом процессоров, обеспечивают всю индустрию AI.
Но GPU являются паллиативом, если посмотреть на проблему шире, то надо признать, что аппаратные средства, поддерживающие CV, NLP и другие решения из области machine intelligence, являющейся подмножеством AI, должны быть рассчитаны на совершенно иную нагрузку, чем традиционные. Во-первых, в их основе должен быть приближенный компьютинг (approximate computing), дающий удовлетворительно точный, но не гарантированно точный результат. Именно так, неточно, работает человеческое мышление. Исследования показывают, что снижение точности на 5–10 % может понизить энергопотребление на два порядка. Во-вторых, обучение должно стать органической частью архитектуры, идея обучения на основе программируемой архитектуры похоже на своего рода оксюморон. Пока удовлетворение этих требований возможно только в идеале. Тем, кого интересует проблема соотношения аппаратного обеспечения и машинного обучения, будет интересно данное в марте 2020 интервью Яна Лекуна «На экзотическом железе трудно добиться успеха». В нем он раскрывает проблему соотношения аппаратного обеспечения и машинного обучения, делая упор на том, что неэффективно использование матричного умножения для выполнения операций свертки – основы конволюционных сетей CNN. На данный момент альтернативу GPU, поставляемых компанией Nvidia, составляют несколько процессоров. Наиболее известно среди них существующее с 2016 года семейство тензорных процессоров Google (Tensor Processing Unit, TPU), представляющих собой специализированную интегральную схему, предназначенную для поддержки библиотеки машинного обучения TensorFlow. Возможно, подходящим решением проблемы железа для CV станут графовые модели, где вершины представляют вероятностные характеристики данных, а ребра – корреляцию между этими свойствами. Этим путем идёт британская компания Graphcore, производящая процессоры Colossus MK2 IPU (Intelligence Processor Unit), название которого адресует к электронно-механическому компьютеру Colossus, испробованному во время Второй Мировой Войны в операции Ultra. Другой многообещающий стартап Cerebras (Головной мозг) выбрал для себя в качестве руководящей идею использования специализированных процессоров на разреженных матрицах. К тому же ее процессор CS-1 изготовлен по необычной технологии Wafer-Scale Engine (WSE), то есть масштабирование на всю подложку. Он занимает всю поверхность кремниевой пластины размером 215 x 215 миллиметров, состоит из более чем 1,2 триллиона транзисторов, собранных примерно в 400 000 ядер.
Особый интерес вызывает деятельность компании Tachyum, созданной выходцем из Словакии Радославом Даниляком. Здесь была разработана процессорная архитектура под названием Prodigy, что переводится как чудо или виртуоз, она представляет собой универсальный 64-ядерный процессор, объединяющий в себе качества CPU и GPU и при этом потребляющий на порядок меньше энергии. Процессор уже выпускается, на его основе в Словацком национальном суперкомпьютерном центре будет построен самый мощный в мире AI-компьютер. Этот проект должен стать центром кристаллизации общеевропейских исследований в области AI, он привлекает к себе и административные, и деловые, но, главное, академические ресурсы. Показательно, что техническим консультантом Tachyum является Стив Фарбер, один из двух разработчиков архитектуры ARM и участник проекта по созданию неизоморфного компьютера SpiNNaker, способного эмулировать мозг.
Что же касается возникшего было энтузиазма, вызванного созданием нейроморфных, то есть подобных мозгу компьютеров, то он постепенно угасает. Причина очевидна – то, что делается на основе полупроводников, плохо соотносится с живым мозгом, или, как его называют, wetware, то есть «влажным железом». Это общая закономерность – все, что сделано человечеством для перемещения по земле, по воде и воздухе, для создания новых материалов и видов энергии, для передачи данных, не является прямым воспроизведением существующего в природе. Скорее всего и создатели компьютерных архитектур будущего пойдут тем же путем, не пытаясь иными средствами повторить живое.
История NLP
NLP принято переводить как «обработка текста на естественном языке», хотя в оригинале текст не упомянут. Перевод вообще странен, если вдуматься. «Текст на естественном языке», а бывают ли тексты на неестественном языке? Казалось бы, к NLP имеют отношение лингвисты, а это явная периссология, пользуясь их терминологией, поэтому оставим NLP. Подавляющая часть работ из области NLP связана с операциями над текстами, но есть еще устная речь и другие знаковые системы, например, жестовые языки, из NLP им посвящено небольшое количество публикаций.
Многие источники определяют NLP как способность программы или компьютера понимать человеческий язык или текстовые документы, хотя точнее интерпретировать, возможность такого перевода understanding обсужден выше. NLP, так же как и CV, служит интерфейсом между уровнем данных и уровнем информации в пирамиде DIKW, то есть представляет собой средство преобразования данных-текстов в более удобную для человека форму, иначе говоря, NLP – это зонтичный термин для различных средств, служащих для автоматизации работы с текстами. Потребность в них постоянно возрастает, поскольку человечество порождает тексты с гигантской скоростью. На своеобразие NLP, как научного направления, влияют особенности языка – это не некое объективно существующее природное явление с известными свойствами, язык – является плодом тысячелетней эволюции, он создан человеческим сообществом и не имеет строгих законов, неоднозначен и перманентно изменяется во времени. Наука о языке не может быть столь же стройной как естественные науки, по этой причине не удается выстроить совершенно строгую и логичную последовательность имен и открытий, приведших к тому виду, в котором это направление AuI существует сегодня. NLP сложилось примерно так как складывается большое мозаичное полотно.
Предыстория NLP
По данным палеолингвистики – одного из направлений исторической лингвистики, реконструирующего дописьменные языки, предпосылки к появлению языка как средства коммуникации возникли примерно полмиллиона лет назад. Сторонники моноцентрической теории считают, что следующий шаг – создание единого прамирового языка – был сделан 70 тысяч лет назад, разумеется эти даты достаточно условны. Количество существующих на данный момент живых языков колеблется в пределах от 2500 до 7000, количество мертвых не поддается оценке. Долгие тысячелетия язык существовал в форме устной речи, в отдельных горных районах есть свистящие языки и по историческим меркам совсем недавно, в XIX веке были созданы жестовые языки для неслышащих.
Первые опыты записи простейших сообщений датируются 9-м тысячелетием до н. э., об этом свидетельствуют найденные в Месопотамии глиняные печати. Самую раннюю из известных систем письма, клинопись, придумали шумеры в 4-м тысячелетии до н. э. Первые попытки изучения языка датируются 2-м тысячелетием, это случилось в Вавилоне, там глиняные таблички размножились в таком количестве, что были созданы прообразы библиотек с элементами каталогизации. С тех пор и на протяжении столетий параллельно сосуществовали два направления: одно – исследования языка, приведшие к появлению науки лингвистики, второе – систематизация текстов, начавшееся с создания библиотечных систем, вылившееся в информационную науку (information science). В СССР до семидесятых годов совершенно заслуженно называли ее информатикой, но потом это название усилиями относительно небольшой группы энтузиастов у нее отобрали и так стали называть computer science, чем создали изрядные затруднения.