Кодекс OpenAI и разговорный ИИ

Создание кода с использованием понимания естественного языка

Введение

Разговорный ИИ проявляется по-разному.

Один из них - это обработка естественного языка более высокого уровня (NLP).

NLP решает более высокоуровневые задачи, такие как обобщение, перевод, извлечение именованных сущностей, категоризация и т. Д. 🤗HuggingFace - один из лидеров рынка, и самым последним дополнением является API OpenAI, основанный на GPT-3. У крупных поставщиков облачных платформ также есть свои среды NLP, такие как AWS, IBM, Microsoft и т. Д.

Другая часть разговорного ИИ - это фреймворки для разработки чат-ботов.

Существует множество подходов к реализации фреймворков разработки.

У Microsoft есть целая экосистема, и на ум приходит IBM Watson Assistant. И есть ряд других сред. Авангард - это Rasa с их более ориентированным на ML подходом.

Следует отметить, что с появлением GPT-3 через API OpenAI была введена новая категория разговорного ИИ. API ввода текста.

Этот подход Text-In-Text-Out позволяет использовать минимальную среду тонкой настройки с низким кодом. Что инкапсулирует:

  • управление состоянием чередования диалогов,
  • Генерация естественного языка (NLG),
  • Понимание естественного языка (NLU) с точки зрения намерений и сущностей.

Пользовательский интерфейс разговора

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

  • текст / чат и
  • речь / голос.

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

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

Структурированные и неструктурированные данные

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

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

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

И снова, степень неструктурированности данных в диалоговом окне возврата чат-бота может быть ограничена карточками и т. Д.

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

Эта форма была создана на JavaScript с использованием предложений, перечисленных ниже.

/* create a header saying Book your appointment */
/* make the font arial */
/* add a horizontal line */
/* Add Text in Arial saying "Select your representative:" */
/* change the font to Arial */
/* next to the text, add a dropdown box with 10 random names */
/* Add text saying "Select the date" */
/* Change the font to Arial */
/* add a date picker */
/* add a time picker */
/* make the background orange */
/* create a horizontal line */

Контекст поддерживается в Кодексе, и не все инструкции должны быть явными.

Подробнее о Кодексе

OpenAI Codex переводит естественный язык в код.

Интересный факт; Кодекс - это модель, на которой работает GitHub Copilot, который OpenAI построил и запустил в партнерстве с GitHub.

Codex владеет более чем 12 языками программирования. Codex принимает простые команды на естественном языке и выполняет их от имени пользователя.

Кодекс OpenAI основан на GPT-3. Согласно OpenAI, данные обучения Codex содержат как естественный язык, так и миллиарды строк исходного кода из общедоступных источников, включая код в общедоступных репозиториях GitHub.

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

/* make a red ball bounce on the screen */
/* make it go faster */
/* crop the ball circular */
/* disable scrollbars */
/* make a blue ball bounce on the screen */
/* crop the ball circular */
/* make the blue ball move faster */
/* make both balls larger in size */
/* move the red ball faster */
/* When the blue ball and the red ball overlap, change the background color to a random color */

OpenAI Codex лучше всех владеет Python, но также включает такие языки, как:

  • JavaScript,
  • Go,
  • Perl,
  • PHP,
  • Рубин,
  • Быстрый
  • Машинопись
  • Оболочка.

Он имеет память 14 КБ для кода Python, по сравнению с GPT-3, который имеет только 4 КБ, поэтому он может учитывать более чем в 3 раза больше контекстной информации при выполнении любой задачи.

Наилучший подход при создании приложения:

  • Разбейте проблему на более простые задачи и
  • Сопоставьте эти простые проблемы с существующим кодом (библиотеками, API-интерфейсами или функциями), которые уже существуют.

Последнее занятие, вероятно, наименее увлекательная часть программирования (и самый высокий барьер для входа), и именно здесь OpenAI Codex превосходит всех остальных.

Существует довольно много дискуссий о легитимности подхода low-code. Несколько мыслей по поводу low-code…

