Introdução geral
O PromptWizard é uma estrutura de código aberto desenvolvida pela Microsoft que usa um mecanismo autoevolutivo que permite que o modelo gere, avalie e aprimore palavras de prompt e exemplos gerados por conta própria, além de melhorar a qualidade da saída por meio de feedback contínuo. Ele pode otimizar prompts de forma autônoma, gerar e selecionar exemplos apropriados, realizar raciocínio e validação e, finalmente, gerar prompts de alta qualidade, reduzindo a carga de trabalho da engenharia manual de prompts por meio de processos automatizados. Os recursos incluem a incorporação dos conceitos de intenção de tarefa e funções de especialistas, o uso de uma abordagem de cadeia mental para otimizar o raciocínio e a combinação de exemplos positivos, negativos e sintéticos para melhorar o desempenho. Ele é adaptável aos requisitos de tarefas de diferentes domínios, estável em termos de desempenho e oferece suporte a vários LLMs em várias escalas.
Lista de funções
- Otimização orientada por feedbackMelhorar continuamente o desempenho da tarefa gerando, criticando e aprimorando dicas e exemplos.
- Geração de exemplos diversosGeração de exemplos sintéticos robustos e atentos à tarefa, otimizando dicas e exemplos.
- Otimização adaptativaOtimização de exemplos de instrução e aprendizado de contexto por meio de um mecanismo autoevolutivo.
- suporte multitarefaAplicar a várias tarefas e grandes modelos de linguagem para melhorar a precisão e a eficiência do modelo.
- Custo-benefícioRedução significativa dos custos de computação e possibilidade de engenharia de ponta eficiente.
Usando a Ajuda
Processo de instalação
- armazém de clones::
git clone https://github.com/microsoft/PromptWizard
cd PromptWizard
- Criar e ativar um ambiente virtual::
- Windows:
bash
python -m venv venv
venv\Scripts\activate
- macOS/Linux:
bash
python -m venv venv
fonte venv/bin/activate
- Windows:
- instalador::
pip install -e .
Diretrizes para uso
O PromptWizard oferece três maneiras principais de usá-lo:
- Otimize o prompt para nenhum exemplo::
- Ideal para cenários em que são necessárias dicas de otimização, mas não há dados de treinamento disponíveis.
- Gerar exemplos de síntese e otimizar dicas::
- Otimize os prompts gerando exemplos sintéticos para tarefas que exigem suporte de exemplos.
- Otimização de dicas usando dados de treinamento::
- Otimização de dicas em conjunto com dados de treinamento existentes para tarefas com suporte de dados avançado.
Configurações de variáveis de ambiente e configuração
- arquivo de configuração::
- fazer uso de
promptopt_config.yaml
para definir a configuração. Por exemplo, para a tarefa GSM8k, você pode usar esse arquivo para definir a configuração.
- fazer uso de
- variável de ambiente::
- fazer uso de
.env
para definir variáveis de ambiente. Por exemplo, para a tarefa GSM8k, você pode definir as seguintes variáveis:texto simples
AZURE_OPENAI_ENDPOINT="XXXXX" # Substitua por seus pontos de extremidade do Azure OpenAI
OPENAI_API_VERSION="XXXX" # Substituir pela versão da API
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="XXXXX" # Crie a implantação do modelo e coloque o nome da implantação
- fazer uso de
fluxo de trabalho
- Seleção de cenários de uso::
- Seleção de cenários de uso apropriados com base nos requisitos da tarefa (sem otimização de exemplo, otimização de exemplo sintético, otimização de dados de treinamento).
- Ambiente de configuração::
- Definir variáveis de configuração e ambiente para chamadas de API.
- Otimização operacional::
- Execute o PromptWizard para otimizar os prompts de acordo com o cenário selecionado.
exemplo típico
Veja a seguir um exemplo simples que mostra como otimizar prompts usando o PromptWizard:
from promptwizard import PromptWizard
# Inicialização do PromptWizard
pw = PromptWizard(config_file="promptopt_config.yaml")
# Selecionar cenários e executar a otimização
pw.optimise_scenario_1()
Com essas etapas, os usuários podem instalar e usar facilmente o PromptWizard para otimização de prompts a fim de melhorar o desempenho da tarefa em modelos de idiomas grandes.