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

Обновлено: 05.07.2024

Это первое руководство из семинара "Начало работы с ливерморскими вычислениями". Он предназначен для предоставления лишь краткого обзора обширной и обширной темы параллельных вычислений в качестве вводной части для последующих руководств. Таким образом, он охватывает только самые основы параллельных вычислений и предназначен для тех, кто только знакомится с предметом и планирует посетить одно или несколько других руководств на этом семинаре. Он не предназначен для подробного рассмотрения параллельного программирования, так как это потребует значительно больше времени. Учебное пособие начинается с обсуждения параллельных вычислений — что это такое и как оно используется, после чего следует обсуждение концепций и терминологии, связанных с параллельными вычислениями. Затем исследуются темы параллельных архитектур памяти и моделей программирования. За этими темами следует серия практических дискуссий по ряду сложных вопросов, связанных с проектированием и выполнением параллельных программ. Учебник завершается несколькими примерами того, как распараллелить несколько простых задач. Ссылки включены для дальнейшего самостоятельного изучения.

Обзор

Что такое параллельные вычисления?

Последовательные вычисления

Традиционно программное обеспечение писалось для последовательных вычислений:

  • Задача разбита на отдельные серии инструкций.
  • Инструкции выполняются последовательно одна за другой
  • Выполняется на одном процессоре
  • В любой момент времени может выполняться только одна инструкция

Например:

Параллельные вычисления

Проще говоря, параллельные вычисления — это одновременное использование нескольких вычислительных ресурсов для решения вычислительной задачи:

  • Проблема разбивается на отдельные части, которые можно решать одновременно
  • Каждая часть далее разбита на серию инструкций.
  • Инструкции из каждой части выполняются одновременно на разных процессорах
  • Используется общий механизм контроля/координации

