Поделиться через


Общие сведения о создании решений для создания решений искусственного интеллекта для разработчиков

Создание искусственного интеллекта с поддержкой крупных языковых моделей (LLM) открывает новые возможности для разработчиков программного обеспечения и организаций. Службы, такие как Azure OpenAI, демократизируют разработку ИИ, предлагая простые в использовании API, позволяя разработчикам любого уровня навыка интегрировать расширенные функциональные возможности ИИ в свои приложения, не нуждаясь в специализированных знаниях или требуя от организаций инвестировать в оборудование.

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

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

Что бизнес надеется достичь с помощью генерного ИИ?

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

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

Ниже приведены некоторые распространенные сценарии, в которых генерированный ИИ может помочь компаниям:

  • Создание содержимого
    • Создание текста, кода, изображений и звука. Это может быть полезно для маркетинга, продаж, ИТ-отдела, внутренних коммуникаций и т. д.
  • Обработка естественного языка
    • Создание или улучшение бизнес-коммуникаций с помощью предложений или полного создания сообщений.
    • "Чат с данными", или другими словами, что позволяет пользователю задавать вопросы в чате, используя данные, хранящиеся в базах данных или документах в качестве основы для ответов.
    • Сводка, организация и упрощение больших объемов содержимого для повышения доступности содержимого.
    • "Семантический поиск", или, скорее, позволяя пользователям выполнять поиск по документам и данным без использования точных ключевое слово совпадений.
    • Перевод языка для повышения доступности и доступности содержимого.
  • Анализ данных
    • Анализ рынков и определение тенденций в данных.
    • Моделировать сценарии "если", чтобы помочь компаниям планировать возможные изменения или проблемы в каждой области бизнеса.
    • Анализ кода для предложения улучшений, исправления ошибок и создания документации.

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

Как создать эти типы приложений?

Хотя большая языковая модель (LLM) выполняет тяжелый подъем, вы создаете системы, которые интегрируют, оркестрацию и отслеживают результаты. Хотя есть много, чтобы узнать, вы можете применить навыки, которые вы уже знаете:

  • Выполнение вызовов API с помощью rest, JSON или пакетов SDK для конкретного языка
  • Оркестрация вызовов API и выполнение бизнес-логики
  • Хранение и извлечение из хранилищ данных
  • Интеграция входных данных и результатов в взаимодействие с пользователем
  • Создание API- интерфейсов, которые можно вызывать из LLM

Таким образом, разработка решений для создания искусственного интеллекта основана на существующих навыках.

Какие средства и службы доступны?

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

  • Общие сведения о типичных функциях, ролях и обязанностях в заданном типе функции создания искусственного интеллекта? Например, как мы подробно обсудим в концептуальных статьях, описывающих системы чата на основе извлечения дополненного поколения (RAG), в системе есть много архитектурных обязанностей. Важно понимать предмет проблемы и ограничения интимно перед проектированием системы, которая решает проблему.
  • Общие сведения об API, службах и средствах существуют для данной функции, роли или ответственности? Теперь, когда вы понимаете область проблем и ограничения, вы можете создать этот аспект системы самостоятельно с помощью пользовательского кода или использовать существующие средства с низким кодом или нет кода или вызвать API для существующих служб.
  • Ознакомьтесь с параметрами, включая решения, ориентированные на код и no-code/ с низким кодом. Вы могли бы построить все самостоятельно, но это эффективное использование вашего времени и навыка? В зависимости от ваших требований обычно можно объединить сочетание технологий и подходов (код, без кода, низкий код, инструменты).

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

Начните с фокуса на уровне приложения

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

Например, вам не нужно обучать собственный LLM с нуля. Для обучения LLM потребуется время и ресурсы, которые большинство компаний не хотят зафиксировать. Вместо этого вы создаете на основе существующих предварительно обученных базовых моделей, таких как GPT-4, выполняя вызовы API в существующие размещенные службы, такие как API Azure OpenAI. Таким образом, добавление создаваемых функций ИИ в существующее приложение не отличается от добавления других функций на основе вызова API.

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

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

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

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

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

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

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

