Перевод поста Стивена Вольфрама (Stephen Wolfram) "How Should We Talk to AIs?".
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации
Содержание
— Вычисления — это сила
— Язык вычислительного мышления
— Понимание ИИ
— Что будет делать ИИ?
— Постановка целей для ИИ
— Разговор одного ИИ с другим
— Сбор информации: обзор миллиарда лет
— А что, если бы каждый мог писать код?
— Действительно ли это будет работать?
— Скажу больше
Еще совсем недавно идея иметь компьютер, который может отвечать на вопросы на английском языке, казалась научной фантастикой. Но когда мы в 2009 году выпустили Wolfram|Alpha, одним из самых больших сюрпризов (по крайней мере, для меня!) стало то, что мы сумели сделать наш продукт реально работающим. И теперь люди ежедневно задают личным помощникам несметное количество вопросов — на обычном разговорном языке.
Все это достаточно неплохо работает (хотя мы всегда стараемся сделать лучше!). Но как насчет более сложных вещей? Как общаться с искусственным интеллектом?
Я долго думал об этом, пытаясь совместить философию, лингвистику, неврологию, информатику и другие области знания. И я понял, что ответ всегда был перед моим носом, и лежал он в той сфере, которой я занимался последние 30 лет: Wolfram Language.
Может быть, это как раз тот случай, когда у вас есть молоток, и вы видите вокруг одни гвозди. Хотя я уверен, что дело не только в этом. По крайней мере, продумывание этого вопроса — хороший способ понять больше об искусственном интеллекте и его взаимоотношениях с людьми.
Вычисления — это сила
Первый ключевой момент (в четкому пониманию которого я пришел только после серии открытий, которые я совершил в фундаментальной науке) заключается в том, что вычисления — это очень мощная вещь, которая позволяет даже крошечным программам (например, клеточным автоматам или нейронным сетям) вести себя невероятно сложным образом. И этим может пользоваться ИИ.
Глядя на картину вроде этой, легко стать пессимистом: слишком сложно все выглядит. В конце концов, мы должны надеяться на то, что мы сможем построить мост между тем, что наш
Язык вычислительного мышления
Я видел свою роль в том, чтобы определить «куски» вычислений, которые люди будут использовать, — вроде FindShortestTour, ImageIdentify или Predict. Традиционные компьютерные языки были сосредоточены на низкоуровневых конструкциях. Но в Wolfram Language я начал с того, что мы, люди, понимаем, а затем попытался захватить как можно больше этого «понимаемого» в языке.
В первые годы мы в основном имели дело с довольно абстрактными понятиями: скажем, о математике или логике или абстрактных сетях. Но одним из самых больших достижений последних лет, тесно связанным с Wolfram|Alpha, стало то, что мы смогли расширить построенную нами структуру, охватив бесчисленные виды реальных вещей, существующих в нашем мире: города, кино или животных и пр.
Можно задаться вопросом: зачем придумывать язык для всего этого? Почему бы просто не пользоваться, скажем, английским языком? Ну, для конкретных понятий вроде "ярко-розовый", "Нью-Йорк" или "луны Плутона" английский язык действительно неплохо подходит (и в таких случаях Wolfram Language позволяет людям пользоваться только английским языком). Но если попытаться описать более сложные вещи, разговорный английский довольно быстро становится слишком громоздким.
Представьте себе, например, описание даже довольно простой алгоритмической программы. Диалог в стиле теста Тьюринга быстро вас разочарует.
Но Wolfram Language построен именно для решения таких проблем. Он создан быть легко понятным для людей и учитывает особенности человеческого
В течение многих лет я думал и общался на смеси английского и Wolfram языков. К примеру, если я скажу что-то на английском языке, то затем я смогу просто начать печатать продолжение моей мысли с помощью кода Wolfram Language.
Понимание ИИ
Но давайте вернемся к ИИ. На протяжении большей части истории вычислений мы создавали программы, для которых каждую строку кода писали программисты, понимая (за исключением ошибок), за что отвечает каждая строка. Однако достижение уровня ИИ требует более мощных вычислений. Пойти по этому пути означает выйти за пределы программ, которые люди могут писать, и расширить круг возможных программ.
Мы можем сделать это посредством своего рода автоматизации алгоритмов, которую мы давно используется в системе Mathematica и Wolfram Language, либо — с помощью машинного обучения, либо — через поиск в Вычислительной Вселенной возможных программ. Однако у данных программ есть одна особенность: у них нет оснований быть понятными людям.
На каком-то уровне это тревожит. Мы не знаем, как программы работают изнутри, или на что они способны. Но мы знаем, что они производят сложные вычисления, которые в некотором смысле слишком сложны для анализа.
Однако кое-где происходит то же самое: речь идет о естественном мире. Если мы внимательно посмотрим на динамику жидкости, или обратимся к биологии, то увидим, что в естественном мире представлены все уровни сложности. И в самом деле: принцип вычислительной эквивалентности, вышедший из фундаментальной науки, подразумевает, что эта сложность является в некотором смысле точно такой же, как та, которая может возникнуть в вычислительных системах.
На протяжении веков мы определяли те аспекты мира природы, которые мы можем понять, а затем использовали их для создания полезных технологий. И наш традиционный инженерный подход к программированию работает более или менее одинаково.
Но в случае с ИИ мы должны уйти с проторенной дорожки, лежащей в пределах Вычислительной Вселенной, и нам придется (как и в мире природы) иметь дело с явлениями, которые мы не можем понять.
Что будет делать ИИ?
Давайте представим, что у нас есть такой совершенный ИИ, который в состоянии сделать все, что связано с интеллектом. Может быть, он будет получать входные сигналы от множества IoT датчиков. Внутри него будут осуществляться все виды вычислений. Но что он в конечном счете будет пытаться сделать? Какова будет его цель?
Речь идет о том, чтобы углубиться в какую-то довольно глубокую философию, связанную с проблемами, которые обсуждались в течение тысяч лет, но которые в конечном итоге обретут действительное значение только во взаимодействии с ИИ.
Можно подумать, что, так как ИИ становится более сложным, в конечном итоге он будет преследовать какую-то абстрактную цель. Но это не имеет смысла. Потому что на самом деле нет такого понятия, как абстрактная абсолютная цель, выводимая чисто формально — математически или посредством вычислений. Цель определяется только по отношению к людям и соотносится с их конкретной историей и культурой.
"Абстрактные ИИ", не связанные с человеческими целям, будут просто продолжать делать вычисления. И, как это происходит с большинством клеточных автоматов и большинством природных систем, мы не сможем определить какую-либо конкретную цель этого вычисления.
Постановка целей для ИИ
Технология всегда представляла собой автоматизацию вещей таким образом, чтобы люди могли задавать цели, а затем эти цели могли быть достигнуты автоматически с помощью технологий.
В большинстве случаев эти технологии были жестко ограничены, так что их описание не представляет никакого труда. Но для общей вычислительной системы они могут быть совершенно произвольными. Таким образом, задача состоит в том, чтобы их описать.
Как вы донесете ИИ, что вы хотите, чтобы он сделал для вас? Вы не можете в каждом конкретном случае точно формулировать, что именно должен делать ИИ. Вы могли бы делать это, если бы вычисления, производимые ИИ, были жестко ограничены, как и в традиционном программном обеспечении. Чтобы работать эффективнее, ИИ необходимо использовать более широкие части Вычислительной Вселенной. В результате мы имеем дело с явлением вычислительной неприводимости, то есть мы никогда не будем в состоянии определить все то, что он будет делать.
Так какой же способ определения целей для ИИ лучше? Это сложный вопрос. Если ИИ может переживать вашу жизнь вместе с вами, видя то, что видите вы, читая вместе с вами вашу электронную почту, и так далее, то, как и в случае с человеком, которого вы хорошо знаете, вы могли бы задать ИИ простые цели, просто озвучив их на естественном языке.
Но что, если вы хотите задать более сложные цели, или те, которые мало связаны с тем, что уже знакомо ИИ? В таком случае естественного языка будет недостаточно. Возможно, ИИ мог бы получить разностороннее образование. Однако лучшей идеей будет все-таки использование Wolfram Language, в который встроено множество знаний, которыми могут воспользоваться как люди, так и ИИ.
Разговор одного ИИ с другим
Думать о том, как люди общаются с ИИ, это одно. Но как ИИ будут общаться друг с другом? Можно предположить, что они могли бы делать буквальный перевод имеющихся у них знаний. Но это не будет работать, поскольку два ИИ имеют разный «опыт», и используемые ими представления неизбежно будут различаться.
Так что в итоге ИИ (как и людям) придется прийти к использованию некоторой формы символического языка, который представляет понятия абстрактно (без конкретной ссылки на лежащие в их основе представления).
Можно подумать, что ИИ должны были просто общаться на английском языке; по крайней мере, таким образом мы смогли бы их понять! Но это не сработает. Поскольку ИИ неизбежно должны постепенно расширять свой язык, так что, если бы даже они начали с английского, то все равно вскоре вышли бы за его пределы.
В естественных языках новые слова добавляются тогда, когда появляются новые понятия, которые достаточно широко распространены. Иногда новое понятие связано с чем-то новым в мире ( «блог», «смайлик», «смартфон» и т.д.); Иногда это связано с возникновением новых различий между существующими понятиями («дорога» и «шоссе»).
Часто именно наука открывает нам новые различия между вещами путем выявления различных кластеров поведения или структуры. Но дело в том, что ИИ может делать это гораздо более масштабно, чем люди. Например, наш проект по идентификации изображений настроен на распознавание 10000 видов объектов, имеющих привычные наименования. Он тренировался на реальных изображениях и открыл многие различия, для которых у нас нет названия, но благодаря которым можно успешно разделять вещи.
Я назвал это "постлингвистическими понятиями" (или PLECs). И я думаю, что иерархия этих понятий будет постоянно расширяться, заставляя язык ИИ также постепенно расти.
Но как это поддерживается в рамках английского языка? Я полагаю, что каждая новая концепция может обозначаться словом, образованным из некоторого хэш-кода (вроде набора букв). Но структурированный символический язык (вроде Wolfram Language) обеспечивает более подходящую основу. Поскольку для него нет необходимости в том, чтобы единицами языка были простые «слова», такими единицами могут стать произвольные блоки символьной информации, — такие, как наборы примеров.
Так должны ли ИИ разговаривать друг с другом на Wolfram Language? Мне кажется, в этом есть смысл. При этом не имеет значения, как именно кодируется синтаксис (форма ввода, XML, JSON, двоичный, — что угодно). Важнее структура и содержание, которые встроены в язык.
Сбор информации: обзор миллиарда лет
В течение миллиардов лет, на протяжении которых жизнь существовала на Земле, существовало несколько различных способов передачи информации. Основной — тот, которым занимается геномика: передача информации на «аппаратном» уровне. Для этого у нас есть нервная система и, в частности,
Но в некотором смысле этот механизм принципиально ограничен, потому что каждый организм отличается от другого, и каждый индивид должен пройти через весь процесс обучения самостоятельно: ни одна единица информации, полученной в одном поколении, не может быть легко передана следующему.
Однако наш вид сделал великое открытие: естественный язык. Потому что с естественным языком становится возможным взять информацию, которая была усвоена, и передать ее в абстрактной форме, — скажем, от одного поколения к другому. Однако существует еще одна проблема, потому, что, когда естественный язык выработан, он все равно должен быть интерпретирован — каждым человеком по отдельности.
И именно здесь становится явной значимость языка, основанного на вычисляемых знаниях (вроде Wolfram Language), потому что он обеспечивает возможность обмена понятиями и фактами о мире, не требуя отдельного толкования.
Вероятно, не будет преувеличением сказать, что изобретение человеческого языка и привело к появлению цивилизации и нашего современного мира. Итак, каковы будут последствия обладания языком, который основан на знаниях, и который содержит в себе не только абстрактные понятия, но и способ их выведения?
Одним из возможных вариантов является описание цивилизации с ИИ — независимо от того, какой она может оказаться. И, возможно, это будет далеко от того, что мы, люди (по крайней мере, в нашем нынешнем состоянии) можем понять. Хорошая новость заключается в том, что, по крайней мере в случае Wolfram Language, точный язык, основанный на вычисляемых знаниях, не является непостижимым для человека; он может быть мостом между людьми и машинами.
А что, если бы каждый мог писать код?
Итак, давайте представим себе мир, в котором (в дополнение к естественному языку) повсеместно используется язык вроде Wolfram Language. Конечно же, такой язык гораздо чаще будет использоваться для коммуникации между машинами. Однако, возможно, что он станет доминирующей формой общения между человеком и машиной.
В современном мире лишь небольшая часть людей может написать компьютерный код — так же, как 500 лет назад лишь небольшая часть людей могла писать на естественном языке. Но что, если уровень компьютерной грамотности резко повысится, и в результате большинство людей смогут писать код, основанный на знаниях?
Именно естественный язык способствовал формированию многих черт современного общества. Какие возможности открывает код, основанный на знаниях? Самые разные. Сегодня вы можете получить меню в ресторане для выбора блюда. Но если бы люди могли читать код, можно было бы создать код для каждого варианта, чтобы вы могли легко внести изменения на свой вкус (на самом деле, что-то вроде этого скоро будет возможно (Emerald Cloud Lab) с помощью кода Wolfram Language для лабораторных экспериментов по биологии и химии). Еще одно следствие для людей, которые в состоянии прочитать код: вместо того, чтобы написать обычный текст, можно написать код, которым смогут воспользоваться как люди, так и машины.
Я подозреваю, что последствия широкого распространения грамотности в отношении программирования, основанного на знаниях, будут гораздо глубже, потому что это не только позволит многим людям по-новому выражать что-то, но и даст им новый способ думать об этом.
Действительно ли это будет работать?
Хорошо: допустим, мы хотим использовать Wolfram Language для общения с ИИ. Получится ли это? Этот вариант уже воплощается в жизнь, потому что внутри Wolfram|Alpha и основанных на ней системах вопросы, формулируемые на естественном языке, преобразуются в код Wolfram Language.
Но как насчет более сложных применений искусственного интеллекта? Во многих случаях, когда используется Wolfram Language, мы имеем дело с примерами ИИ, — являются ли они вычислениями, производимыми с изображениями, или данными, или символьными структурами. Иногда вычисления включают в себя алгоритмы, цели которых мы можем точно определить (FindShortestTour); иногда цели менее точны (ImageIdentify). Иногда вычисления представляются в виде "того, что надо сделать", иногда — как "то, что надо найти", или "то, к чему стремиться".
Мы проделали долгий путь представления мира в Wolfram Language. Однако нужно сделать еще больше. Еще в XVII веке предпринимались попытки создать "философский язык", который каким-то образом символьно отражал бы суть всего, что только можно представить. Теперь нам нужно действительно создать такой язык. При этом необходимо будет охватить все виды действий и процессов, которые могут произойти, а также такие явления, как верования народов и различные психические состояния. Поскольку наши ИИ становятся все более изощренными и более интегрированными в нашу жизнь, представление таких вещей — важный шаг.
Для некоторых задач и мероприятий, мы, безусловно, не будем использовать чисто машинное обучение, и нам не придется строить какую-либо промежуточную структуру или язык. Но, поскольку естественный язык имел решающее значение в становлении нашего вида, постольку и владение абстрактным языком будет иметь важное значение для прогресса ИИ.
Я не знаю, как это будет выглядеть, однако можно представить себе использование какого-то чисто эмерджентного языка, создаваемого ИИ. Но в таком случае у нас, людей, не будет шансов понять то, что делает ИИ. Но в случае с Wolfram Language у нас есть мост: язык, который подходит как для людей, так и для ИИ.
Скажу больше
Много чего еще можно сказать о взаимосвязи между языком и вычислениями, людьми и ИИ. Может быть, мне даже стоит написать об этом книгу. Однако в данный момент моя цель состоит в том, чтобы описать в общих чертах мою нынешнюю точку зрения, — в частности, мои идеи, касающиеся Wolfram Language как моста между человеком и ИИ.
С помощью естественного, или же традиционного компьютерного языка, — мы будем с трудом общаться с ИИ. При этом я понимаю, что с Wolfram Language у нас появляется гораздо больше альтернатив; такой язык основан на естественном человеческом языке и человеческих знаниях. Это необходимо для того, чтобы поддерживать такую связь с ИИ, которая будет понятна людям. Мы уже видим некоторые примеры того, о чем я говорил… но нужно идти намного дальше, и я с нетерпением жду, когда наступит время действительно строить то, что нужно, и писать об этом…
- Стивен Вольфрам: “Внедряя вычисления повсюду”
- Стивен Вольфрам: Рубежи вычислительного мышления (отчёт с фестиваля SXSW)
- Искусственный интеллект в Wolfram Language: проект по идентификации изображений
- Вычисляемые знания и будущее чистой математики
- Книга Стивена Вольфрама «Элементарное введение в язык Wolfram Language»
- «Моя жизнь сквозь призму технологий...» — Стивен Вольфрам
- Краткая история появления Mathematica
Автор: Wolfram Research