Например:

  • Вычислительная задача должна уметь:
    • Разбить на отдельные части работы, которые можно решать одновременно;
    • Выполнение нескольких программных инструкций в любой момент времени;
    • Решайте задачи быстрее, используя несколько вычислительных ресурсов, чем один вычислительный ресурс.
    • Один компьютер с несколькими процессорами/ядрами
    • Произвольное количество таких компьютеров, объединенных в сеть

    Параллельные компьютеры

    • Сегодня практически все автономные компьютеры параллельны с аппаратной точки зрения:
      • Несколько функциональных блоков (кеш L1, кэш L2, переход, предварительная выборка, декодирование, операции с плавающей запятой, обработка графики (GPU), целые числа и т. д.)
      • Несколько исполнительных блоков/ядер
      • Несколько аппаратных потоков

       IBM BG/Q Compute Chip с 18 ядрами (PU) и 16 модулями кэша L2 (L2)

      • Сети соединяют несколько автономных компьютеров (узлов) для создания больших параллельных компьютерных кластеров.
      • Например, на приведенной ниже схеме показан типичный кластер параллельных компьютеров LLNL:
        • Каждый вычислительный узел сам по себе является многопроцессорным параллельным компьютером
        • Несколько вычислительных узлов объединены в сеть Infiniband.
        • Узлы специального назначения, также многопроцессорные, используются для других целей.
        • Большинство больших параллельных компьютеров (суперкомпьютеров) в мире представляют собой кластеры оборудования, произведенного несколькими (в основном) известными поставщиками.

        График доли систем поставщиков и доля производительности» width=

        Зачем использовать параллельные вычисления?

        Реальный мир чрезвычайно сложен

        • В естественном мире множество сложных, взаимосвязанных событий происходит одновременно, но в рамках временной последовательности.
        • По сравнению с последовательными вычислениями параллельные вычисления гораздо лучше подходят для моделирования, имитации и понимания сложных явлений реального мира.
        • Например, представьте себе их последовательное моделирование:



        Основные причины использования параллельного программирования

        ЭКОНОМЬТЕ ВРЕМЯ И/ИЛИ ДЕНЬГИ
        • Теоретически, выделение большего количества ресурсов для выполнения задачи сократит время ее выполнения и потенциально сэкономит средства.
        • Параллельные компьютеры могут быть собраны из дешевых, широко распространенных компонентов.

        Задачи выполняются быстрее с большим ресурсы, как показано несколькими людьми, строящими дом и несколькими плугами на поле». ширина =

        РЕШАТЬ БОЛЬШИЕ/БОЛЕЕ СЛОЖНЫЕ ПРОБЛЕМЫ

        Большие проблемы

        ОБЕСПЕЧИТЬ ПАРАЛЛЕЛЬНОСТЬ
        • Один вычислительный ресурс может одновременно выполнять только одну операцию. Несколько вычислительных ресурсов могут выполнять множество задач одновременно.
        • Пример. Сети для совместной работы представляют собой глобальную площадку, где люди со всего мира могут встречаться и работать «виртуально».

        CollaborativeNetworks, объединяющие людей по всему миру

        ИСПОЛЬЗОВАТЬ НЕМЕСТНЫЕ РЕСУРСЫ
        • Использование вычислительных ресурсов в глобальной сети или даже в Интернете, когда локальных вычислительных ресурсов недостаточно или недостаточно.
        • Пример. SETI@home (setiathome.berkeley.edu) насчитывает более 1,7 миллиона пользователей почти во всех странах мира (май 2018 г.).
        ЛУЧШЕ ИСПОЛЬЗОВАТЬ БАЗОВОЕ ПАРАЛЛЕЛЬНОЕ ОБОРУДОВАНИЕ
        • Современные компьютеры, даже ноутбуки, имеют параллельную архитектуру с несколькими процессорами/ядрами.
        • Параллельное программное обеспечение специально предназначено для параллельного оборудования с несколькими ядрами, потоками и т. д.
        • В большинстве случаев последовательные программы, запускаемые на современных компьютерах, «тратят впустую» потенциальную вычислительную мощность.

        Процессор Intel Xeon с 6 ядрами и 6 единиц кэш-памяти L3

        Будущее

        диаграмма развития производительности с увеличением флопов с течением времени

        Кто использует параллельные вычисления?

        Наука и техника

        Исторически параллельные вычисления считались «высшим уровнем вычислений» и использовались для моделирования сложных задач во многих областях науки и техники:

        • Атмосфера, Земля, Окружающая среда
        • Физика - прикладная, ядерная, частица, конденсированное состояние, высокое давление, термоядерный синтез, фотоника.
        • Бионаука, биотехнология, генетика
        • Химия, молекулярные науки
        • Геология, сейсмология
        • Машиностроение: от протезов до космических кораблей
        • Электротехника, схемотехника, микроэлектроника
        • Информатика, математика
        • Оборона, Оружие

        Примеры научного и инженерного моделирования

        Промышленные и коммерческие

        Сегодня коммерческие приложения являются равной или даже большей движущей силой в разработке более быстрых компьютеров. Эти приложения требуют сложной обработки больших объемов данных. Например:

        Центральный процессор (ЦП) направляет компьютер на различные этапы решения проблемы.

        Связанные термины:

        Скачать в формате PDF

        Об этой странице

        Адаптация и оценка симплексного алгоритма для архитектуры потока данных

        Урош Чибей, Юрий Михелич, Достижения в области компьютеров, 2017

        2.2 Вид программиста

        Чтобы программист мог разработать законченную программу, необходимо написать три компонента.

        обычно написанный на языке программирования C, код ЦП управляет выполнением и использует DFE в качестве блока обработки, вызывая подходящие функции, предоставляемые компилятором Maxeler.

        Каждое ядро ​​реализует определенную функциональность и примерно соответствует абстракции функции. Он имеет набор входных потоков и набор выходных потоков.

        Менеджер — это компонент, который соединяет потоки данных от ЦП к ядрам-получателям и наоборот. Он устанавливает соединения между ядрами и LMem, а также связывает ядра между собой. Диспетчер также создает интерфейсы, с помощью которых код ЦП взаимодействует с DFE.

        Диспетчер и ядра написаны на предметно-ориентированном языке MaxJ. Этот язык представляет собой надмножество языка программирования Java с несколькими расширениями, более подходящими для упрощения создания программ потока данных.

        Компилятор преобразует описание ядер в граф потока данных, и этот граф физически размещается на микросхеме FPGA серверной частью. Серверная часть обычно очень требовательна к вычислительным ресурсам, поскольку необходимо учитывать множество структурных ограничений.

        Схема этой архитектуры представлена ​​на рис. 1.

        < бр />

        Рис. 1 . Схематический обзор компонентов системы потока данных. серая рамка обозначает микросхему FPGA. Взгляд программиста на архитектуру показан в виде файлов, которые необходимо реализовать для каждой программы, файл .maxj написан на языке MaxJ, тогда как поток управления обычно написан на C или C++, но поддерживаются и другие языки. .

        КОМПЬЮТЕРНЫЙ ДИЗАЙН

        Доминик Росато, Дональд Росато, Дизайн изделий из пластмассы, 2003 г.

        Центральный процессор

        Центральный процессор компьютера (ЦП) — это часть компьютера, которая извлекает и выполняет инструкции. Процессор, по сути, является мозгом CAD-системы. Он состоит из арифметико-логического блока (АЛУ), блока управления и различных регистров. Центральный процессор часто называют просто процессором. АЛУ выполняет арифметические операции, логические операции и связанные с ними операции в соответствии с инструкциями программы.

        Блок управления управляет всеми операциями ЦП, включая операции АЛУ, перемещение данных внутри ЦП, а также обмен данными и управляющими сигналами через внешние интерфейсы (системную шину). Регистры — это быстродействующие блоки внутренней памяти ЦП. Некоторые регистры видны пользователю; то есть доступный для программиста через набор машинных инструкций. Другие регистры предназначены исключительно для ЦП в целях управления. Внутренние часы синхронизируют все компоненты ЦП. Тактовая частота (количество тактовых импульсов в секунду) измеряется в мегагерцах (МГц) или миллионах тактовых импульсов в секунду. Тактовая частота, по сути, определяет, насколько быстро ЦП обрабатывает инструкции.

        Оборудование

        Центральный процессор управляет всем. Он извлекает программные инструкции по своей шине «на стороне инструкций» (IS), считывает данные по своей шине «на стороне данных» (DS), выполняет инструкции и записывает результаты на шину DS. ЦП может работать на частоте SYSCLK до 80 МГц, что означает, что он может выполнять одну инструкцию каждые 12,5 нс. ЦП способен умножать 32-битное целое число на 16-битное целое число за один цикл или 32-битное целое число на 32-битное целое число за два цикла. Блока с плавающей запятой (FPU) нет, поэтому вычисления с плавающей запятой выполняются программными алгоритмами, что делает операции с плавающей запятой намного медленнее, чем вычисления с целыми числами.

        ЦП представляет собой ядро ​​микропроцессора MIPS32® M4K®, лицензированное компанией Imagination Technologies. ЦП работает при напряжении 1,8 В (обеспечиваемом стабилизатором напряжения, встроенным в PIC32, поскольку он используется на плате NU32). Контроллер прерываний, обсуждаемый ниже, может уведомлять ЦП о внешних событиях.

        Встроенные процессоры

        Внутренние шины ЦП

        Шины ЦП — это механизмы, соединяющие другие компоненты ЦП: АЛУ, ЦП и регистры (см. рис. 4-22). Шины — это просто провода, которые соединяют между собой различные другие компоненты ЦП. Провод каждой шины обычно делится на логические функции, такие как данные (которые переносят данные в двух направлениях между регистрами и АЛУ), адрес (который переносит расположение регистров, содержащих данные для передачи), управление (переносит управление информацию о сигналах, такую ​​как временные и управляющие сигналы, между регистрами, ALU и CU) и т. д.

        < бр />

        Рисунок 4-22. Ядро и шины PowerPC. [15]

        В ядре PowerPC есть управляющая шина, по которой управляющие сигналы передаются между АЛУ, CU и регистрами. То, что PowerPC называет «исходными шинами», — это шины данных, передающие данные между регистрами и АЛУ. Существует дополнительная шина, называемая обратной записью, которая предназначена для обратной записи данных, полученных с исходной шины, непосредственно обратно из модуля загрузки/сохранения в фиксированные регистры или регистры с плавающей запятой.

        Примечание. Во избежание дублирования автобусы будут более подробно обсуждаться в главе 7 .

        Микрокомпьютерная аппаратура и управление

        Чтение/запись памяти

        ЦП всегда контролирует направление потока данных в БД, поскольку, хотя он и является двунаправленным, данные могут перемещаться только в одном направлении за раз. ЦП выдает специальный сигнал управления чтением/записью (R/W) (рис. 3.2), который активирует схемы в памяти, определяющие направление потока данных. Например, когда на линии чтения/записи (R/W) высокий уровень, ЦП передает информацию из ячейки памяти в ЦП.

        Временная диаграмма операции чтения из памяти показана на рис. 3.3.

        < бр />

        Рис. 3.3. Время чтения/записи.

        Предположим, что компьютеру была дана инструкция прочитать данные из ячейки памяти номер 10. Чтобы выполнить операцию чтения, ЦП переводит линию чтения/записи в высокий уровень, чтобы активировать схему памяти при подготовке к операции чтения. Практически одновременно на АБ размещается адрес для местоположения 10 («адрес действителен» на рис. 3.3). В память АБ отправляется число 10 в 16-битном двоичном коде (0000 0000 0000 1010). Двоичные электрические сигналы, соответствующие 10, управляют определенными цепями в памяти, чтобы заставить двоичные данные в этом месте быть помещенными в БД. ЦП имеет внутренний регистр, который активируется во время этой операции чтения для приема и сохранения данных. Затем данные обрабатываются ЦП во время следующего цикла работы в соответствии с соответствующей инструкцией.

        Аналогичная операция выполняется всякий раз, когда ЦП должен отправить данные из одного из своих внутренних регистров в память, что является операцией «записи». В этом случае линия R/W будет установлена ​​на логический уровень, противоположный операции чтения (т.е. низкий в данном примере). Во время операции записи отправляемые данные помещаются в БД одновременно с адресом назначения в АВ. Эта операция перенесет данные из источника ЦП в место назначения, которым может быть место в памяти в ОЗУ или внешнее устройство (как будет объяснено позже).

        Компьютерные системы

        1.3.1 Работа системы

        ЦП управляет передачей системных данных по шинам данных и адреса и дополнительным линиям управления. Требуется схема часов, обычно содержащая кварцевый генератор (как в цифровых часах); это создает точный сигнал фиксированной частоты, который управляет микропроцессором. Операции ЦП запускаются по переднему и заднему фронтам тактового сигнала, что позволяет определить их точную синхронизацию. Это позволяет событиям в ЦП выполняться в правильной последовательности с достаточным временем для каждого шага. Центральный процессор генерирует все основные управляющие сигналы на основе часов. Тот или иной ЦП можно использовать в различных системах, в зависимости от типа приложения, необходимого объема памяти, требований к вводу-выводу и т. д.

        Декодер адреса управляет доступом к памяти и регистрам ввода-вывода для конкретного проекта. Как правило, программируемое логическое устройство (PLD) используется для выделения каждой микросхеме памяти определенного диапазона адресов. Код входного адреса в определенном диапазоне генерирует выходной сигнал выбора микросхемы, который включает это устройство. Регистры портов ввода-вывода, которые настроены для обработки передачи данных в систему и из нее, также получают определенные адреса с помощью того же механизма, и ЦП обращается к ним так же, как к ячейкам памяти. Назначение адресов конкретным периферийным устройствам называется картой памяти (рис. 1.6 б).

        Процессор

        ХАРВИ М. ДЕЙТЕЛЬ, БАРБАРА ДЕЙТЕЛЬ, Введение в обработку информации, 1986 г.

        Сводка издателя

        Центральный процессор (ЦП) направляет компьютер на различные этапы решения проблемы. Данные поступают в компьютер через блок ввода, обрабатываются центральным процессором и затем становятся доступными для пользователя через блок вывода. Логический вид компьютера показывает, какие функции выполняет компьютер. Физический вид компьютера показывает, как на самом деле механизмы компьютера выполняют эти функции. Центральный процессор состоит из трех логических блоков: арифметико-логического блока (ALU), основного хранилища и блока управления. Основная память сохраняет активные программы и данные. Это относительно дорого, поэтому вторичное хранилище используется для хранения программ и данных до тех пор, пока они не потребуются в основном хранилище. Набор встроенных операций компьютера называется его «набором инструкций». Компьютерная программа представляет собой набор инструкций, которые сообщают компьютеру, как решить конкретную задачу. Компьютерная программа должна находиться в оперативной памяти, чтобы компьютер мог выполнять ее инструкции.

        Управление энергопотреблением

        5.15.2.4.2.1 Блок процессора

        Это центральный процессор (ЦП) ПЛК, то есть микропроцессор по конструкции и функциональным возможностям.Основная функция этого блока состоит в том, чтобы воспринимать входные значения через свои модули ввода/вывода, генерировать управляющие сигналы в соответствии с входными сигналами и предопределенной инструкцией (хранящейся в блоке памяти в виде программы). Затем обработанное решение передается на устройства вывода, подключенные к модулям ввода/вывода, для обновления выходных переменных [51]. Типичный цикл процесса ЦП показан на рис. 40, демонстрирующем основную идею функции процесса. Время одного цикла выполнения программы называется «время сканирования». Типичные значения времени сканирования могут составлять всего 1 м/с. Входные и выходные значения обычно хранятся в единице памяти за цикл или несколько его кратных [53] .

        < бр />

        Рис. 40 . Рабочий цикл центрального процессора (ЦП) программируемого логического контроллера (ПЛК).

        Беспроводная МЭМС для носимых сенсорных сетей

        5.2.2.2 Блок обработки

        Рабочие процедуры промышленной системы управления

        (1) адресные пространства PCI

        ЦП и все устройства PCI должны иметь доступ к общей памяти. Драйверы устройств управляют устройствами PCI и передают информацию между ними, используя эту память. Обычно эта разделяемая память содержит регистры управления и состояния устройства, которые используются для управления устройством и чтения его состояния. Например, драйвер устройства PCI SCSI может прочитать свой регистр состояния, чтобы узнать, готово ли устройство к записи блока информации, или он может записать в управляющий регистр, чтобы запустить устройство после его включения.

        Системная память ЦП может использоваться для этой общей памяти, но в этом случае каждый раз, когда устройство PCI обращается к памяти, ЦП должен будет останавливаться, ожидая завершения. Доступ к памяти обычно ограничивается одним системным компонентом за раз. Это замедлит работу системы. Это не позволяет периферийным устройствам системы бесконтрольно обращаться к основной памяти. Это было бы очень опасно; неисправное устройство может сделать систему очень нестабильной.

        Периферийные устройства имеют собственные области памяти. ЦП может получить доступ к этим пространствам, но доступ устройств к системной памяти очень строго контролируется с помощью каналов DMA (прямой доступ к памяти). Устройства ISA имеют доступ к двум адресным пространствам; ISA I/O (ввод/вывод) и память ISA. В большинстве современных микропроцессоров PCI должен состоять из трех элементов: ввода-вывода PCI, памяти PCI и пространства конфигурации PCI.

        Некоторые микропроцессоры, например процессор Alpha AXP, не имеют естественного доступа к адресным пространствам, отличным от системного адресного пространства. Этот процессор использует наборы микросхем поддержки для доступа к другим адресным пространствам, таким как пространство конфигурации PCI, с помощью схемы разреженного отображения адресов, которая крадет часть большого виртуального адресного пространства и сопоставляет его с адресными пространствами PCI.

        ИТ-руководители начали год с ветерком в спину, опираясь на инвестиции, сделанные во время пандемии, и вновь сосредоточившись на .

        Определения метавселенной различаются, как и прогнозы относительно того, когда она появится. Но умные ИТ-директора должны ознакомиться с .

        Компании, привлекающие украинских программистов, работают над переводом сотрудников, желающих переехать. Технологические компании в долгосрочной перспективе могут .

        Новая компания объединяет портфолио McAfee Enterprise Security Service Edge с названием, напоминающим предыдущую McAfee.

        Скомпрометированный аккаунт сотрудника в HubSpot привел к взлому клиентов нескольких компаний в индустрии криптовалют.

        По мере того, как облачные сервисы становятся все более важными, группы безопасности усиливают корпоративную защиту. Нулевое доверие — с учетом активов, таких как .

        DevOps, NetOps и NetSecOps. о боже! У этих ИТ-концепций есть свои отличия, но, в конце концов, они — одна семья. .

        Cradlepoint и Extreme Networks объединят маршрутизаторы 5G первой компании с сетевой структурой второй для создания беспроводной глобальной сети 5G.

        Израильский стартап OneLayer запустился незаметно с начальным финансированием в размере 8,2 млн долларов США и программной платформой для защиты Интернета вещей.

        Intel оптимистично настроена, что ее дорожная карта процессоров может вернуть компанию на первое место, но компания сталкивается со сложной перспективой .

        Безопасность в центре обработки данных требует от организаций выявления и устранения различных факторов риска, от электрических систем до .

        Недавние достижения в технологиях центров обработки данных и кадровых моделях отражают стремление организаций к повышению гибкости ИТ, .

        Snowflake продолжает расширять предложения своей отраслевой вертикальной платформы, помогая пользователям из разных сегментов рынка собирать деньги.

        Платформа RKVST поддерживает несколько типов приложений для работы с данными на блокчейне, включая безопасный обмен данными SBOM для обеспечения кибербезопасности.

        Законы о конфиденциальности данных во всем мире постоянно меняются. Эти 10 элементов помогут организациям идти в ногу со временем .

        Обработка естественного языка направлена ​​на создание машин, которые понимают и реагируют на текстовые или голосовые данные, а также реагируют собственным текстом или речью почти так же, как люди.

        Что такое обработка естественного языка?

        Обработка естественного языка (NLP) относится к области компьютерных наук, а точнее к области искусственного интеллекта или ИИ, связанной с предоставлением компьютерам возможности понимать текст и произносимые слова почти так же, как люди.

        НЛП объединяет вычислительную лингвистику — моделирование человеческого языка на основе правил — со статистическими моделями, машинным обучением и моделями глубокого обучения. Вместе эти технологии позволяют компьютерам обрабатывать человеческий язык в виде текстовых или голосовых данных и «понимать» его полное значение, включая намерения и чувства говорящего или пишущего.

        НЛП управляет компьютерными программами, которые переводят текст с одного языка на другой, реагируют на голосовые команды и быстро обобщают большие объемы текста — даже в режиме реального времени. Скорее всего, вы взаимодействовали с НЛП в виде голосовых систем GPS, цифровых помощников, программного обеспечения для диктовки речи в текст, чат-ботов для обслуживания клиентов и других потребительских удобств. Но NLP также играет все более важную роль в корпоративных решениях, помогающих упростить бизнес-операции, повысить производительность сотрудников и упростить критически важные бизнес-процессы.

        Задания НЛП

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

        Некоторые задачи НЛП разбивают человеческий текст и голосовые данные таким образом, чтобы помочь компьютеру разобраться в том, что он получает. Некоторые из этих задач включают следующее:

        • Распознавание речи, также называемое преобразованием речи в текст, представляет собой задачу надежного преобразования голосовых данных в текстовые данные. Распознавание речи требуется для любого приложения, которое следует голосовым командам или отвечает на голосовые вопросы. Что особенно затрудняет распознавание речи, так это то, как люди говорят: быстро, нечленораздельно, с разным ударением и интонацией, с разным акцентом и часто с неправильной грамматикой.
        • Тегирование части речи, также называемое грамматическим тегированием, представляет собой процесс определения части речи определенного слова или фрагмента текста на основе его использования и контекста. Часть речи определяет «сделать» как глагол в «Я могу сделать бумажный самолетик» и как существительное в «Какой марки автомобиля у тебя есть?»
        • Устранение многозначности слова — это выбор значения слова с несколькими значениями в процессе семантического анализа, который определяет слово, которое имеет наибольший смысл в данном контексте. Например, устранение неоднозначности смысла слова помогает различать значение глагола "сделать" в словах "сделать оценку" (достичь) и "сделать ставку" (место).
        • Распознавание именованных объектов, или NEM, идентифицирует слова или фразы как полезные объекты. NEM определяет «Кентукки» как местоположение или «Фред» как мужское имя.
        • Разрешение по взаимной ссылке — это задача определить, относятся ли два слова к одному и тому же объекту и когда. Наиболее распространенным примером является определение лица или объекта, к которому относится определенное местоимение (например, «она» = «Мэри»), но это также может включать в себя определение метафоры или идиомы в тексте (например, пример, в котором « медведь не животное, а большой волосатый человек).
        • Анализ настроений пытается извлечь из текста субъективные качества — отношение, эмоции, сарказм, замешательство, подозрительность.
        • Создание естественного языка иногда называют противоположностью распознаванию речи или преобразованию речи в текст. это задача перевода структурированной информации на человеческий язык.

        Инструменты и подходы НЛП

        Python и набор инструментов для работы с естественными языками (NLTK)

        Язык программирования Python предоставляет широкий спектр инструментов и библиотек для решения конкретных задач НЛП. Многие из них можно найти в Natural Language Toolkit, или NLTK, коллекции библиотек, программ и образовательных ресурсов с открытым исходным кодом для создания программ НЛП.

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

        Статистическое НЛП, машинное обучение и глубокое обучение

        Самые ранние приложения НЛП представляли собой написанные вручную системы, основанные на правилах, которые могли выполнять определенные задачи НЛП, но не могли легко масштабироваться, чтобы справиться с кажущимся бесконечным потоком исключений или растущими объемами текстовых и голосовых данных.

        Войдите в статистический NLP, который сочетает компьютерные алгоритмы с машинным обучением и моделями глубокого обучения для автоматического извлечения, классификации и маркировки элементов текстовых и голосовых данных, а затем присваивает статистическую вероятность каждому возможному значению этих элементов. Сегодня модели глубокого обучения и методы обучения, основанные на сверточных нейронных сетях (CNN) и рекуррентных нейронных сетях (RNN), позволяют системам НЛП «обучаться» в процессе работы и извлекать все более точный смысл из огромных объемов необработанного, неструктурированного и неразмеченного текста. и наборы голосовых данных.

        Для более глубокого изучения нюансов между этими технологиями и их подходами к обучению см. статью "Искусственный интеллект, машинное обучение, глубокое обучение и нейронные сети: в чем разница?"

        Случаи использования НЛП

        Обработка естественного языка является движущей силой искусственного интеллекта во многих современных реальных приложениях. Вот несколько примеров:

        • Обнаружение спама. Возможно, вы не считаете обнаружение спама решением NLP, но лучшие технологии обнаружения спама используют возможности классификации текста NLP для сканирования электронных писем на наличие языка, который часто указывает на спам или фишинг. Эти индикаторы могут включать чрезмерное использование финансовых терминов, характерную плохую грамматику, угрожающий язык, неуместную срочность, неправильно написанные названия компаний и многое другое. Обнаружение спама — одна из немногих проблем НЛП, которые эксперты считают "почти решенными" (хотя вы можете возразить, что это не соответствует вашему опыту работы с электронной почтой).
        • Машинный перевод. Google Translate — это пример общедоступной технологии НЛП в действии. По-настоящему полезный машинный перевод включает в себя нечто большее, чем замену слов одного языка словами другого. Эффективный перевод должен точно улавливать смысл и тон исходного языка и переводить их в текст с тем же значением и желаемым воздействием на выходной язык. Инструменты машинного перевода делают успехи в плане точности. Отличный способ протестировать любой инструмент машинного перевода — перевести текст на один язык, а затем вернуться к оригиналу. Часто цитируемый классический пример: не так давно при переводе «Дух хочет, но плоть слаба» с английского на русский и обратно давался «Водка хороша, но мясо тухлое». ». Сегодня результатом является «Дух желает, но плоть немощна», что не идеально, но в переводе с английского на русский внушает гораздо больше доверия.
        • Виртуальные агенты и чат-боты. Виртуальные агенты, такие как Siri от Apple и Alexa от Amazon, используют распознавание речи для распознавания шаблонов в голосовых командах и генерации естественного языка, чтобы реагировать соответствующим действием или полезными комментариями. Чат-боты выполняют ту же магию в ответ на введенный текст. Лучшие из них также учатся распознавать контекстуальные подсказки о человеческих запросах и использовать их для предоставления еще лучших ответов или вариантов с течением времени. Следующим улучшением для этих приложений является функция ответов на вопросы, возможность отвечать на наши вопросы — ожидаемые или нет — соответствующими и полезными ответами своими словами.
        • Анализ настроений в социальных сетях. НЛП стало важным бизнес-инструментом для выявления скрытых данных из каналов социальных сетей. Анализ настроений может анализировать язык, используемый в сообщениях, ответах, обзорах и т. д. в социальных сетях, чтобы выявлять отношение и эмоции в ответ на продукты, рекламные акции и события – информацию, которую компании могут использовать при разработке продуктов, рекламных кампаниях и т. д.
        • Обобщение текста. Обобщение текста использует методы НЛП для анализа огромных объемов цифрового текста и создания резюме и синопсисов для указателей, исследовательских баз данных или занятых читателей, у которых нет времени читать полный текст. Лучшие приложения для реферирования текста используют семантические рассуждения и генерацию естественного языка (NLG), чтобы добавить полезный контекст и выводы к рефератам.

        Обработка естественного языка и IBM Watson

          IBM внедрила инновации в области искусственного интеллекта, разработав новаторские инструменты и услуги на основе NLP, которые позволяют организациям автоматизировать свои сложные бизнес-процессы, получая при этом важную бизнес-информацию. Эти инструменты включают:
            - Находите высококачественные ответы и богатые идеи из ваших сложных корпоративных документов — таблиц, PDF-файлов, больших данных и многого другого — с помощью поиска ИИ.Позвольте своим сотрудникам принимать более обоснованные решения и экономить время с помощью поисковой системы в реальном времени и возможностей анализа текста, которые выполняют извлечение текста и анализируют отношения и шаблоны, скрытые в неструктурированных данных. Watson Discovery использует настраиваемые модели NLP и методы машинного обучения, чтобы предоставить пользователям ИИ, который понимает уникальный язык их отрасли и бизнеса. Explore Watson Discovery (NLU) — анализируйте текст в форматах неструктурированных данных, включая HTML, веб-страницы, социальные сети и т. д. Улучшите свое понимание человеческого языка, используя этот набор инструментов естественного языка для определения понятий, ключевых слов, категорий, семантики и эмоций, а также для выполнения классификации текста, извлечения сущностей, распознавания именованных сущностей (NER), анализа тональности и суммирования. Изучите Watson Natural Language Understanding — улучшите качество обслуживания клиентов при одновременном снижении затрат. Watson Assistant — это чат-бот на основе искусственного интеллекта с простым в использовании визуальным конструктором, который позволяет развертывать виртуальных агентов по любому каналу за считанные минуты. Узнайте больше о Watson Assistant

          Разработанный специально для медицинских и медико-биологических областей, IBM Watson Annotator for Clinical Data извлекает ключевые клинические понятия из текстов на естественном языке, таких как состояния, лекарства, аллергии и процедуры. Глубокие контекстуальные идеи и значения для ключевых клинических атрибутов позволяют получить более значимые данные. Потенциальные источники данных включают в себя клинические записи, выписки из больницы, протоколы клинических испытаний и литературные данные.

          Бессерверная модель – это модель выполнения в облаке, которая обеспечивает более простой и экономичный способ создания и эксплуатации облачных приложений.

          Что такое бессерверное размещение?

          Бессерверная модель – это модель выполнения облачных вычислений, которая

          • Автоматически выделяет вычислительные ресурсы, необходимые для запуска кода приложения, по требованию или в ответ на определенное событие.
          • Автоматическое масштабирование этих ресурсов в сторону увеличения или уменьшения в зависимости от увеличения или уменьшения спроса.
          • Автоматическое масштабирование ресурсов до нуля, когда приложение перестает работать.

          Serverless перекладывает всю ответственность за управление серверной облачной инфраструктурой и операционными задачами — подготовку, планирование, масштабирование, установку исправлений и т. д. — на поставщика облачных услуг. Это дает разработчикам больше времени для разработки и оптимизации кода внешнего интерфейса и бизнес-логики. А с бессерверными решениями клиенты никогда не платят за простаивающие ресурсы. Они платят только за ресурсы, необходимые для запуска их приложений, и только тогда, когда эти приложения работают.

          Несмотря на название, в бессерверных вычислениях определенно есть серверы. Термин "бессерверный" описывает работу клиента с этими серверами: они невидимы для клиента, который не видит их, не управляет ими и не взаимодействует с ними каким-либо образом.

          В 2014 году компания Amazon Web Services представила бессерверные решения с помощью AWS Lambda. Сегодня каждый ведущий поставщик облачных услуг предлагает бессерверную платформу, включая Microsoft Azure (функции Azure), Google Cloud (функции Google Cloud) и IBM Cloud (движок кода IBM Cloud). Вместе бессерверные технологии, микросервисы и контейнеры образуют триумвират технологий, которые обычно считаются основой разработки облачных приложений.

          Бессерверные решения и FaaS (функция как услуга)

          Бессерверные решения и функции как услуга (FaaS) часто объединяют. Но FaaS на самом деле является подмножеством бессерверных вычислений — это парадигма вычислений, центральная для бессерверных, в которой код приложения или контейнеры запускаются только в ответ на события или запросы. Serverless включает в себя FaaS, а также все другие связанные ресурсы, облачные сервисы и ресурсы, поддерживающие код, например. хранилища, базы данных, сети, API-шлюзы, аутентификация — для которых настройка, управление и выставление счетов за услуги невидимы для пользователя.

          Ашер Сайед из IBM подробно объясняет бессерверные технологии и их преимущества (6:37):

          Бессерверные плюсы и минусы

          Плюсы

          Бессерверная версия предлагает ряд индивидуальных технических и коммерческих преимуществ:

          • Как отмечалось выше, бессерверные решения позволяют командам разработчиков сосредоточиться на написании кода, а не на управлении инфраструктурой. Это дает разработчикам гораздо больше времени для обновления и оптимизации функциональности интерфейсных приложений и бизнес-логики.
          • Кроме того, как отмечалось выше, бессерверные клиенты платят только за выполнение. Счетчик начинается, когда сделан запрос, и заканчивается, когда заканчивается выполнение. Сравните с моделью вычислений «инфраструктура как услуга» (IaaS), когда клиенты платят за виртуальные машины (ВМ) и другие ресурсы, необходимые для запуска приложений, с момента предоставления этих ресурсов до момента, когда клиент явным образом выводит эти ресурсы из эксплуатации.
          • Serverless – это многоязычная среда, позволяющая разработчикам писать код на любом удобном для них языке или платформе – Java, Python, node.js.
          • Бессерверная версия упрощает развертывание и, в более широком смысле, упрощает циклы DevOps, поскольку разработчикам не нужно описывать инфраструктуру, необходимую для интеграции, тестирования, доставки и развертывания сборок кода в рабочей среде.
          • Для определенных рабочих нагрузок, например требующих параллельной обработки, бессерверные вычисления могут быть быстрее и экономичнее, чем другие формы вычислений.
          • Бессерверные платформы разработки приложений обеспечивают почти полное представление о системном и пользовательском времени и могут систематически собирать эту информацию.

          Разработчики и ИТ-специалисты отмечают и другие конкретные преимущества бессерверных вычислений. Изучите их с помощью интерактивного инструмента ниже:

          Минусы

          Поскольку бессерверные вычисления так нравятся организациям, они используют их для самых разных приложений (см. рис. 2 ниже). Однако есть определенные приложения, для которых бессерверные технологии не подходят или для которых необходимо учитывать технические и бизнес-компромиссы:

          • Стабильные или предсказуемые рабочие нагрузки. Поскольку бессерверные решения масштабируются вверх и вниз по запросу в зависимости от рабочей нагрузки, это обеспечивает значительную экономию средств при скачкообразных рабочих нагрузках. Но он не обеспечивает такой же экономии для рабочих нагрузок, характеризующихся предсказуемыми, стабильными или длительными процессами; в этих случаях традиционная серверная среда может оказаться проще и дешевле.
          • Холодный запуск. Поскольку бессерверные архитектуры отказываются от длительных процессов в пользу масштабирования вверх и вниз до нуля, им также иногда приходится запускаться с нуля для обслуживания нового запроса. Для некоторых приложений эта задержка запуска не заметна и не вредна для пользователей. Но для других — например, приложения для финансового трейдинга — задержка недопустима.
          • Мониторинг и отладка. Эти операционные задачи сложны в любой распределенной системе, но перенос бессерверной архитектуры (или архитектуры микросервисов, или их комбинации) только усугубляет сложность. Например, командам может быть сложно или невозможно отслеживать или отлаживать бессерверные функции с помощью существующих инструментов или процессов.
          • Привязка к поставщику. Бессерверные архитектуры предназначены для использования преимуществ экосистемы управляемых облачных сервисов и, с точки зрения архитектурных моделей, максимально отделяют рабочую нагрузку от чего-то более портативного, например виртуальной машины (ВМ) или Докер-контейнер. Для некоторых компаний глубокая интеграция с собственными управляемыми службами конкретной облачной платформы — это то, где можно найти большую часть ценности облака; для других это облако приводит к существенным рискам блокировки, которые необходимо снизить.

          Понимание бессерверного стека

          Определение бессерверного подхода как набора общих атрибутов, а не как явной технологии, упрощает понимание того, как бессерверный подход может проявляться в других основных областях стека.

          Сравнение FaaS с PaaS, контейнерами и виртуальными машинами

          Несмотря на то, что FaaS, платформа как услуга (PaaS), контейнеры и виртуальные машины (ВМ) играют важнейшую роль в бессерверной экосистеме, FaaS является основной моделью вычислений для бессерверных систем. По этой причине полезно изучить, чем FaaS отличается от других доступных моделей вычислений по некоторым ключевым атрибутам:

          Диаграмма, показывающая процентное соотношение компаний, которые сохранят или увеличат свои инвестиции в бессерверные технологии

          Рисунок 1. Организации продолжат инвестировать в бессерверные решения. 95 % пользователей планируют сохранить или увеличить свои инвестиции в бессерверные решения в течение следующего года. (Источник: «Бессерверные решения на предприятии, 2021 г.» (PDF, 1,8 МБ))

          Бессерверные, Kubernetes и Knative

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

          Бессерверные приложения часто развертываются в контейнерах. Но сам по себе Kubernetes не может запускать бессерверные приложения без специального программного обеспечения, которое интегрирует Kubernetes с бессерверной платформой конкретного облачного провайдера.

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

          Применение бессерверных технологий

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

          Бессерверные и микросервисы

          Сегодня бессерверные решения чаще всего используются для поддержки архитектур микросервисов. Модель микрослужб ориентирована на создание небольших служб, которые выполняют одну работу и взаимодействуют друг с другом с помощью API. Хотя микросервисы также можно создавать и использовать с помощью PaaS или контейнеров, бессерверные технологии получили значительное распространение благодаря своим характеристикам, связанным с небольшими фрагментами кода, встроенным и автоматическим масштабированием, быстрым выделением ресурсов и моделью ценообразования, которая никогда не взимает плату за простаивающие ресурсы.

          Бэкэнды API

          Чтобы получить практический опыт работы с бэкендами API, ознакомьтесь с учебным пособием "Бессерверное веб-приложение и API".

          Обработка данных

          Serverless хорошо подходит для работы со структурированным текстом, аудио, изображениями и видеоданными для решения таких задач, как обогащение данных, преобразование, проверка, очистка; обработка PDF; нормализация звука; обработка изображений (поворот, повышение резкости, шумоподавление, создание эскизов); оптическое распознавание символов (OCR); и транскодирование видео. Подробный пример использования обработки изображений см. в статье «Как SiteSpirit стал в 10 раз быстрее при снижении затрат на 10 %».

          Массивные параллельные вычисления/операции «карты»

          Любая до неприличия параллельная задача является хорошим примером использования бессерверной среды выполнения, при этом каждая параллельная задача приводит к одному вызову действия. Примеры задач включают в себя все: от поиска и обработки данных (в частности, облачного хранилища объектов), операций Map(-Reduce) и извлечения веб-страниц до автоматизации бизнес-процессов, настройки гиперпараметров, моделирования Монте-Карло и обработки генома.

          Рабочие нагрузки потоковой обработки

          Сочетание управляемого Apache Kafka с FaaS и базой данных/хранилищем создает мощную основу для построения конвейеров данных и потоковых приложений в режиме реального времени. Эти архитектуры идеально подходят для работы со всеми видами приема потоков данных (для проверки, очистки, обогащения, преобразования), включая данные датчиков Интернета вещей, данные журналов приложений, данные финансового рынка и потоки бизнес-данных (из других источников данных).

          Общие приложения

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

          Диаграмма, показывающая наиболее популярные приложения для бессерверных вычислений

          Рис. 2. Использование бессерверных технологий. Респонденты опроса выявили более дюжины используемых бессерверных приложений. Наиболее часто упоминаемые приложения включали CRM, аналитику данных/бизнес-аналитику, финансы, базы данных, управление персоналом, проектирование, потоковое мультимедиа и ERP. (Источник: Источник: «Бессерверные технологии на предприятии, 2021 г.» (PDF, 1,8 МБ)’)

          Учебники: начало работы с бессерверными вычислениями

          Расширьте свои навыки работы с бессерверными вычислениями с помощью этих руководств:

          Бессерверные решения и IBM Cloud

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

          Сделайте следующий шаг:

          • Узнайте об IBM Cloud Code Engine – бессерверной платформе с оплатой по мере использования, которая позволяет разработчикам развертывать бессерверные приложения и рабочие процессы, сочетающие исходный код, образы контейнеров или пакетные задания, не требуя навыков работы с Kubernetes.
          • Узнайте, как с помощью IBM Cloud Satellite развертывать и запускать бессерверные приложения в локальных центрах обработки данных, средах граничных вычислений и общедоступных облачных средах любых поставщиков.
          • Ознакомьтесь с другими продуктами и инструментами IBM, которые можно использовать вместе с IBM Cloud Code Engine, включая API-интерфейсы IBM Watson, Cloudant, Object Storage и Container Registry.

          Начните работу с учетной записью IBM Cloud уже сегодня.

          Бессерверное исследование клиентов электронных книг

          Бессерверные технологии на предприятии, 2021 г.

          Новое исследование дает представление о реальных возможностях и проблемах бессерверных вычислений.

          Скачать электронную книгу (1,8 МБ)

          Снимок экрана из видеоролика Intro to IBM Cloud Code Engine

          Введение в IBM Cloud Code Engine

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

          Читайте также: