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


Основные понятия и рекомендации по созданию решений сгенерируемым ИИ

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

Инженерные проблемы при работе с LLM

Ниже приведены наиболее важные проблемы и ограничения, которые следует учитывать при работе с LLM:

  • Отсечение знаний: LLM знают только то, чему они были обучены до определённой даты. Без подключения к внешним данным они не могут получить доступ к данным в режиме реального времени или частной информации.

  • Галлюцинация: LLM может генерировать неточные или вводящие в заблуждение сведения. Функция обнаружения обоснованности в Microsoft Foundry помогает определить, основаны ли ответы LLM на предоставленные вами исходные материалы. Необоснованные ответы включают информацию, которая не поддерживается вашими данными. Узнайте, как использовать обнаружение заземления в этом кратком руководстве.

  • Прозрачность. Вы не всегда можете отслеживать источник или точность созданного содержимого, и нет встроенного шага проверки.

  • Нет знаний в конкретной области: LLMs не знают ваши внутренние или засекреченные данные, если вы не интегрируете их.

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

Где LLM получают свои сведения

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

Факторы, влияющие на работу вывода

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

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

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

Размер окна контекста использует маркеры, а не слова. Маркеры — это самые маленькие фрагменты текста, которые может обрабатывать модель. Эти части могут быть целыми словами, частями слов или отдельными символами в зависимости от языка и токенизатора.

Для разработчиков использование токенов напрямую влияет:

  • Максимальное количество истории общения, которое может рассмотреть модель (окно контекста)
  • Стоимость каждого запроса и завершения, поскольку выставление счетов зависит от количества обработанных токенов.

Что такое токенизация?

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

Страница токенизатора OpenAI подробно объясняет маркеризацию и включает калькулятор, чтобы показать, как предложения разделены на маркеры.

В типичном английском тексте токен состоит примерно из четырех символов. В среднем 100 элементов — это примерно 75 слов.

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

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

Каждый Azure API OpenAI имеет другую методологию выставления счетов. Для обработки и генерации текста с помощью API для Ответов или API для Завершения Чата выставляется счет на основании количества токенов, которые вы отправляете в виде запроса, и количества токенов, сгенерированных в результате (генерация).

Каждая модель LLM (например, GPT-5.2 или GPT-5.2-mini) обычно имеет отличающуюся цену, которая отражает объем вычислений, необходимых для обработки и создания токенов. Во многих случаях цена представлена как "цена за 1000 токенов" или "цена за 1 миллион токенов".

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

Системные запросы и запросы пользователей

До сих пор в этой статье рассматриваются запросы пользователей. Запрос пользователя — это то, что вы отправляете в модель и на что отвечает модель.

OpenAI также добавил системный запрос (или пользовательские инструкции). Системный запрос — это набор правил, которые вы добавляете в каждый чат. Например, можно попросить LLM "всегда отвечать в форме хайку". После этого каждый ответ будет в форме хайку.

В этом примере haiku показано, как изменить ответы LLM, изменив запрос.

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

Но изменение запроса пользователя — это всего лишь один из способов улучшения создания текста.

Методы улучшения возможностей создания текста для пользователей

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

  • Изменение пользовательских запросов программным способом.
  • Реализуйте конвейер вывода.
  • Retrieval-Augmented поколение (рассматривается в других статьях).
  • Точная настройка (рассматривается в других статьях).

Программное изменение запросов пользователей

Чтобы добавить системный запрос в беседу пользователя, вы не используете специальный API. Вы просто добавляете инструкции к запросу по мере необходимости.

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

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

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

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

Реализация конвейера вывода

После улучшения запроса пользователя следующим шагом является создание конвейера вывода.

Инференсный конвейер — это процесс, который:

  1. Очищает необработанные входные данные (например, текст или изображения)
  2. Отправляет его в модель (предварительная обработка)
  3. Проверяет ответ модели, чтобы убедиться, что он соответствует потребностям пользователя, прежде чем отображать его (после обработки).

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

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

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

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

Другие факторы, влияющие на завершение

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

Ниже приведены некоторые ключевые параметры, которые можно настроить, чтобы повлиять на выходные данные модели:

  • Temperature. Управление случайностью выходных данных, генерируемых моделью. В нуле модель становится детерминированной, последовательно выбирая наиболее вероятный следующий маркер из обучающих данных. При температуре 1 модель балансирует между выбором маркеров высокой вероятности и введением случайности в выходные данные.

  • Max Tokens: определяет максимальную длину ответа. Установка более высокого или нижнего предела может повлиять на детали и область созданного содержимого.

  • Top P (выборка ядра): используется с Temperature для управления случайностью ответа. Top P ограничивает ИИ рассматривать только верхний процент массы вероятности (P) при создании каждого маркера. Более низкие значения приводят к более ориентированному и предсказуемому тексту. Более высокие значения позволяют повысить разнообразие.

  • Frequency Penalty: уменьшает вероятность повторения той же строки или фразы модели. Увеличение этого значения помогает избежать избыточности в созданном тексте.

  • Presence Penalty: рекомендует модели вводить новые концепции и термины в завершении. Presence Penalty полезно для создания более разнообразных и творческих результатов.

  • Stop Sequences. Можно указать одну или несколько последовательностей, чтобы указать API прекратить создание дополнительных маркеров. Store Sequences полезны для контроля структуры выходных данных, например, завершения в конце предложения или абзаца.

  • Logit Bias. Позволяет изменить вероятность появления указанных маркеров в завершении. Logit Bias можно использовать для управления ходом завершения в определенном направлении или для подавления конкретного содержимого.

Меры защиты Microsoft Azure OpenAI

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

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

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

Затем можно использовать Azure AI Content Safety, чтобы помочь в модерации текста, модерации изображений, обнаружении рисков взлома и выявлении защищенных материалов. Эта служба объединяет возможности настройки, настройки и создания отчетов портала с кодом, который можно добавить в приложение, чтобы определить вредное содержимое.

Агенты ИИ

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

Запуск инструмента

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

Например, агент ИИ может получать обновления погоды в режиме реального времени из API погоды или извлекать сведения из базы данных на основе того, что пользователь просит. Дополнительные сведения о вызове инструментов см. в разделе "Обнаружение и управление средствами" в каталоге инструментов Foundry (предварительная версия).

Протокол контекста модели (MCP)

Протокол контекста модели (MCP) позволяет приложениям предоставлять возможности и контекст для крупной языковой модели. Ключевой особенностью MCP является определение средств, используемых агентами ИИ для выполнения задач. Серверы MCP могут работать локально, но удаленные серверы MCP имеют решающее значение для совместного использования средств в масштабе облака. Дополнительные сведения см. в разделе Build Agent using Model Context Protocol on Azure.

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

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

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

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

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