Dica para o projeto
Uma habilidade fundamental na era da IA generativa é a engenharia de prompts, a arte e a ciência de projetar instruções eficazes para orientar os modelos de linguagem na geração dos resultados desejados. Essa disciplina emergente envolve a criação e a otimização de prompts para obter respostas específicas dos modelos de IA, especialmente os LLMs (Large Language Models), moldando a maneira como interagimos e aproveitamos o poder da IA, de acordo com a DataCamp.
Estrutura do depósito
Nome do documento | descrições |
---|---|
Design de dicas básicas | Uma introdução aos conceitos e estruturas da engenharia básica de prontidão. |
Design avançado de tacos | Dicas avançadas para otimizar e estruturar a produção. |
Prática de design avançado de tacos | Um guia prático para aplicar técnicas avançadas de design imediato. |
Entendendo a API da OpenAI | Uma visão geral dos avisos usando a API OpenAI. |
Chamadas de função no LLM | Notebook que demonstra a funcionalidade de chamada de função no modelo de linguagem. |
Dicas integradas Caderno de engenharia | Jupyter Notebook que abrange uma ampla gama de técnicas de design de prompt. |
Resumos de design da Cue
Prompting é o processo de fornecer a um modelo de IA instruções ou entradas específicas para acionar um resultado ou comportamento desejado. É uma interface importante entre humanos e sistemas de IA, permitindo que o usuário oriente efetivamente a resposta do modelo. No contexto dos modelos de linguagem grande (LLMs), o prompting pode ser estendido de consultas simples a conjuntos complexos de instruções, incluindo guias de contexto e estilo.
Os principais aspectos do design imediato incluem:
- Versatilidade: dependendo do modelo de IA e da tarefa, os avisos podem ser em formato textual, visual ou auditivo
- Especificidade: dicas bem elaboradas fornecem detalhes precisos para gerar resultados mais precisos e relevantes
- Otimização iterativa: o design da dica geralmente envolve a interpretação da resposta do modelo e o ajuste das dicas subsequentes para obter melhores resultados
- Diversidade de aplicativos: as dicas são usadas em áreas tão diversas quanto geração de texto, reconhecimento de imagens, análise de dados e IA de conversação
🌟 Dicas sobre a importância da engenharia
- Melhorar o desempenho da IA: palavras-chave bem projetadas podem melhorar significativamente a qualidade e a relevância dos resultados gerados pela IA. Ao fornecer instruções e contexto claros, a engenharia de dicas permite que os modelos gerem respostas mais precisas, coerentes e úteis.
- Personalização e flexibilidade: a Cue Engineering permite que os usuários adaptem as respostas de IA a necessidades e domínios específicos sem a necessidade de retreinamento extensivo do modelo. Essa flexibilidade permite que os sistemas de IA se adaptem melhor a diversos aplicativos em uma variedade de setores.
- Mitigação de viés: o viés no resultado da IA pode ser reduzido por meio da elaboração de palavras-chave que podem orientar o modelo a considerar várias perspectivas ou a se concentrar em fontes específicas de informações imparciais.
- Melhorar a experiência do usuário: a engenharia de dicas eficaz melhora a experiência do usuário ao preencher a lacuna entre a intenção humana e a compreensão da máquina, tornando as ferramentas de IA mais acessíveis e fáceis de usar [4].
- Eficiência de custo: a otimização das palavras-chave permite o uso mais eficiente dos recursos computacionais e reduz a necessidade de modelos maiores e mais caros para obter os resultados desejados.
- Prototipagem e iteração rápidas: a Cue Engineering oferece suporte à experimentação e otimização rápidas de aplicativos de IA, acelerando os ciclos de desenvolvimento e a inovação.
- Considerações éticas: o design cuidadoso do prompt ajuda a garantir que os sistemas de IA sigam as diretrizes éticas e gerem conteúdo apropriado para diferentes contextos e públicos.
- Escalabilidade: uma vez que as dicas eficazes tenham sido desenvolvidas, elas podem ser facilmente escalonadas em toda a organização para permitir interações de IA consistentes e de alta qualidade.
- Aplicativos interdisciplinares: o Cue Engineering conecta conhecimentos técnicos e de domínio, permitindo que os especialistas no assunto aproveitem os recursos de IA sem conhecimento técnico aprofundado.
Dicas para engenharia
- Introdução à engenharia de dicas: uma visão geral fundamental dos conceitos de engenharia de dicas, incluindo princípios básicos, dicas estruturadas, análise comparativa e aplicativos de solução de problemas.
- Estruturas básicas de prompts: explora prompts de uma e várias rodadas, mostrando como criar prompts simples e dialogar com modelos de IA.
- Modelos e variáveis de prompts: uma introdução ao uso de modelos e variáveis em prompts, com foco na criação de estruturas de prompts flexíveis e reutilizáveis com ferramentas como o Jinja2.
- Zero Sample Prompting: demonstra como os modelos de IA podem ser orientados para concluir tarefas por meio da especificação direta da tarefa e de técnicas de solicitação baseadas em funções na ausência de um exemplo concreto.
- Sample Less Learning e Contextual Learning: abrange técnicas que melhoram o desempenho em tarefas específicas sem a necessidade de ajuste fino, fornecendo um pequeno número de exemplos para orientar a resposta da IA.
- Dica de Chain Thinking (CoT): Incentive os modelos de IA a dividir problemas complexos em processos de raciocínio passo a passo para melhorar a solução de problemas.
- Autoconsistência e raciocínio multipath: explorando métodos para gerar diversos caminhos de raciocínio e agregando resultados para melhorar a precisão e a confiabilidade dos resultados de IA.
- Geração restrita e orientada: concentra-se na definição de restrições nos resultados do modelo e na implementação da geração baseada em regras para controlar e orientar a resposta da IA.
- Dicas de função: demonstra como atribuir funções específicas a modelos de IA e projetar descrições de função eficazes para obter o comportamento ou a experiência necessários.
- Prompts de divisão de tarefas: Explore técnicas para dividir tarefas complexas em subtarefas menores e gerenciáveis em prompts.
- Cue Chains and Sequences (Cadeias e sequências de dicas): demonstra como conectar várias dicas em um fluxo lógico para lidar com tarefas complexas de várias etapas.
- Engenharia de diretivas: concentra-se na criação de diretivas claras e eficientes para modelos de linguagem, equilibrando a especificidade e a generalidade para otimizar o desempenho.
- Técnicas de otimização de dicas: abrange métodos avançados para melhorar as dicas, incluindo testes A/B e otimização iterativa com base em métricas de desempenho.
- Lidar com a ambiguidade e melhorar a clareza: explorar técnicas para reconhecer e resolver prompts ambíguos e estratégias para escrever prompts mais claros e eficazes.
- Gerenciamento do tamanho e da complexidade dos prompts: explore estratégias para gerenciar prompts longos ou complexos, incluindo técnicas de resumo e fragmentação.
- Negative Cues and Avoiding Undesired Outputs (Dicas negativas e como evitar resultados indesejados): mostra como usar exemplos negativos e restrições para desviar o modelo de respostas indesejadas.
- Formatos e estruturas de dicas: investiga vários formatos de dicas e elementos estruturais para otimizar as respostas do modelo de IA.
- Prompts específicos de tarefas: concentre-se na criação de prompts para tarefas específicas, como resumos, questionários, geração de códigos e redação criativa.
- Prompts multilíngues e entre idiomas: Explore as técnicas de design de prompts que funcionam de forma eficaz em vários idiomas, bem como o design de prompts para tarefas de tradução.
- Considerações éticas na engenharia de dicas: foco nas dimensões éticas de evitar preconceitos e criar dicas inclusivas.
- Medidas de segurança e proteção imediatas: abrange técnicas para evitar a injeção imediata e implementar a filtragem de conteúdo para garantir a segurança dos aplicativos de IA.
- Avaliação da validade da pista: Explore métodos para avaliar e medir a validade da pista, incluindo técnicas de avaliação manuais e automatizadas.
Dicas básicas de dicas
A engenharia de dicas abrange uma série de técnicas criadas para otimizar a interação com modelos de IA. Esses métodos básicos formam a base para estratégias mais avançadas e são habilidades essenciais para quem deseja utilizar todo o potencial das ferramentas de IA generativa.
As dicas de amostra zero são a técnica mais simples, ou seja, dar instruções ou fazer perguntas diretamente à IA sem contexto ou exemplos adicionais [1][2]. Essa abordagem é adequada para tarefas simples ou para obter respostas rapidamente. Por exemplo, perguntar "Onde fica a capital da França?" é um prompt de amostra zero.
As dicas de amostra única adicionam um exemplo às dicas de amostra zero para orientar a resposta da IA [3]. Essa técnica é particularmente útil quando se trata de formatos ou estilos específicos. Por exemplo, para gerar uma descrição de produto, pode ser fornecido um exemplo de descrição e, em seguida, solicitado que se gere outra descrição para um produto diferente.
A dica "sample less" amplia ainda mais esse conceito, fornecendo vários exemplos à IA [2]. Essa abordagem é particularmente eficaz para tarefas complexas ou quando a consistência da saída é necessária. Ao fornecer vários exemplos do formato ou estilo de saída desejado, a IA pode entender e replicar melhor os padrões.
As solicitações baseadas em funções influenciam significativamente o tom e o conteúdo da resposta de uma IA, atribuindo-lhe uma função ou identidade específica [1]. Por exemplo, instruir a IA a "brincar de especialista em suporte técnico" antes de fazer uma pergunta pode resultar em uma resposta mais técnica e de apoio.
O reenquadramento de prompts é uma técnica para orientar a IA a fornecer perspectivas diferentes ou respostas com mais nuances, reformulando ou reestruturando os prompts [3]. Essa abordagem é particularmente útil quando os resultados iniciais não são satisfatórios ou quando vários aspectos de um tópico precisam ser explorados. Por exemplo, em vez de perguntar "Quais são os benefícios da energia renovável?" ela poderia ser reformulada para "Como a energia renovável afeta os diferentes setores da economia?"
A combinação de prompts combina várias instruções ou perguntas em um único prompt abrangente [3]. Essa técnica é valiosa para obter várias respostas ou lidar com perguntas complexas. Por exemplo, a combinação de "Explique a diferença entre hospedagem compartilhada e hospedagem VPS" e "Recomende o que é mais adequado para pequenos sites de comércio eletrônico" em um único prompt resulta em uma resposta mais abrangente e personalizada.
Essas técnicas fundamentais fornecem uma base sólida para uma engenharia de dicas eficaz, permitindo que os usuários orientem os modelos de IA para gerar resultados mais precisos, relevantes e úteis em uma ampla gama de aplicações.
Estratégia avançada de sinalização
As técnicas avançadas de engenharia de dicas utilizam métodos mais sofisticados para aprimorar o desempenho e os recursos de modelos de linguagem grandes. Esses métodos vão além das dicas básicas e têm como objetivo obter raciocínios mais complexos e resultados específicos de tarefas.
Prompts de Pensamento Coerente (CoT)
Essa técnica melhora o desempenho do modelo em tarefas de raciocínio complexas, fornecendo uma série de estágios intermediários de raciocínio. As dicas de pensamento coerente permitem que o modelo de linguagem divida problemas complexos em etapas menores e mais gerenciáveis, gerando, assim, resultados mais precisos e lógicos.
autocompatibilidade
Como um aprimoramento da CoT, a abordagem de autoconsistência envolve a amostragem de vários caminhos de raciocínio e a seleção da resposta mais consistente. Essa abordagem é particularmente eficaz em problemas em que existem várias soluções válidas, pois permite que o modelo explore várias estratégias de raciocínio antes de determinar o resultado mais confiável.
ReAct
ReAct A técnica de IA combina raciocínio e ação, com o modelo gerando tanto o processo de raciocínio quanto as ações específicas da tarefa. Essa abordagem permite que a IA planeje, execute e adapte dinamicamente sua abordagem, tornando-a ideal para cenários complexos de solução de problemas que exigem interação com fontes externas de informações.
Engenharia de dicas multimodais
Essa técnica avançada envolve a criação de avisos que incorporam vários tipos de entrada, como texto, imagens e áudio. Ao aproveitar diversos tipos de dados, as dicas multimodais tornam as interações de IA mais holísticas e contextualmente relevantes, imitando a percepção humana e os recursos de comunicação.
Otimização de alertas em tempo real
Essa tecnologia emergente fornece feedback imediato sobre a validade dos prompts, avaliando a clareza, a possível tendência e o alinhamento dos prompts com o resultado desejado. Essa orientação em tempo real simplifica o processo de elaboração de prompts para usuários novatos e experientes.
Dicas proativas
Essa abordagem dinâmica permite que as dicas sejam adaptadas com base na interação e no feedback do usuário. As dicas proativas permitem que o modelo de IA adapte suas respostas em tempo real, aumentando assim a relevância e a eficácia do resultado durante toda a interação.
Dicas de geração de conhecimento
Essa técnica usa modelos de linguagem para gerar conhecimento relevante antes de responder a uma pergunta, aprimorando seu raciocínio de senso comum. Ao gerar informações relevantes primeiro e depois incorporá-las à resposta, o modelo pode fornecer uma resposta mais perspicaz e contextualizada.
Essas técnicas avançadas representam a vanguarda da engenharia de dicas, fornecendo ferramentas avançadas para otimizar o desempenho da IA em uma ampla gama de domínios de aplicativos e áreas problemáticas.
pensamento lógico
O raciocínio Coherent Thinking (CoT) é uma técnica avançada de engenharia de prompt projetada para aprimorar os recursos de raciocínio de grandes modelos de linguagem. O método envolve a geração de vários caminhos de raciocínio para um determinado problema e a seleção da solução mais consistente ou abrangente. Ao executar o raciocínio CoT várias vezes, os engenheiros de dicas podem aprimorar a capacidade de um modelo de resolver problemas que exigem raciocínio lógico e várias etapas.
Pontos principais do raciocínio de CoT
- decodificação de autocompletarSelecione as conclusões mais comuns em raciocínios múltiplos.
- Dicas baseadas em complexidadeSelecione o resultado com a cadeia de inferência mais longa.
- intervenção humanaCorreção da cadeia de inferência com a ajuda da correção manual quando os resultados da inferência são significativamente inconsistentes.
- Melhorar a precisãoMelhorar o desempenho do modelo em tarefas que envolvem raciocínio, computação e tomada de decisões.
Ao utilizar o raciocínio de CoT, os engenheiros de pistas podem criar sistemas de IA mais robustos e confiáveis, capazes de lidar com problemas complexos em diversos domínios.
Exemplo de um prompt do ReAct
O método de solicitação ReAct (Reasoning and Acting) é uma técnica de alto nível que combina processos de raciocínio e ações específicas de tarefas para aprimorar os recursos de solução de problemas dos modelos de linguagem grande (LLMs). Essa abordagem permite que os LLMs gerem alternadamente etapas de raciocínio linguístico e executem ações, levando a uma solução de problemas mais eficiente e dinâmica.
Uma dica típica do ReAct
- PensamentoProcesso de raciocínio do modelo: O processo de raciocínio do modelo.
- AçãoTarefa: Uma tarefa ou consulta específica que precisa ser executada.
- ObservaçãoResultado: Os resultados ou informações obtidos de uma ação.
exemplo típico
problemasQual é a capital do país onde a Torre Eiffel está localizada?
- reflexõesPara responder a essa pergunta, eu precisaria descobrir onde está localizada a Torre Eiffel e depois identificar a capital desse país.
- ato: Pesquise por "Location of the Eiffel Tower" (Localização da Torre Eiffel).
- prestar atençãoTorre Eiffel: A Torre Eiffel está localizada em Paris, na França.
- reflexões: Agora que sei que a Torre Eiffel fica na França, preciso pesquisar a capital francesa.
- atoPesquise por "capital da França".
- prestar atenção: A capital da França é Paris.
- reflexões: Tenho todas as informações necessárias para responder a essa pergunta.
- atoForneça respostas.
- soluçãoA capital do país onde a Torre Eiffel está localizada é Paris, na França.
Aplicação do prompt do ReAct
- perguntas e respostasAprimorar a capacidade dos modelos de decompor problemas complexos e obter informações relevantes.
- Automação de tarefasOrientação: Orientar o modelo por meio de um processo de várias etapas, combinando raciocínio e ação.
- Interação com bases de conhecimento externasPermite que o modelo recupere e incorpore informações adicionais para apoiar seu raciocínio.
- Tomada de decisõesMelhorar a capacidade dos modelos de avaliar opções e fazer escolhas informadas com base nos dados disponíveis.
Ao implementar o prompt do ReAct, os desenvolvedores e pesquisadores podem criar sistemas de IA mais robustos e adaptáveis, capazes de realizar tarefas de raciocínio complexas e cenários realistas de solução de problemas.
Sugestão de estímulo direcionado
O Directional Stimulus Prompting (DSP) é uma estrutura inovadora para orientar grandes modelos de linguagem (LLMs) a gerar resultados específicos desejados. A técnica utiliza um modelo de estratégia pequeno e ajustável para gerar Directional Stimulus Prompts auxiliares para cada instância de entrada, que atuam como dicas diferenciadas para orientar os LLMs na geração dos resultados desejados.
Principais recursos do DSP
- Geração de estímulos orientados usando um modelo de estratégia pequeno e ajustável (por exemplo, T5).
- Otimização por meio de ajuste fino supervisionado e aprendizado intensivo.
- Pode ser aplicado a uma variedade de tarefas, incluindo geração de resumo, geração de resposta de diálogo e raciocínio encadeado.
- Melhorar significativamente o desempenho com dados de anotação limitados, por exemplo, com apenas 80 diálogos usados, convertendo o ChatGPT O desempenho no conjunto de dados MultiWOZ foi aprimorado em 41,41 TP3T.
Com o uso do DSP, os pesquisadores e profissionais podem aprimorar os recursos do LLM sem modificar diretamente seus parâmetros, oferecendo uma abordagem flexível e eficiente para a engenharia de dicas.
Dicas de geração de conhecimento
O Prompting de Conhecimento Gerado melhora o desempenho dos modelos de IA, solicitando que eles gerem fatos relevantes antes de responder a uma pergunta ou concluir uma tarefa. Esse processo de duas etapas envolve a geração de conhecimento (em que o modelo gera informações relevantes) e a integração do conhecimento (em que essas informações são usadas para formar respostas mais precisas e contextualizadas).
Principais benefícios
- Aprimore a precisão e a confiabilidade do conteúdo gerado por IA.
- Aprimorar a compreensão contextual de determinados tópicos.
- Capacidade de ancorar respostas a informações factuais.
- O conhecimento pode ser ampliado ainda mais com a incorporação de fontes externas, como APIs ou bancos de dados.
Ao solicitar que o modelo considere primeiro os fatos relevantes, o Knowledge Generation Prompting Method ajuda a criar resultados mais informativos e sensatos, especialmente em tarefas complexas ou ao lidar com tópicos especializados.
Dicas sobre técnicas práticas de engenharia
Este Guia Técnico de Engenharia de Dica é baseado inteiramente em NirDiamant Um repositório de práticas excelentes. Todo o conteúdo e o notebook Jupyter são protegidos por direitos autorais do repositório original:Engenharia imediata.
Estou adicionando isso aqui porque é um ótimo recurso de aprendizado, com todos os direitos autorais Engenharia imediata Armazém.
🌱 Conceitos básicos
- Perfil do Projeto Tip
Visão geral 🔎
Uma introdução detalhada aos conceitos subjacentes à IA e à engenharia de dicas de modelos de linguagem.
Implementado 🛠️
Combina explicações teóricas com demonstrações práticas que abrangem conceitos fundamentais, sugestões estruturadas, análise comparativa e aplicativos de solução de problemas.
- Estrutura básica de dicas
Visão geral 🔎
Explore duas estruturas básicas de dicas: dicas de uma rodada e dicas de várias rodadas (diálogos).
Implementado 🛠️
Demonstração de prompts de uma e várias rodadas, modelos de prompts e cadeias de diálogo usando o modelo GPT da OpenAI e o LangChain.
- Modelos e variáveis de dicas
Visão geral 🔎
Descreve como criar e usar modelos de prompt com variáveis usando Python e o mecanismo de modelo Jinja2.
Implementado 🛠️
Envolve a criação de modelos, inserção de variáveis, conteúdo condicional, processamento de listas e integração com a API OpenAI.
🔧 Tecnologias principais
- Dica de amostragem zero
Visão geral 🔎
Explorando dicas de amostra zero para permitir que os modelos de linguagem concluam tarefas sem exemplos específicos ou treinamento prévio.
Implementado 🛠️
Demonstra a atribuição direta de tarefas, a solicitação baseada em função, a especificação de formato e a inferência em várias etapas usando OpenAI e LangChain.
- Aprendizagem sem amostragem vs. aprendizagem contextual
Visão geral 🔎
Explore exemplos de técnicas de aprendizagem contextual e de menos aprendizagem com os modelos GPT da OpenAI e a biblioteca LangChain.
Implementado 🛠️
Práticas recomendadas para implementar o aprendizado básico e avançado de amostras menores, aprendizado contextual e seleção e avaliação de exemplos.
- Dicas de Chain Thinking (CoT)
Visão geral 🔎
Apresentando dicas do Chain Thinking (CoT) para orientar os modelos de IA na divisão de problemas complexos em processos de raciocínio passo a passo.
Implementado 🛠️
Abrange técnicas básicas e avançadas de CoT, aplica-as a uma variedade de cenários de solução de problemas e as compara a solicitações padrão.
Estratégia avançada
- Autoconsistência e raciocínio de múltiplos caminhos
Visão geral 🔎
Explore técnicas para gerar diversos caminhos de inferência e agregar resultados para melhorar a qualidade das respostas geradas pela IA.
Implementado 🛠️
Demonstrar a criação de diversos prompts de inferência, gerando várias respostas, implementando métodos de agregação e aplicando verificações de autoconsistência.
- Geração com restrições e bootstrapped
Visão geral 🔎
Concentre-se em técnicas para definir restrições nos resultados do modelo e implementar a geração baseada em regras.
Implementado 🛠️
Use o PromptTemplate da LangChain para criar prompts estruturados, impor restrições e explorar técnicas de geração baseadas em regras.
- Dicas de personagens
Visão geral 🔎
Explore técnicas para atribuir funções específicas a modelos de IA e projetar descrições de funções eficazes.
Implementado 🛠️
Demonstrar a criação de prompts baseados em funções, atribuindo funções a modelos de IA e otimizando as descrições de funções para vários cenários.
🚀 Realização avançada
- Dicas de divisão de tarefas
Visão geral 🔎
Explore técnicas para dividir tarefas complexas e vincular subtarefas em prompts.
Implementado 🛠️
Envolve a análise do problema, a definição de subtarefas, a engenharia de dicas de objetivos, a execução sequencial e a síntese dos resultados.
- Encadeamento e serialização de dicas
Visão geral 🔎
Demonstrar como conectar vários prompts e criar fluxos lógicos para tarefas complexas orientadas por IA.
Implementado 🛠️
Explore cadeias de dicas básicas, dicas sequenciais, geração de dicas dinâmicas e tratamento de erros em cadeias de dicas.
- engenharia de comando
Visão geral 🔎
Concentre-se na criação de instruções claras e eficazes para modelos de linguagem, equilibrando especificidade e generalidade.
Implementado 🛠️
Envolve a criação e a otimização de instruções, a experimentação de diferentes estruturas e a realização de melhorias iterativas com base nas respostas do modelo.
🎨 Otimização e aprimoramento
- Técnicas de otimização de dicas
Visão geral 🔎
Explore técnicas avançadas para otimizar prompts com foco em testes A/B e aprimoramento iterativo.
Implementado 🛠️
Demonstrar um teste A/B imediato, um processo de aprimoramento iterativo e uma avaliação de desempenho usando métricas relevantes.
- Lidar com a ambiguidade e melhorar a clareza
Visão geral 🔎
Concentra-se em técnicas para reconhecer e resolver prompts ambíguos e escrever prompts mais claros.
Implementado 🛠️
Inclui a análise de prompts ambíguos, a implementação de estratégias para resolver a ambiguidade e a exploração de técnicas para escrever prompts mais claros.
- Gerenciamento do comprimento e da complexidade do taco
Visão geral 🔎
Explore técnicas para gerenciar o tamanho e a complexidade do prompt ao usar modelos de linguagem grandes.
Implementado 🛠️
Demonstrar técnicas para equilibrar detalhes com brevidade e estratégias para lidar com contextos longos, incluindo fragmentação, resumo e processamento iterativo.
🛠️ Aplicativos especializados
- Pistas negativas e como evitar saídas inesperadas
Visão geral 🔎
Explorando dicas negativas e técnicas para evitar resultados indesejados de grandes modelos de linguagem.
Implementado 🛠️
Inclui exemplos de negativas de base, exclusões explícitas, implementação de restrições usando LangChain e métodos para avaliar e aprimorar dicas negativas.
- Estrutura e formatação de dicas
Visão geral 🔎
Explore uma variedade de formatos de dicas e elementos estruturais e demonstre seu impacto nas respostas do modelo de IA.
Implementado 🛠️
Demonstrar a criação de vários formatos de dicas, a integração de elementos estruturais e a comparação de respostas a diferentes estruturas de dicas.
- Dicas específicas para tarefas
Visão geral 🔎
Explore a criação e o uso de prompts para tarefas específicas, como resumos de textos, questionários, geração de códigos e redação criativa.
Implementado 🛠️
Isso inclui a criação de modelos de prompt específicos para tarefas, sua implementação usando o LangChain, sua execução com entradas de amostra e a análise do resultado para cada tipo de tarefa.
🌍 Aplicativos avançados
- Dicas multilíngues e entre idiomas
Visão geral 🔎
Exploração de técnicas para a criação de prompts eficazes para tarefas de tradução multilíngue e de idiomas.
Implementado 🛠️
Isso inclui a criação de prompts multilíngues, a implementação da detecção e adaptação de idiomas, a criação de prompts de tradução entre idiomas e o tratamento de vários sistemas de escrita e conjuntos de caracteres.
- Considerações éticas sobre a engenharia de tacos
Visão geral 🔎
Explore as dimensões éticas da engenharia de prompts, com foco em evitar preconceitos e criar prompts inclusivos e equitativos.
Implementado 🛠️
Inclui métodos para identificar preconceitos em prompts, implementar estratégias para criar prompts inclusivos e avaliar e melhorar a qualidade ética do resultado da IA.
- Dicas de segurança e proteção
Visão geral 🔎
Destaca como evitar a injeção de prompt e implementar a filtragem de conteúdo em prompts para proteger aplicativos de IA.
Implementado 🛠️
Inclui técnicas para evitar a injeção imediata, implementações de filtragem de conteúdo e testes da eficácia das medidas de segurança.
- Avaliação da eficácia dos prompts
Visão geral 🔎
Explore métodos e técnicas para avaliar a validade das dicas de modelos de linguagem de IA.
Entendendo a API do modelo de linguagem grande (LLM)
Vamos falar sobre a API Large Language Model (LLM).
Há duas maneiras de usar a API: uma é enviar uma solicitação HTTP direta e a outra é instalar o pacote oficial do OpenAI via pip, que está sempre atualizado com os recursos mais recentes.
pip install openai
Como esse formato de API é muito popular, muitos outros provedores oferecem APIs no mesmo formato, que é chamado de "compatível com OpenAI".
Lista de fornecedores que oferecem APIs compatíveis com a OpenAI
Abaixo está uma lista de fornecedores compatíveis com a API da OpenAI, e os desenvolvedores podem tirar proveito desses serviços de forma semelhante ao que a OpenAI oferece:
- Groq
- Groq A maioria das APIs fornecidas é compatível com as bibliotecas de clientes da OpenAI. Os usuários só precisam alterar o
base_url
e usar a chave de API do Groq para configurar seus aplicativos para execução no Groq.
- Groq A maioria das APIs fornecidas é compatível com as bibliotecas de clientes da OpenAI. Os usuários só precisam alterar o
- IA Mistral
- A Mistral fornece uma API que suporta solicitações compatíveis com OpenAI, permitindo que os desenvolvedores acessem uma ampla variedade de modelos por meio desse serviço.
- Cara de abraço
- A Hugging Face fornece acesso a vários modelos por meio de uma API configurada de forma semelhante à API da OpenAI. A Hugging Face é conhecida por sua grande biblioteca de modelos.
- IA do Google Vertex
- O Google Vertex AI permite que os usuários interajam com grandes modelos de linguagem de forma consistente com a API OpenAI.
- Microsoft Azure OpenAI
- A Microsoft fornece acesso aos modelos OpenAI por meio de sua plataforma Azure para facilitar a integração com os serviços Azure existentes.
- Antrópica
- Os modelos do Anthropic também podem ser acessados por meio de uma API que imita a estrutura do OpenAI, permitindo interações semelhantes.
Esses provedores permitem que os desenvolvedores aproveitem os diferentes recursos de IA e, ao mesmo tempo, mantenham a compatibilidade com a estrutura familiar da API OpenAI para facilitar a integração em aplicativos e fluxos de trabalho.
Há também provedores que usam arquiteturas e tipos de API diferentes, mas podemos usar algo como o litellm Essa biblioteca de clientes fornece um pacote de cliente unificado para diferentes tipos de modelos de linguagem grandes.
Além disso, empresas como Chave de portal Esse gateway fornece APIs compatíveis com a OpenAI para qualquer modelo de linguagem grande.
Neste artigo, você aprenderá sobre os diferentes parâmetros da API.
Principais parâmetros
Temperatura
- descriçõesO parâmetro : Temperatura controla a aleatoriedade da saída do modelo, variando de 0 a 2.
- afetar (geralmente de forma adversa):
- Valor baixo (0-0,3)O resultado é mais determinístico e focado, muitas vezes repetindo respostas semelhantes.
- Médio (0,4-0,7):: Encontre um equilíbrio entre criatividade e coerência.
- Valor alto (0,8-2)Geram resultados mais diversificados e criativos, mas podem produzir resultados sem sentido.
- exemplo típico:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Complete a frase: 'A chave para a felicidade é'."}] , temperature=1 )
Top_p
- descriçõesEsse parâmetro permite a amostragem de núcleos, em que o modelo considera apenas os núcleos mais altos.
p
Qualidade probabilística do resultado. - reinoToken: De 0 a 1, os valores mais baixos limitam a saída ao Token mais provável.
- exemplo típico:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Write a poem."}] , top_p=0.9 )
Tokens máximos
- descriçõesDefine o número máximo de Token Quantidade (palavras ou partes de palavras).
- valor padrãoPara a maioria dos modelos, isso geralmente é definido para um máximo de 4096 tokens.
- exemplo típico:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Tell a story."}] , max_tokens=150 )
Chamada de função
- descriçõesAPIs externas: Esse recurso permite que o modelo interaja com APIs ou serviços externos chamando funções predefinidas com base na entrada do usuário.
- exemplo típico:
functions = [ { "name": "get_current_weather", "description": "Obter o clima atual de um local." , "parameters": { "type": "object", "properties": { "properties": { "location": {"type": "string"}, "description": {"type": "string", "properties": { "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["location": ["celsius", "fahrenheit"]} "required": ["location"] } } ] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "How's the weather in New York?"}] , functions=functions, function_call={{"name": "get_current_weather"} )
Funções em chamadas de API
Compreender as funções envolvidas em uma chamada de API ajuda a estruturar a interação de forma eficaz.
Função do sistema
- metaInstruções de alto nível: fornece instruções ou contexto de alto nível que orientam o comportamento do modelo durante todo o diálogo.
- usoDefinido no início da matriz de mensagens para estabelecer o tom ou as regras da interação.
- exemplo típico::
mensagens = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What can you do?"} {"role": "user", "content": "What can you do?"} ]
função do usuário
- metaRepresenta a entrada de um usuário humano, orientando o diálogo por meio de consultas ou prompts.
- usoMais comumente usado em interações para fazer perguntas ou fornecer declarações.
- exemplo típico::
{"role": "user", "content": "Can you explain how OpenAI works?"}
Função de assistente
- metarepresenta a resposta gerada pelo modelo com base nas entradas do usuário e nos comandos do sistema.
- usoQuando responde a uma consulta do usuário, o modelo assume automaticamente essa função.
- exemplo típico::
{"role": "assistant", "content": "A OpenAI usa técnicas avançadas de aprendizado de máquina para gerar texto."}
Outros parâmetros
corrente (de água, etc.)
- descriçõesSe definido como true, permite o streaming ao gerar respostas parciais, para aplicativos em tempo real.
Problemas de registro
- descriçõesToken: retorna a probabilidade logarítmica da previsão do token, que é usada para entender o comportamento do modelo e melhorar o resultado.
resumos
A API OpenAI oferece um conjunto avançado de parâmetros e funções que os desenvolvedores podem usar para criar aplicativos altamente interativos. Ao ajustar parâmetros como a temperatura e fazer uso efetivo de funções estruturadas, os usuários podem adaptar as respostas a necessidades específicas e, ao mesmo tempo, garantir a clareza e o controle do diálogo.
Abaixo estão exemplos de como usar as APIs de vários provedores compatíveis com o OpenAI, bem como exemplos de aplicativos do LLM (Lightweight Large Language Model).
Exemplo de uso da API OpenAI de um provedor compatível
1. Groq
Para usar a API do Groq, você precisa definir o URL de base e fornecer a chave da API do Groq.
importar os
importar openai
cliente = openai.
base_url="https://api.groq.com/openai/v1", api_key=os.environ.
api_key=os.environ.get("GROQ_API_KEY"))
)
response = client.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Tell me a joke."}]
)
print(response.choices[0].message['content'])
2. IA Mistral
IA Mistral Ele também fornece uma API compatível com OpenAI, e aqui está como usá-la:
solicitações de importação
url = "https://api.mistral.ai/v1/chat/completions"
headers = {
"Authorisation": f "Bearer {os.environ.get('MISTRAL_API_KEY')}",
"Content-Type": "application/json"
}
dados = {
"model": "mistral-7b", "role": [{"role": "mistral_API_KEY", "Content-Type": "application/json" }
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
3. Cara de abraço
Os tokens de acesso são necessários para usar a API Hugging Face. Abaixo está o código de exemplo:
solicitações de importação
url = "https://api-inference.huggingface.co/models/gpt2"
headers = {
"Authorization": f "Bearer {os.environ.get('HUGGINGFACE_API_KEY')}"
}
dados = {
"inputs": "Once upon a time in a land far away,"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()[0]['generated_text'])
4. IA do Google Vertex
O código a seguir pode ser usado para interagir com o Google Vertex AI:
from google.cloud import aiplatform
aiplatform.init(project='your-project-id', location='us-central1')
resposta = aiplatform.gapic.PredictionServiceClient().predict(
endpoint='projects/your-project-id/locations/us-central1/endpoints/your-endpoint-id',
instances=[{"content": "Who won the World Series in 2020?"}], )
)
print(response.predictions)
5. Microsoft Azure OpenAI
A seguir, um exemplo de código que chama o serviço OpenAI do Azure:
solicitações de importação
url = f "https://your-resource-name.openai.azure.com/openai/deployments/your-deployment-name/chat/completions?api-version=2023-05-15"
headers = {
"Content-Type": "application/json", "api-key": os.environ.
"api-key": os.environ.get("AZURE_OPENAI_API_KEY")
}
dados = {
"messages": [{"role": "user", "content": "What's the weather today?"}], "model": "gpt-3": [{"role": "user", "content": "what's the weather today?
"model": "gpt-35-turbo"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
6. Antrópica
Usando a tecnologia Anthropic Claude O código de amostra para o modelo e sua API é mostrado abaixo:
solicitações de importação
url = "https://api.anthropic.com/v1/complete"
headers = {
"Authorisation": f "Bearer {os.environ.get('ANTHROPIC_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"prompt": "Explique a física quântica em termos simples.",
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['completion'])
O exemplo mostra como utilizar efetivamente um modelo leve e, ao mesmo tempo, obter resultados significativos em uma tarefa de geração de texto.
Fonte:
https://www.coltsteele.com/tips/understanding-openai-s-temperature-parameter
https://community.make.com/t/what-is-the-difference-between-system-user-and-assistant-roles-in-chatgpt/36160
https://arize.com/blog-course/mastering-openai-api-tips-and-tricks/
https://learn.microsoft.com/ko-kr/Azure/ai-services/openai/reference
https://community.openai.com/t/the-system-role-how-it-influences-the-chat-behavior/87353
https://community.openai.com/t/understanding-role-management-in-openais-api-two-methods-compared/253289
https://platform.openai.com/docs/advanced-usage
https://platform.openai.com/docs/api-reference
https://console.groq.com/docs/openai
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://www.reddit.com/r/LocalLLaMA/comments/16csz5n/best_openai_api_compatible_application_server/
https://docs.gptscript.ai/alternative-model-providers
https://towardsdatascience.com/how-to-build-an-openai-compatible-api-87c8edea2f06?gi=5537ceb80847
https://modelfusion.dev/integration/model-provider/openaicompatible/
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://docs.gptscript.ai/alternative-model-providers
https://console.groq.com/docs/openai
Tip Project Primer II (Chamadas de função)
As seguintes bibliotecas, ferramentas e configurações são necessárias para o carregamento.
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/function_calling.ipynb
Primeiros passos com o Cue Engineering
As seguintes bibliotecas, ferramentas e configurações são necessárias para o carregamento.
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/prompt_engineering.ipynb