При размещении в крупных центрах обработки данных программный доступ к этим моделям предоставляется через ИНТЕРФЕЙСы REST API, и они иногда "упаковываются" пакетами SDK и доступны разработчикам приложений для удобства использования. Другие средства могут помочь улучшить интерфейс разработчика, обеспечивая наблюдаемость или другие служебные программы. Разработчики приложений могут выполнять вызовы в эти API для реализации бизнес-функций.

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

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

  • Общие сведения о доступных API-интерфейсах и пакетах SDK, доступных доступных конечных точках и т. д.
  • Общие сведения о связанных средствах и службах, которые помогут вам создать все функции, необходимые для готового к производству решения искусственного интеллекта.
  • Понимание запроса инженерии, например, как достичь наилучших результатов, задавая или повторяя вопросы.
  • Понимание того, где возникают узкие места и как масштабировать решение. Понимание того, что связано с ведением журнала или получением данных телеметрии без нарушения конфиденциальности клиентов.
  • Понимание характеристик различных LLM (их сильных сторон, вариантов использования, что такое тесты и что они измеряют, ключевые различия между поставщиками и моделями, созданными каждым поставщиком, и т. д.), чтобы выбрать подходящую модель для потребностей вашей компании.
  • Узнайте о последних шаблонах, рабочих процессах и процессах, используемых для создания эффективных и устойчивых функций создания искусственного интеллекта в приложениях.

Доступные службы и инструменты корпорации Майкрософт

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

API и пакеты SDK для подхода, ориентированного на код

В основе каждого решения для создания искусственного интеллекта лежит модель LLM, а Azure OpenAI предоставляет доступ ко всем функциям, доступным в таких моделях, как GPT-4.

Продукт Description
Azure OpenAI Размещенная служба, которая предоставляет доступ к мощным языковым моделям, таким как GPT-4. Существует несколько различных API,которые позволяют выполнять все типичные функции LLM, такие как создание внедрения, создание интерфейса чата и т. д. с полным доступом к параметрам и настройкам результатов по мере необходимости.

Среды выполнения

Так как вы создаете бизнес-логику, логику презентации или API для интеграции генерируемого ИИ в приложения вашей организации, вам нужно где-то разместить и выполнить эту логику.

Продукт Description
служба приложение Azure (или одна из нескольких облачных служб на основе контейнеров) Эта платформа может размещать веб-интерфейсы или API-интерфейсы, с помощью которых пользователи взаимодействуют с системой чата RAG. Она поддерживает быструю разработку, развертывание и масштабирование веб-приложений, что упрощает управление интерфейсными компонентами системы.
Функции Azure Используйте бессерверные вычисления для обработки задач на основе событий в системе чата RAG. Например, используйте его для активации процессов извлечения данных, обработки запросов пользователей или обработки фоновых задач, таких как синхронизация данных и очистка. Это позволяет более модульный, масштабируемый подход к созданию серверной части системы.

Низкий код / No-code

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

Продукт Description
Azure AI Studio Azure AI Studio можно использовать для обучения, тестирования и развертывания пользовательских моделей машинного обучения, которые могли бы улучшить систему чата RAG. Например, используйте Azure AI Studio для настройки создания ответов или повышения релевантности полученных сведений.

Векторная база данных

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

Продукт Description
Поиск по искусственному интеллекту Azure Эту службу можно использовать для эффективного поиска по большим наборам данных, чтобы найти соответствующие сведения, которые можно использовать для информирования ответов, созданных языковыми моделями. Это полезно для компонента извлечения системы RAG, гарантируя, что созданные ответы являются как можно информативными и контекстно релевантными.
Cosmos DB Эта глобально распределенная служба базы данных с несколькими моделями может хранить огромные объемы структурированных и неструктурированных данных, к которым должна обращаться система чата RAG. Его быстрые возможности чтения и записи делают его идеальным для обслуживания данных в режиме реального времени в языковой модели и хранения взаимодействия пользователей для дальнейшего анализа.
Кэш Azure для Redis Это полностью управляемое хранилище данных в памяти можно использовать для кэширования часто доступных сведений, снижения задержки и повышения производительности системы чата RAG. Особенно полезно хранить данные сеанса, предпочтения пользователей и распространенные запросы.
Гибкий сервер Базы данных Azure для PostgreSQL Эта служба управляемой базы данных может хранить данные приложения, включая журналы, профили пользователей и исторические данные чата. Ее гибкость и масштабируемость поддерживают динамические потребности системы чата RAG, обеспечивая согласованное доступность и безопасность данных.

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

Разработка искусственного интеллекта с учетом кода с помощью API OpenAI Azure

