Partilhar via


GenAIOps com fluxo de prompt e GitHub

À medida que a demanda por aplicativos com infusão de LLM aumenta, as organizações precisam de um processo coeso e simplificado para gerenciar o ciclo de vida completo desses aplicativos. As Operações de Inteligência Artificial Generativa (GenAIOps), às vezes chamadas de LLMOps, são uma pedra angular da engenharia rápida eficiente e do desenvolvimento e implantação de aplicativos com infusão de LLM.

Este artigo mostra como o Azure Machine Learning permite a integração com o GitHub para automatizar o ciclo de vida de desenvolvimento de aplicativos infundidos por LLM com fluxo de prompt. O fluxo imediato fornece uma abordagem simplificada e estruturada para o desenvolvimento de aplicativos com infusão de LLM. Seu processo e ciclo de vida bem definidos guiam você através do processo de construção, teste, otimização e implantação de fluxos, culminando na criação de soluções totalmente funcionais com infusão de LLM.

Recursos de fluxo de prompt do GenAIOps

O GenAIOps com fluxo de prompt usa um modelo e orientação do GenAIOps para ajudá-lo a criar aplicativos com infusão de LLM usando o fluxo de prompt. O GenAIOps com fluxo imediato tem recursos para aplicativos simples ou complexos com infusão de LLM e é personalizável de acordo com as necessidades do aplicativo.

O GenAIOps com plataforma de fluxo de prompt fornece os seguintes recursos:

  • Hospedagem centralizada de código. O repositório suporta a hospedagem de código para vários fluxos de prompt, fornecendo um único repositório para todos os seus fluxos. Este repositório é como uma biblioteca para seus fluxos, facilitando a localização, o acesso e a colaboração em diferentes projetos.

  • Gestão do ciclo de vida. Cada fluxo tem seu próprio ciclo de vida, proporcionando uma transição suave da experimentação local para a implantação da produção.

  • Experimentação de variantes e hiperparâmetros. Variantes e hiperparâmetros são como ingredientes de uma receita. A plataforma permite que você experimente diferentes combinações de variantes em vários nós em um fluxo. Você pode experimentar várias variantes e hiperparâmetros para avaliar facilmente as variantes de fluxo.

  • Vários destinos de implantação. A plataforma gera imagens do Docker infundidas com seu fluxo e sessão de computação para implantação em qualquer plataforma de destino e sistema operacional que suporte o Docker. Você pode implantar fluxos nos Serviços de Aplicativo do Azure, Kubernetes e cálculos gerenciados do Azure e configurá-los para serem dimensionados conforme necessário.

  • Implantação A/B. O GenAIOps com fluxo imediato implementa perfeitamente implantações A/B, permitindo que você compare facilmente diferentes versões de fluxo. Esta plataforma facilita a implantação A/B para fluxo imediato, da mesma forma que nos testes A/B tradicionais do site. Você pode comparar facilmente diferentes versões de um fluxo em uma configuração do mundo real para determinar qual versão tem o melhor desempenho.

  • Conjunto de dados muitos-para-muitos para relações de fluxo. GenAIOps com fluxo imediato acomoda vários conjuntos de dados para cada fluxo padrão e de avaliação, permitindo versatilidade no teste e avaliação de fluxo.

  • Dados condicionais e registo de modelo. A plataforma registra uma nova versão do conjunto de dados para o ativo de dados do Azure Machine Learning e flui no registro do modelo somente quando há uma alteração no conjunto de dados.

  • Relatórios abrangentes. GenAIOps com fluxo imediato gera relatórios detalhados para cada configuração de variante, permitindo que você tome decisões informadas. A plataforma fornece coleta detalhada de métricas, experimentos e execuções em massa de variantes para todas as execuções e experimentos, permitindo decisões orientadas por dados para arquivos CSV e HTML.

