В. 3. Демьянков

МОДУЛЬНОСТЬ И ПАРАЛЛЕЛЬНЫЕ ПРОЦЕССЫ

В ИНТЕЛЛЕКТУАЛЬНОЙ ДЕЯТЕЛЬНОСТИ ЧЕЛОВЕКА

This page copyright © 2003 V.Dem'jankov.

http://www.infolex.ru

Отсканированная версия статьи под тем же названием, вышедшей в сборнике:

Мышление, когнитивные науки, искусственнный интеллект / Отв. ред. В.В. Петров. М.: Центральный совет философских (методологических) семинаров при Президиуме АН СССР, 1988. С.140-146.

Постраничные библиографические примечания в этой версии перенесены в конец статьи.


Одним из самых ходовых терминов в грамматической теории 1980-х гг. стал "модуль". Модульность – такое представление о поведении человека, которое объясняет видимую сложность как результат взаимодействия нескольких достаточно простых подсистем, называемых модулями. Это понятие содержалось еще в первых версиях трансформационных порождающих грамматик, присутствует оно в том или ином виде и в когнитивистских теориях. К характеристикам модульности – особенно в отношении к речевой деятельности – относятся:

1) относительная автономность – обмен информацией между модулями слабее, чем внутри модулей, а связи внутри модулей достаточна органичны;

2) специализация – каждый модуль обладает своими собственными принципами функционирования, несводимыми друг к другу или к какому-либо обобщающему принципу;

3) возможно (и здесь необходима большая осторожность), что с каждым модулем связана определенная локализация или определенный тип связей в мозгу человека;

4) модули генетически

-141-

заданы,

5) определяя тот или иной уровень синтаксической семантической репрезентации, модули задают понятия универсальной грамматики.

Эти предположения, особенно три последних, разделяются не всеми и не в одинаковой степени. Для структуры грамматики в целом это приводит к такому положению: одно и то же правило может работать над структурами различных уровней, не относясь, тем не менее (в противоположность порождающей грамматике 1970-х гг.), одновременно к нескольким разным компонентам [1]). Правила в модули не включены: каждый модуль может, по своему усмотрению, распоряжаться заданным набором правил, обращаясь с ним в соответствии с собственными своими принципами, определяющими, в частности, и область приложения правила.

Основной упор в использовании понятия модуля его сторонники делают на объяснительности. Действительно, грамматика, состоящая из нескольких "подграмматик" (каждая из которых обладает статусом отдельной теории), – модулей, – обладает значительно большей наглядностью, чем предшествующие формально-грамматические описания, содержавшие огромное количество правил, довольно непрозрачных по своему устройству. Однако возникает вопрос о том, как во времени должна выглядеть работа разных модулей. В последние годы становится все более правдоподобным предположение о параллельности работы модулей или того, что им соответствует в других концепциях. Особенно существенна и перспективна такая гипотеза, когда речь идет о моделировании языковой интерпретации на ЭВМ. И здесь названная тенденция в гуманитарных дисциплинах. смыкается с независимо сложившейся тенденцией развития вычислительной техники.

Идея параллельной обработки данных неизменно, хотя и не всегда заметно, присутствовала с самого момента зарождения теории вычислительных систем. Начиная с 1960-х гг. на повестку дня встало использование этой идеи в рамках современных ЭВМ. Однако создание компиляторов для "параллельных вычислителей" затруднялось по следующим двум причинам:

1) трудности выявления в программах, написанных на обычных языках программирования (не предусматривающих параллельности) тех операций, которые могли бы быть выполнены паралельно без ущерба для результата,

2) устройство ЭВМ, делавшее параллельность неэффективной.

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

-142-

