Кодекс 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. меня"