GenAIOps com fluxo de prompt fornece os seguintes outros recursos para personalização:

  • Bring-your-own-flows (BYOF) fornece uma plataforma completa para o desenvolvimento de vários casos de uso relacionados a aplicativos com infusão de LLM.
  • O desenvolvimento baseado em configuração significa que não há necessidade de escrever código clichê extenso.
  • A experimentação e a avaliação imediatas são executadas localmente e na nuvem.
  • Os cadernos para avaliação rápida local fornecem uma biblioteca de funções para experimentação local.
  • O teste de ponto de extremidade dentro do pipeline após a implantação verifica a disponibilidade e a prontidão do ponto final.
  • O human-in-loop opcional valida métricas de prompt antes da implantação.

Estágios GenAIOps

O ciclo de vida do GenAIOps compreende quatro estágios distintos:

  • Inicialização. Defina claramente o objetivo de negócios, reúna amostras de dados relevantes, estabeleça uma estrutura rápida básica e crie um fluxo que aprimore suas capacidades.

  • Experimentação. Aplique o fluxo aos dados de amostra, avalie o desempenho do prompt e refine o fluxo conforme necessário. Itere continuamente até ficar satisfeito com os resultados.

  • Avaliação e refinamento. Avalie o desempenho do fluxo usando um conjunto de dados maior, avalie a eficácia do prompt e faça refinamentos de acordo. Avançar para a fase seguinte se os resultados cumprirem os padrões desejados.

  • Implementação. Otimize o fluxo para eficiência e eficácia, implante-o em um ambiente de produção, incluindo implantação A/B, monitore seu desempenho, colete feedback do usuário e use essas informações para melhorar ainda mais o fluxo.

Ao aderir a essa metodologia estruturada, o fluxo imediato permite que você desenvolva com confiança, teste rigoroso, ajuste fino e implante fluxos, levando à criação de aplicativos de IA robustos e sofisticados.

O modelo de fluxo de prompt GenAIOps formaliza essa metodologia estruturada usando uma abordagem code-first e ajuda você a criar aplicativos com infusão de LLM usando ferramentas e processos de fluxo de prompt e recursos de fluxo de prompt GenAIOps. Este modelo está disponível em GenAIOps com modelo de fluxo de prompt.

Fluxo de processo GenAIOps

Screenshot do processo de fluxo de prompt GenAIOps.

  1. No estágio de inicialização, você desenvolve fluxos, prepara e seleciona dados e atualiza arquivos de configuração relacionados ao GenAIOps.
  2. Após o desenvolvimento local usando o Visual Studio Code com a extensão Prompt Flow, você gera uma solicitação pull (PR) da ramificação de recurso para a ramificação de desenvolvimento, que executa o pipeline de validação de compilação e os fluxos de experimentação.
  3. O PR é aprovado manualmente e o código é mesclado com a ramificação de desenvolvimento.
  4. Depois que o PR se funde com a ramificação de desenvolvimento, o pipeline de integração contínua (CI) para o ambiente de desenvolvimento é executado. O pipeline de CI executa os fluxos de experimentação e avaliação em sequência e registra os fluxos no Registro do Azure Machine Learning além de outras etapas no pipeline.
  5. Após a conclusão da execução do pipeline de CI, um gatilho de implantação contínua (CD) executa o pipeline de CD, que implanta o fluxo padrão do Registro do Azure Machine Learning como um ponto de extremidade online do Azure Machine Learning. Em seguida, o pipeline executa testes de integração e fumaça no fluxo implantado.
  6. Uma ramificação de lançamento é criada a partir da ramificação de desenvolvimento, ou uma RP é levantada da ramificação de desenvolvimento para a ramificação de versão.
  7. O PR é aprovado manualmente e o código é mesclado com a ramificação de lançamento. Depois que o PR é mesclado à ramificação de lançamento, o pipeline de CI para o ambiente de produção é executado. O pipeline executa os fluxos de experimentação e avaliação em sequência e registra os fluxos no Registro de Aprendizado de Máquina do Azure, além de outras etapas no pipeline.
  8. Após a conclusão da execução do pipeline de CI, um gatilho de CD executa o pipeline de CD, que implanta o fluxo padrão do Registro do Azure Machine Learning como um ponto de extremidade online do Azure Machine Learning. Em seguida, o pipeline executa testes de integração e fumaça no fluxo implantado.