процедуры). В частности, В. В. Воеводин, суммируя соответствующие результаты в этой области, показывает, что отыскание по виду программы эквивалентных порядков выполнения операций и указание того из них, который удобен для параллельных вычислений, приводит обычно к расщеплению всей программы на сравнительно небольшое количество циклических алгоритмов, – во всяком случае, для многих стандартных алгоритмов численного анализа, линейной алгебры, математической физики и т. д. [2] Второе же затруднение преодолевается с развитием вычислительной техники, в результате создания и усовершенствования многопроцессорных систем. К концу 1980-х гг. сложились все предпосылки для того, чтобы связывать будущее развитие и теоретического программирования, и приложения вычислительной техники к построению действующих моделей интеллектуальной деятельности человека именно с теорией параллельных вычислений.

Существенно, что приложение параллельных вычислителей в точных науках приводит к оптимизации самого процесса вычисления, к снижению общего времени работы, к оперативности. Но не менее существенно для нас и то, что приложение этих вычислителей при моделировании человеческой интеллектуальной деятельности сегодня представляется единственно адекватным именно человеческим способам восприятия и обработки информации. Действительно, читая сравнительно длинный текст, мы постепенно привыкаем к нему, а это – результат (возможно, не заметных нам самим) наблюдений над нашей собственной работой, параллельных этой работе. Следовательно, моделирование читательского процесса требует, одновременно с собственно распознаванием текста (а это, в свою очередь, также набор параллельных процессов), еще и обработки наблюдений над работой остальных модулей человека-интерпретатора. Возможно, эти наблюдения представляют собой статистический анализ, --хотя, разумеется, трудно представить себе, чтобы реальный человек на самом деле подвергал себя анализу в рамках современного формального аппарата математической статистики. Но важно то, что промежуточные результаты наблюдающего модуля влияют на текущую работу остальных модулей; в частности, на оценку степени правдоподобия выдвигаемых гипотез о способах прочтения текста и о том, что будет встречено в тексте далее. Итак, то, что для других областей применения вычислительной техники – способ ускорить работу, для гуманитарной сферы, – пожалуй, единственно возможный способ адекватного моделирования. Однако для того, чтобы перейти к реальной работе над параллельными "лингвистическими вычислениями",

-143-

необходимо прежде осознать, каковы реальные возможности математического аппарата и технических средств ЭВМ с несколькими процессорами.

С точки зрения структуры и организации, выделяются три типа параллельных вычислителей:

1) матричные процессоры, в которых одна команда выполняется одновременно над целым массивом данных,

2) конвейерные вычислители, в которых весь объем работ распределен между несколькими процессорами таким образом, что после работы одного из них над фрагментом данных результат передается для работы следующему процессору, в то время как первый из этих процессоров снова получает очередную порцию данных, и т. д. – в полной аналогии с работой обычных конвейеров (об анализе алгоритмов в таких процессорах см. [3]);

3) многопроцессорные вычислительные машины, или системы, в которых параллельно несколько процессоров работают над общей или распределенной памятью, причем эти процессоры между собой соединены каналами управления и обмена информацией; общая же работа управляется обычно "диспетчером", входящим в состав операционной системы.

Последний тип далее может быть расклассифицирован по двум основаниям [3]:

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

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

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

-144-

свои навыки, мы соответствующую информацию "рассылаем" одновременно по всем затронутым словарным статьям.

Конвейерные процессоры моделируют ситуацию чтения текста по ходу появления в нашем поле зрения очередных сегментов его. Очередной сегмент – "квант" текста, сканируемый как единое целое в рамках данного вида интерпретации, – поступает на своеобразный конвейер лингвистической обработки, после чего той же обработке подвергнется следующий квант и т. д., до конца текста. Конвейер состоит из трех крупных групп операций:

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

2) установление композиционной семантики интерпретируемого выражения, уже прошедшего перед взором интерпретатора,

3) установление – исходя из композиционной семантики – дополнительных, идиоматичных значений, опираясь на хранимую информацию о значениях единиц, не выводимую из простого соположения квантов, их составляющих (скажем, из всех значений слова дождевик в качестве реального лексического в тексте выделится "плащ, спасающий от дождя", – именно в результате процедур некомпозиционной семантики).

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

