OpenAI совершает прорыв в больших языковых моделях для теста Тьюринга

Мы посетили AI Hardware Summit и Edge AI Summit 2022, а также NVIDIA GTC (GPU Technology Conference). Обе конференции показали, что ИИ продолжает экспоненциально развиваться благодаря новым алгоритмам и новым платформам для их разработки. Недавним прорывом стало внедрение технологий обработки языка, которые позволяют нам создавать более интеллектуальные системы с более глубоким пониманием языка, чем когда-либо прежде.

Тест Тьюринга, первоначально названный Аланом Тьюрингом в 1950 году игрой в имитацию, представляет собой проверку способности машины демонстрировать разумное поведение, неотличимое от поведения человека. Тьюринг предположил, что оценщик-человек будет оценивать разговоры на естественном языке, состоящие только из текста, между человеком и машиной, и пытаться отличить, является ли один из двух собеседников машиной. Если бы оценщик не мог достоверно отличить машину от человека, можно было бы сказать, что машина прошла тест.

GPT-3 (Generative Pre-trained Transformer 3) от OpenAI — это платформа машинного обучения, которая позволяет разработчикам обучать и развертывать модели ИИ. Также говорят, что он масштабируемый и эффективный с возможностью обработки больших объемов данных. Эта авторегрессивная языковая модель создает человекоподобный текст. Введите короткую подсказку, и система сгенерирует целое эссе. Он имеет следующие возможности:

  • Генерация контента
  • Подведение итогов
  • Классификация
  • Анализ настроений
  • Извлечение данных
  • Перевод
  • Математика
  • Программирование
  • Беседа

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

Настроить учетную запись OpenAI

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

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

После регистрации генерируется API-ключ.

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

export OPENAI_API_KEY="<your-openai-key>"

Это бесплатная учетная запись с кредитом в размере 18 долларов США, который можно использовать в течение первых 3 месяцев. После этого его нужно продолжить с платной моделью.

Настройте Next.js в качестве рабочей среды

В руководстве OpenAI подчеркивается, что нельзя передавать ключ API другим лицам или раскрывать его в браузере или другом коде на стороне клиента. API предназначены только для использования на стороне сервера. Поэтому мы выбираем Next.js, React Framework со встроенным клиентом и сервером, где API-интерфейсы вызываются на стороне сервера.

Используйте следующую команду, чтобы настроить проект Next.js с именем next-gpt-3.

% yarn create next-app next-gpt-3 --typescript
% cd next-gpt-3

Выполните команду yarn dev, и мы увидим пользовательский интерфейс Next.js по умолчанию в http://localhost:3000. Это страница приветствия Next.js.

Сборка GPT-3 в Project

Мы собираем GPT–3 внутри проекта Next.js, и для этого требуется пять шагов:

  1. Установить openai в проект.
  2. Изменить страницу приветствия, pages/index.tsx.
  3. Обновите стили страницы, styles/Home.module.css.
  4. Настроить обработчик звонков в api/hello.ts.
  5. Интерпретировать ответ GPT-3.

1. Установите openai в проект Next.js

Выполните следующую команду, чтобы установить пакет openai:

% yarn add openai

openai становится частью dependencies в package.json:

2. Измените страницу приветствия, pages/index.tsx

Файлы в папке pages являются компонентами React. Когда файл добавляется в папку pages, он автоматически становится доступным в качестве маршрута. index.tsx — домашний маршрут. Он вызывается, когда пользователь обращается к /. Содержимое по умолчанию — это страница приветствия, и мы изменили ее, чтобы она стала страницей с подсказкой и завершением.

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

Вот измененный код в pages/index.tsx:

В коде создано три состояния React:

  • value (строка 6): это значение в поле ввода, которое применяется в строке 36. value обновляется на handleInput (строки 10–13).
  • prompt (строка 7): это пользовательский ввод для GPT-3, который отображается в строке 37. prompt устанавливается с помощью handleKeyDown (строки 15–31), когда в поле ввода есть событие keydown с ключом, 'Enter' (строка 18 ).
  • completion (строка 8): это завершение подсказки, которая отображается в строке 38. completion устанавливается на 'Loading...' после нажатия 'Enter' (строка 19), и получение ответа может занять несколько секунд. Вызов маршрута API обрабатывается в строках 20–26, где конечная точка — '/api/hello' (строка 20), а тело запроса — value (строка 25).