Criar um fluxo de prompt GenAIOps

O restante deste artigo mostra como usar o GenAIOps com fluxo de prompt seguindo o exemplo de ponta a ponta no repositório de modelos de fluxo de prompt do GenAIOps, que ajuda você a criar aplicativos com infusão de LLM usando fluxo de prompt e GitHub. O objetivo principal é fornecer assistência no desenvolvimento dessas aplicações usando os recursos de fluxo imediato e GenAIOps.

Pré-requisitos

Configurar uma conexão de fluxo de prompt

O fluxo de prompt usa um recurso de conexão para se conectar aos pontos de extremidade do Azure OpenAI, OpenAI ou Azure AI Search. Você pode criar uma conexão por meio da interface do usuário do portal de fluxo de prompt ou usando a API REST. Para obter mais informações, consulte Conexões no fluxo de prompt.

Para criar a conexão, siga as instruções em Configurar conexões para fluxo de prompt. Os fluxos de exemplo usam uma conexão chamada aoai, portanto, dê esse nome à sua conexão.

Configurar uma sessão de computação

O fluxo de prompt usa uma sessão de computação para executar o fluxo. Crie e inicie a sessão de computação antes de executar o fluxo de prompt.

Configurar o repositório GitHub

Para criar um repositório bifurcado em sua organização do GitHub, siga as instruções em Configurar o repositório do GitHub. Este repositório usa duas ramificações main e development, para promoções de código e execução de pipeline.

Para criar um novo repositório local, siga as instruções em Clone the repo. Esse clone ajuda você a criar uma nova ramificação de recurso a partir da ramificação de desenvolvimento e incorporar alterações.

Configurar a autenticação entre o GitHub e o Azure

Esse processo configura um segredo do GitHub que armazena informações da entidade de serviço. Para se conectar ao Azure automaticamente, os fluxos de trabalho no repositório podem ler as informações de conexão usando o nome secreto. Para obter mais informações, consulte Usar ações do GitHub para se conectar ao Azure.

  1. Crie uma entidade de serviço seguindo as instruções em Criar entidade de serviço do Azure.
  2. Use a entidade de serviço para configurar a autenticação entre o repositório GitHub e os serviços do Azure seguindo as instruções em Configurar autenticação com o Azure e o GitHub.

Testar o pipeline

Para testar os pipelines, siga as instruções em Atualizar dados de teste. O processo completo envolve as seguintes etapas:

  1. Você eleva um PR de uma ramificação de recurso para a ramificação de desenvolvimento.
  2. O pipeline de PR é executado automaticamente devido à configuração da política de ramificação.
  3. O PR é fundido com o ramo de desenvolvimento.
  4. O pipeline associado dev é executado, resultando na execução completa de CI e CD e no provisionamento ou atualização dos pontos de extremidade do Azure Machine Learning.

As saídas devem ser semelhantes aos exemplos em Exemplo de cenário de execução, avaliação e implantação do prompt.

Usar execução local

Para usar os recursos de execução local, siga estas etapas.

  1. Clone o repositório da seguinte maneira:

    git clone https://github.com/microsoft/genaiops-promptflow-template.git
    
  2. Crie um arquivo .env no nível superior da pasta. Adicione linhas para cada conexão, atualizando os valores para os espaços reservados. Os exemplos no repositório de exemplo usam a conexão AzureOpenAI nomeada aoai e a versão 2024-02-01da API.

    aoai={ "api_key": "<api key>","api_base": "<api base or endpoint>","api_type": "azure","api_version": "2024-02-01"}
    <connection2>={ "api_key": "<api key>","api_base": "<api base or endpoint>","api_type": "<api type>","api_version": "<api_version>"}
    
  3. Prepare o conda local ou o ambiente virtual para instalar as dependências.

    python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv
    
  4. Traga ou escreva seus fluxos no modelo com base nas instruções em Como integrar novos fluxos.

  5. Escreva scripts Python na pasta local_execution semelhante aos exemplos fornecidos.