В этом разделе мы сосредоточимся на API OpenAI Azure. Как упоминалось ранее, вы обращаетесь к функциям LLM программным способом через веб-API RESTful. Вы можете использовать буквально любой современный язык программирования для вызова этих API. Во многих случаях существуют языковые или платформенные пакеты SDK, которые работают как "оболочки" вокруг вызовов REST API, чтобы сделать интерфейс более идиоматичным.

Если язык или пакет SDK платформы недоступен, худший сценарий заключается в том, что необходимо выполнять вызовы REST непосредственно к веб-API. Однако большинство разработчиков знакомы с тем, как вызывать веб-API.

Azure OpenAI предлагает ряд ИНТЕРФЕЙСов API, предназначенных для упрощения различных типов задач, на основе ИИ, что позволяет разработчикам интегрировать расширенные функциональные возможности ИИ в свои приложения. Ниже приведен обзор ключевых API, доступных в OpenAI:

  • API завершения чата: этот API ориентирован на сценарии создания текста, включая возможности общения, позволяя создавать чат-боты и виртуальные помощник, которые могут участвовать в естественном, человеческом диалоге. Он оптимизирован для интерактивных вариантов использования, включая поддержку клиентов, личные помощник и интерактивные учебные среды. Однако он также используется для всех сценариев создания текста, включая суммирование, автозавершение, написание документов, анализ текста, перевод и т. д. Это точка входа для возможностей визуального зрения в настоящее время в предварительной версии (т. е. отправка изображения и вопросы об этом).
  • API модерации. Этот API предназначен для того, чтобы разработчики могли выявлять и отфильтровывать потенциально вредное содержимое в тексте, предоставляя средство для обеспечения безопасного взаимодействия с пользователем, автоматически обнаруживая оскорбительные, небезопасные или небезопасные материалы.
  • API внедрения: API внедрения создает векторные представления текстовых входных данных, преобразуя слова, предложения или абзацы в высокомерные векторы. Эти внедрения можно использовать для семантического поиска, кластеризация, анализа сходства содержимого и многого другого. Он фиксирует базовое значение и семантические связи в тексте.
  • API создания изображений: этот API позволяет создавать исходные, высококачественные изображения и искусство из текстовых описаний. Он основан на DALL OpenAI· Модель E, которая может создавать изображения, соответствующие широкому спектру стилей и тем на основе получаемых запросов.
  • API аудио: этот API предоставляет доступ к звуковой модели OpenAI, предназначенной для автоматического распознавания речи. Он может транскрибировать речевой язык в текст или текст в речь, поддерживая различные языки и диалекты. Это полезно для приложений, требующих голосовых команд, транскрибирования звука и многое другое.

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

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

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

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

Совет #1. Получите ясно о том, что вы пытаетесь достичь.

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

Совет 2. Играть на сильные стороны LLM.

  • Понимание ограничений и предвзятости LLM: в то время как LLM являются мощными, они имеют ограничения и присущие смещения. Знание ограничений и предвзятости может помочь вам разработать их или включить способы устранения рисков.
  • Узнайте, где llMs excel: LLMs excel в таких задачах, как создание контента, сводка, перевод языка и т. д. Хотя их возможности принятия решений и дискриминирующие возможности становятся сильнее с каждой новой версией, могут быть другие типы ИИ, которые более подходящи для вашего сценария или варианта использования. Выберите подходящее средство для задания.

Совет #3. Лучшие результаты начинаются с хороших запросов.

  • Ознакомьтесь с рекомендациями по проектированию запросов: создание эффективных подсказок — это искусство. Поэкспериментируйте с различными запросами, чтобы узнать, как они влияют на выходные данные. Будьте краткими, но описательными.
  • Фиксация итеративного уточнения. Часто первый запрос может не дать желаемого результата. Это процесс проб и ошибок. Используйте выходные данные, чтобы уточнить запросы дальше.

Создание первого решения для создания искусственного интеллекта

Если вы хотите начать экспериментировать с созданием решения для создания решения для создания искусственного интеллекта немедленно, рекомендуется ознакомиться с примером корпоративного чата Python с помощью RAG. В .NET, Java и JavaScript также доступны версии учебника.

Окончательные рекомендации, которые могут повлиять на решения по проектированию приложений

Ниже приведен краткий список вещей, которые следует рассмотреть и другие варианты из этой статьи, которые влияют на решения по проектированию приложений:

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