3. Обновите стили страницы, styles/Home.module.css

Чтобы pages/index.tsx красиво оформить, мы обновляем styles/Home.module.css:

  • В строках 1–3 это стиль контейнера с отступами.
  • В строках 5–10 класс main оформлен как гибкий макет по направлению столбца.
  • В строках 12–14 .main div оформляется с некоторым дополнением.
  • В строках 16–18 .main input устанавливается на 80% ширины.

4. Настройте обработчик вызовов в api/hello.ts.

Маршруты API предоставляют решение для создания API. Файлы в папке pages/api сопоставляются с /api/*,, и каждый из них рассматривается как конечная точка API. Поскольку это пакет на стороне сервера, вызывать вызовы с помощью OPENAI_API_KEY безопасно.

Вот модифицированный api/hello.ts:

  • В строках 4–6 создается configuration с apiKey, для которого задана переменная среды OPENAI_API_KEY.
  • В строке 7 openai создается с помощью configuration.
  • В строках 9–23 определяется API handler, который принимает объект запроса и создает объект ответа. Объект ответа имеет формат json с кодом состояния 200 (строка 22).
  • Данные ответа поступают из completion (строка 13), что является ответом от openai.createCompletion, который создает завершение для предоставленной подсказки и параметров.

В openai.createCompletion API есть ряд параметров. Эти параметры определяются следующим образом:

  • model (строка 14): идентификатор модели. В GPT-3 есть несколько моделей. text-davinci-002 — самая мощная модель GPT-3, которая может выполнять задачи, которые могут выполнять другие модели, часто с меньшим контекстом. Другие модели: text-curie-001, text-babbage-001 и text-ada-001. Другие модели могут очень хорошо выполнять определенные задачи со значительным преимуществом в скорости или стоимости. Например, text-curie-001 обладает большими возможностями, быстрее и дешевле, чем text-davinci-002. Для нового пользователя рекомендуется начинать с text-davinci-002.
  • prompt (строка 15): это запрос на создание завершения для строки, массива строк, массива токенов или массива массивов токенов.
  • temperature (строка 16): температура отбора проб. Более высокое значение означает, что модель будет брать на себя больше рисков. 0 — четко определенный ответ, 0,7 — более творческий ответ. Значение по умолчанию — 1.
  • top_p (строка 17): это альтернатива выборке с температурой, называемая выборкой ядра, где модель рассматривает результаты токенов с вероятностной массой top_p. 0,1 означает, что учитываются только токены, составляющие 10% наиболее вероятной массы. Значение по умолчанию — 1, и рекомендуется изменить это или temperature, но не оба.
  • frequency_penalty (строка 18): это число от -2,0 до 2,0. Положительные значения штрафуют новые токены в зависимости от их существующей частоты в тексте на данный момент, уменьшая вероятность того, что модель дословно повторит одну и ту же строку. Значение по умолчанию — 0.
  • presence_penalty (строка 19): число от -2,0 до 2,0. Положительные значения штрафуют новые токены в зависимости от того, появляются ли они в тексте до сих пор, что увеличивает вероятность того, что модель будет говорить о новых темах. Значение по умолчанию — 0.
  • max_tokens (строка 20): это максимальное количество токенов, которые можно сгенерировать при завершении. text-davinci-002 имеет ограничение в 4096 токенов, а другие модели имеют ограничение в 2048 токенов. В следующем предложении количество токенов равно 9.

Выполните yarn dev, и GPT-3 готов к исследованию.

5. Интерпретируйте ответ GPT-3

Введите текст 'I am', и нажмите 'Enter'. Ответы на вызов hello со следующим объектом JSON:

Значение завершения представляет собой массив из choices (строки 7–14). Поскольку мы вводим одно приглашение, ответ имеет один ответ.

Текст (строка 9) завершает исходное неполное предложение и повторяет 'I am a student'.

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

Повторите 'I am', и на этот раз это более длинный ответ:

Попробуйте ввести неверное предложение, 'We is happy'. И понимает ломаный английский:

Вы чувствуете интеллект машины?

Выполнение примеров GPT-3

GPT-3 можно применять практически к любой задаче, связанной с пониманием или созданием естественного языка или кода. Конечная точка завершения предоставляет простой интерфейс для больших языковых моделей, который является чрезвычайно гибким и мощным.

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

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

Генерация контента

Генерация контента — это предоставление информации любым средствам массовой информации в определенных контекстах. GPT-3 отлично подходит для создания контента.

  • Предложите несколько имен для мальчиков.

  • Подскажите, как приготовить лобстера в духовке.

  • Напишите мне абзац из 1000 слов об окружающей среде.

Это действительно более 1000 слов?

  • Напиши мне фантастический рассказ.

Подведение итогов

Подведение итогов — это акт выражения наиболее важных фактов или идей о статье.

  • Кратко изложите этот абзац одним предложением: А.И. Искусственный интеллект (также известный как ИИ) — американский научно-фантастический фильм 2001 года режиссёра Стивена Спилберга. Сценарий Спилберга и экранизация Яна Уотсона основаны на рассказе Брайана Олдисса 1969 года «Суперигрушки длятся все лето». Продюсерами фильма выступили Кэтлин Кеннеди, Спилберг и Бонни Кертис. В ролях Хейли Джоэл Осмент, Джуд Лоу, Фрэнсис О’Коннор, Брендан Глисон и Уильям Хёрт. Действие А.И. происходит в футуристическом обществе постклиматических изменений. рассказывает историю Дэвида (Осмент), похожего на ребенка андроида, уникально запрограммированного на способность любить.
  • Ответ: А.И. рассказывает историю Дэвида (Осмент), похожего на ребенка андроида, уникально запрограммированного на способность любить.

Классификация

Классификация — это действие или процесс разделения вещей на группы в соответствии с их типом.

  • 8 это цифра или буква?

  • Оранжевый цвет?

Анализ настроений

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

  • Должен ли я быть счастлив есть овощи?

  • Какой сайт имеет наибольшее количество положительных отзывов?

Извлечение данных

Извлечение данных — это действие или процесс извлечения данных из источников данных для дальнейшей обработки или хранения данных.

  • Сколько имен для девочек среди Мэри, Джона, Джо и Лили?

  • Мэри играет с Джоном, Джо и Лили. Сколько мальчиков?

Перевод

Перевод — это процесс перевода слов или текста с одного языка на другой.

  • Что такое ИИ на китайском языке?

Математика

Математика — это абстрактная наука о числе, количестве и пространстве.

  • Суммируете ли вы от 1 до 100?

Программирование

Программирование — это написание кода на языке программирования. GPT-3 тоже может кодировать.

  • Можете ли вы написать алгоритм сортировки на JavaScript?

  • Можете ли вы написать короткий алгоритм сортировки на JavaScript?

  • Покажите мне вопрос кода leet и ответ.

Беседа

Разговор — это разговор. Может ли GPT-3 обеспечить общение?

  • Ты любишь меня?

  • Кто тебе больше нравится, мама или папа?

Заключение

GPT-3 — это платформа машинного обучения, которая позволяет разработчикам обучать и развертывать модели ИИ. Введите некоторый текст в качестве подсказки, и модель сгенерирует завершение текста, которое попытается соответствовать любому контексту или шаблону.

Со всеми приведенными нами примерами, что вы думаете о GPT-3? Вы оценщик. Какой балл вы бы поставили GPT-3?

Приближаемся ли мы к тому дню, когда машина сможет пройти тест Тьюринга?

Спасибо за прочтение.

Want to Connect?
If you are interested, check out my directory of web development articles.