а) переходя от идентификации данного кванта к его значению (в рамках названных трех видов операций) и

б) переходя от одного уровня квантов к другому.

Продвижение по двум этим измерениям представляет собой единый процесс, который, будучи изображен в одной плоскости, выглядит как зигзаг [4]. Переходя от одной единицы текста к другой, "слева направо", интерпретатор каждый раз пробегает по всему зигзагу и не начинает сканировать очередную единицу

-145-

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

Модель лингвистического интерпретатора включает и остальные типы многопроцессорной системы. Наиболее очевидна ее необходимость для построения модели понимания, представленной как взаимодействие нескольких интерпретационных модулей [5]. А именно, при понимании текста совершаются, как минимум, следующие операции, скомпоновать которые можно только в рамках параллельного вычислителя:

1) использование языкового знания – знания квантов текста, правил композиционной семантики и семантики идиом, на всех уровнях,

2) выдвижение и верификация гипотетических интерпретаций как выражений, входящих в данный текст, так и всего текста в целом,

3) построение модельного мира по прочитываемому тексту в рамках получаемых гипотез,

4) реконструкция намерений автора, в частности, способность понять обращенные к читателю прямо или косвенно просьбы и приказы, вопросы и т.п.,

5) осознание степени нетождественности внутреннего мира читающего и модельного мира текста, вследствие чего терпимость к неточностям выражений автора будет большей или меньшей,

6) осознание отношений внутри модельного мира текста и внутреннего мира читателя,

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

-146-

знания вкладываются в модельный мир,

8) соотнесение интерпретации с линией поведения читателя, осуществляемой параллельно чтению – готовность ответить на вопросы, задаваемые текстом (выработка стратегий такого ответа), активация тех или иных слоев собственного знания и т. п.,

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

Набор этих модулей понимания можно представить как неоднородную многопроцессорную систему, внутри которой имеются как синхронные, так и асинхронные процедуры. Моделирование процессов понимания связано не только с построением формального аппарата для каждого из названных модулей, – а здесь несомненна необходимость использовать и современные логические системы, – но и с установлением отношений однородности и синхронизации между ними. Это, в свою очередь, ставит новые проблемы перед языкознанием, логикой и психологией, выводящие нас к переднему рубежу построения систем, имитирующих интеллектуальную деятельность человека. Вот почему совершенно справедлива следующая точка зрения: "Утрата установившегося единства, хотя и может считаться неизбежным следствием специализации, все же представляет собой закономерное явление, за которым должен последовать новый этап сближения логики и лингвистики" [6]. Нам представляется, что это сближение – без нарушения автономии, а тем самым без экспансии одной научной дисциплины на территорию другой, – наиболее реально именно в рамках модульного подхода к моделированию интерпретационной деятельности человека. Более того, развитие вычислительной техники, а особенно параллельных вычислителей, делает наиболее актуальным именно такое модульное содружество названных дисциплин с теоретическим программированием.


Библиографические примечания:

1. Mohanan K.P., Mohanan T. Lexical phonology of the consonant system in Malayalam // Linguistic Inquiry. 1985. V. 15. N°4. Р. 575-602.

2. Воеводин В. В. Параллельные структуры алгоритмов и программ; Материалы семинара Отдела вычислительной математики. М., Отдел вычислительной математики АН СССР, 1984, Препринт ╧ 73.

3. См.: Миклошко И. Связь между алгоритмами, программами и структурой параллельных ЭВМ // Алгоритмы, математическое обеспечение и архитектура многопроцессорных вычислительных систем. М., 1982. С. 7.

4. Демьянков В. 3. Основы теории интерпретации и ее вычислительной лингвистике. М., 1985. С. 39.

5. Демьянков В. 3. Основы теории интерпретации и ее приложения в вычислительной лингвистике. М., 1985. С. 62-65.

6. Петров В. В. Язык и логическая теория // Новое в зарубежной лингвистике. Выпуск XVIII. Логический анализ естественного языка. М., 1986. С.23.