Добро:

  • Сам по себе low-code - это не решение всех проблем.
  • Небольшие приложения и утилиты хорошо подходят для low-code.
  • Low-code хорош для прототипирования, экспериментов и каркасов.
  • Low-code хорошо подходит в качестве расширения к существующей более крупной реализации и позволяет бизнес-подразделениям создавать свои собственные расширения и настройки.
  • Примеры хороших реализаций с низким кодом: IBM Watson Assistant Actions, Microsoft Power Virtual Agents, некоторые функции консоли разработки Amazon Alexa и т. Д.

Препятствия:

  • Тонкая настройка проблематична с низким кодом.
  • Масштабирование и интеграция.
  • Оптимизация
  • Управление производительностью
  • Вы обязательно захотите включить функции и расширения, недоступные в вашей среде разработки.

Кодирование на естественном языке

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

Python

В Кодексе вы можете создать образец фрейма данных, сказав: «Создайте фрейм данных из 12 случайных городов США со средней годовой температурой, влажностью, количеством осадков и ветром».

Орфографическая ошибка исправлена. Код создается для создания фрейма данных с тестовыми данными.

"""
Create a dataframe  of 12 random US cities with averate yearly temperature, humidity, rainfall an wind
"""

Созданный фрейм данных:

df

Вот полный список кода. Красный блок - это инструкция, которую я написал, синий блок - это код, сгенерированный Codex с комментариями.

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

"""
Create three grahps based on df
"""

Вход в красном блоке и выход Кодекса в синем.

Это общая черта OpenAI GTP-3 и Codex, расширяющая начальный запрос и возвращающая расширенный ответ.

Три графика, созданные в блокноте Google Colab.

Сгенерирован запрос и полный код…

"""
Create a dataframe  of 12 random US cities with averate yearly temperature, humidity, rainfall an wind
"""
import pandas as pd
import numpy as np
import random
# Create a dataframe of 12 random US cities with averate yearly temperature, humidity, rainfall an wind
# Create a list of random US cities
cities = ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego', 'Dallas', 'San Jose', 'Austin', 'Jacksonville']
# Create a list of random average yearly temperatures
temps = [random.randint(50, 100) for i in range(len(cities))]
# Create a list of random average yearly humidity
humidity = [random.randint(50, 100) for i in range(len(cities))]
# Create a list of random average yearly rainfall
rainfall = [random.randint(50, 100) for i in range(len(cities))]
# Create a list of random average yearly wind
wind = [random.randint(50, 100) for i in range(len(cities))]
# Create a dictionary of the lists
data = {'City': cities, 'Temperature': temps, 'Humidity': humidity, 'Rainfall': rainfall, 'Wind': wind}
# Create a dataframe from the dictionary
df = pd.DataFrame(data)
# Display the dataframe
df
"""
Create three grahps based on df
"""
# Create a bar graph of the average yearly temperature for each city
df.plot.bar(x='City', y='Temperature', title='Average Yearly Temperature')
# Create a bar graph of the average yearly humidity for each city
df.plot.bar(x='City', y='Humidity', title='Average Yearly Humidity')
# Create a bar graph of the average yearly rainfall for each city
df.plot.bar(x='City', y='Rainfall', title='Average Yearly Rainfall')
# Create a bar graph of the average yearly wind for each city
df.plot.bar(x='City', y='Wind', title='Average Yearly Wind')

Вывод

Было много дискуссий о сравнении Low Code и ручного или традиционного кодирования. Это не тот или иной случай. И то, и другое есть место и применение. С достоинствами и недостатками.

Я подробно обсуждаю эту тему здесь.

То же самое и с Кодексом. Будут ли так построены корпоративные системы, скорее всего, нет. Пойдут ли компании из списка Fortune 500 в принципе по пути Кодекса… нет.

Но есть некоторые нишевые приложения defernite, они могут включать:

  • Решение задач кодирования и проблем в определенных процедурах.
  • Установление передовой практики.
  • Гарантия качества.
  • Интерактивное обучение
  • Создание конкретных компонентов для последующего обзора человеком.



«Подпишитесь на мой информационный бюллетень.
NLP / NLU, чат-боты, голос, разговорный интерфейс / пользовательский интерфейс, CX Designer, разработчик, универсальные пользовательские интерфейсы, окружающий… cobusgreyling. меня"