Os modelos GPT não eram muito populares até novembro de 2022, uma vez que a OpenAI construiu um sucessor de seus modelos de linguagem chamado ChatGPT . A partir de março de 2023, o ChatGPT foi lançado oficialmente com uma API e SDK para integrar o modelo aos seus produtos. Embora haja uma infinidade de aplicativos na superfície, o ChatGPT oferece uma ampla gama de melhorias para diferentes tipos de processos técnicos e de negócios. Então aqui vamos colocar à prova o mais viável, e ver onde isso nos leva.
Compartilharei com você minha visão de como podemos nos beneficiar dos modelos GPT em diferentes níveis de automação, ao mesmo tempo em que fornecerei uma resposta concisa à pergunta: “O que preciso para implementar um modelo GPT em meu produto?”.
Atenção: todos os testes foram feitos durante a fase de pré-lançamento.
Se você já sabe o que são ChatGPT e outros modelos de GPT, pode pular esta parte. Porque aquidefinirei o ChatGPT de diferentes ângulos , além de como explorar seus recursos para buscar dados e nos fornecer as informações necessárias. A maneira mais fácil de fazer isso é simplesmente perguntar ao modelo, e aqui está como o ChatGPT se identifica:
ChatGPT é o modelo GPT mais recente desenvolvido com base no GPT 3.5. Ele tem a capacidade de interagir com o usuário na forma de um diálogo e fornecer respostas a quase todas as perguntas com base em eventos e informações até 2021. Os modelos GPT são altamente capazes de resolver uma variedade de tarefas de Processamento de Linguagem Natural (NLP) com o possibilidade de customização como:
A partir de março de 2023, o ChatGPT está disponível via API e algumas empresas como o Snapchat já o utilizam. Portanto, faz sentido discutir como o ChatGPT pode ser integrado em seu aplicativo do ponto de vista técnico. Há uma certa bifurcação de opções aqui:
Aqui, o modelo funciona como um catálogo inteligente, ajudando o usuário a navegar pelo conteúdo e fazer escolhas mais rapidamente usando a resposta do GPT. No entanto, customizações e personalização não estão disponíveis.
Esses modelos podem ser úteis para criar um sistema de recomendação de chatbot personalizado com base nas ações/desejos do usuário e outros casos de uso. Usando seus próprios dados, o modelo GPT pode ser treinado para introduzir o elemento de personalização. A quantidade de dados necessária para ajustar um modelo GPT depende de vários fatores, como o tamanho e a complexidade do conjunto de dados e o desempenho desejado do modelo. Normalmente, pelo menos algumas centenas de exemplos são necessários para ajustar efetivamente um modelo GPT. No entanto, em domínios complexos, pode levar dezenas de milhares ou mesmo milhões de exemplos para atingir o desempenho ideal do modelo.
Para entender se você precisará ajustar o modelo, recomendo que execute estas 5 etapas:
Lembre-se de que o modelo GPT não é um produto completo que cobre todas as áreas de domínio prontas para uso. Você também precisará do aplicativo para isso e das ferramentas de gerenciamento no back-end. Então, a saída de um modelo GPT deve ser processada com métodos NLP para extrair informações significativas. O modelo retorna uma resposta como texto em várias frases, como uma lista. Essa saída deve ser apresentada na forma de uma palavra ou várias, que serão usadas como filtro ou palavras-chave nas partes seguintes do pipeline. Portanto, isso significa que o modelo GPT também exigirá outros modelos para operar.
Sabendo disso, vamos discutir os modelos GPT como uma ferramenta complementar adequada para diferentes necessidades comerciais e técnicas.
O ChatGPT é muito mais capaz do que seus antecessores, pois foi treinado com a ajuda da técnica de aprendizado por reforço com feedback humano (RLHF). Isso forneceu um nível diferenciado de desempenho em comparação com o não menos popular modelo GPT 3. Por causa disso, o ChatGPT agora é adotado para uma variedade de tarefas técnicas e de negócios usando seus recursos de NLP. Vamos perguntar o que o ChatGPT pensa sobre seus casos de uso de negócios:
Aqui podemos ver o modelo fornecendo uma resposta listando alguns dos casos de uso mais comuns. Como o modelo depende de dados limitados a 2021, não é nem uma lista completa e há várias tarefas de baixo nível que podemos delegar ao ChatGPT. Também podemos tentar restringir nosso foco e extrair algum valor em uma única área de domínio:
Com base nesses exemplos, podemos tirar várias conclusões sobre três dos casos de uso de negócios mais promissores:
ChatGPT é um bot de conversação altamente capaz que pode ser personalizado com seus próprios dados. Como é capaz de entender a pergunta corretamente mesmo com estrutura gramatical quebrada ou partes sintáticas ausentes, pode ser considerada uma solução pronta para sistemas de suporte ao cliente, ou seja, bots de bate-papo.
Continuando com o ponto anterior, os mesmos recursos podem ser usados em atividades de geração de leads, pois na maioria dos casos, o nível de fala do ChatGPT não difere muito do que as pessoas podem escrever.
Em algum momento, os modelos GPT podem se tornar uma alternativa às soluções modernas de inteligência de negócios e análise de dados. Uma vez que eles podem operar em enormes bancos de dados de dados históricos e fornecer informações valiosas aos trabalhadores humanos.
No entanto, quando se trata de análise de dados em tempo real que requer atualizações constantes e as informações mais recentes disponíveis, os modelos GPT parecem desajeitados. O processo de treinamento com a técnica RLHF é complexo e, além disso, exigirá um pipeline de aprendizado de máquina com retreinamento automatizado e redistribuição dos modelos. O que é uma espécie de ciência de foguetes ... por enquanto.
Portanto, aplicativos que dependem muito de atualizações de dados em tempo real ainda não são adequados para modelos GPT. O que mais podemos fazer com isso?
Uma das declarações mais populares sobre modelos de linguagem e redes neurais é que eles podem definitivamente assumir o trabalho de redatores ou pelo menos aumentar a velocidade da escrita em grande medida. Vamos ver se é verdade para hoje. Usaremos dois tipos de solicitações para verificar como o modelo lidará com a redação de artigos sobre o tópico de engenharia de software. O primeiro tipo de solicitação simplesmente declara a ideia geral do texto, enquanto o segundo especifica as coisas que desejo que o modelo descreva e forneça uma opinião de especialista ou argumentos.
Pedido : “Escreva-me um artigo sobre diferentes frameworks PHP.”
Saída ChatGPT:
Pedido : “Escreva-me um artigo sobre a diferença entre os frameworks Laravel e Symfony, e qual framework PHP devo escolher para um aplicativo de comércio eletrônico.”
Saída ChatGPT :
Em ambos os casos, o modelo trata muito bem do ponto de vista da informação. Textos gramaticais e estilísticos também são bons. No entanto, quando se trata do nível de criatividade, facilidade de leitura, raciocínio e justificativa de um determinado ponto, parece muito padrão e pouco convincente.
Embora o ChatGPT certamente possa gerar alguns esquemas para simplificar seus esforços de marketing, ele impõe um problema para os revisores humanos. Como o modelo analisa os dados sozinho, parece difícil encontrar a fonte da informação e provar as afirmações do modelo. Portanto, para ser usado para fins de marketing, o ChatGPT requer um ajuste fino e recursos adicionais, como explicabilidade de IA, para ser eficaz e útil.
Se os modelos GPT falam uma linguagem humana, nada os impede de usar linguagens de programação para escrever aplicativos. Nosso líder do grupo PHP/DevOps, Anton Logvinenko, colocou isso à prova para ver quais resultados podem ser alcançados explorando o modelo para escrever código em PHP para várias funções.
Pedido : “Escreva um código PHP no Laravel Framework que exibirá a lista de usuários”.
Resposta do ChatGPT :
Na maioria dos casos, esse código definitivamente funcionará. Neste caso específico, falta a estrutura do banco de dados, bem como quais campos cada usuário possui, como nome e sobrenome. Portanto, você deve ter em mente que atualmente o ChatGPT não fornece um código pronto que possa ser usado imediatamente.
O caso de uso que posso ver para isso é apoiar desenvolvedores de nível júnior no aprendizado de PHP ou suas estruturas e acelerar um pouco o processo. Embora o código em si seja escrito de maneira sintaticamente correta, há muitas coisas a melhorar.
Anton Logvinenko
Líder de Grupo PHP/DevOps
Solicitação : “Escreva um código PHP que implemente a API REST com endpoints CRUD para o recurso do artigo”.
Resposta do ChatGPT :
Novamente, observando o que os modelos sugerem, o código parece um esforço de nível iniciante em PHP, mas provavelmente funcionará se você configurar o banco de dados, configurar o acesso e assim por diante. Embora este código seja escrito no nível de um desenvolvedor PHP estagiário, ele não usa nenhuma das estruturas disponíveis e não é otimizado nem pode ser dimensionado facilmente para todo o aplicativo. Além disso, existem possíveis ameaças de segurança na forma de injeções de SQL para as quais o ChatGPT deixa lugares, o que não é bom em nenhum caso.
Anton Logvinenko
Líder de Grupo PHP/DevOps
Resposta do ChatGPT :
Na primeira tentativa deste exemplo, eu queria que o ChatGPT gerasse a árvore de itens com base no exemplo fornecido. No entanto, a saída acabou sendo um código de lixo e descobri que não especifiquei que é uma árvore no prompt. Então, na segunda tentativa, adicionei uma explicação do que preciso como saída.
Anton Logvinenko
Líder de Grupo PHP/DevOps
Resposta do ChatGPT :
Na segunda tentativa, o ChatGPT concluiu a tarefa e a árvore parece boa, exceto pela qualidade do código. O que podemos concluir deste pequeno experimento? Obviamente, o ChatGPT ainda não é capaz de substituir os engenheiros de software porque a abordagem e a qualidade da escrita do código ainda são muito superficiais. Mas, no final das contas, essa coisa definitivamente verá melhorias com o tempo. Por enquanto, é muito cedo para falar do ChatGPT como um criador de código automatizado.
Anton Logvinenko Líder do Grupo PHP/DevOps
Se você estiver considerando opções para automatizar parcialmente os fluxos de trabalho de codificação e oferecer suporte a seus desenvolvedores, recomendamos o uso do Copilot . O Copilot usa OpenAI Codex para sugerir trechos de código e funções em tempo real, e provou ser muito mais utilizável por engenheiros de software de nível médio/sênior com um código de qualidade muito melhor. Em comparação com apenas pesquisar no Google o que é necessário para concluir o código, o Copilot permite fluxos de trabalho muito mais rápidos, portanto, é uma alternativa melhor ao que o ChatGPT pode sugerir no momento.
Como sabemos que os modelos GPT podem concluir a maioria das tarefas de NLP, podemos pensar nisso como uma alternativa para treinar seus próprios modelos de linguagem. Seguindo essa tradição, fornecerei o básico questionando o ChatGPT por que ele pode ser uma opção melhor do que treinar um modelo de PNL personalizado:
É importante perceber as limitações dessa abordagem. Como os modelos GPT não têm acesso a dados em tempo real, eles só podem ajudá-lo a iniciar algum serviço sem a coleta inicial de dados. Com o tempo, você poderá coletar dados ativos da interação do modelo com os usuários, mas isso não serve como um hotfix para todas as tarefas específicas do NLP.
Em vez disso, podemos pensar em outras áreas de aplicação em ciência de dados onde os modelos GPT podem ser usados.
Para construir uma classificação, regressão ou modelo de previsão, precisamos passar pelas etapas de análise exploratória de dados (EDA). A EDA nos permite encontrar as relações entre diferentes recursos nos dados e denotar os insights e outliers para entender o motivo desse ou daquele comportamento anômalo. Portanto, a maioria dos projetos de ciência de dados exigirá a execução de 4 etapas:
Com a ajuda do modelo GPT, o pipeline acima pode ser reduzido a uma única solicitação bem formulada para o modelo GPT. Por exemplo, vamos usar essa solicitação sobre os números de vendas da Amazon por trimestres e pedir ao ChatGPT para extrair insights dessas informações.
E aqui, podemos ver quais insights e conclusões o ChatGPT chegou, com base nos dados apresentados anteriormente:
Resposta do ChatGPT :
"Percepções:
Conclusões (motivos):
A saída do modelo pode variar em qualidade, portanto requer supervisão ou ajuste fino do prompt inicial. No entanto, esses recursos podem ser facilmente aplicados para tornar o estágio EDA mais fácil e potencialmente automatizar tarefas de pipeline de ciência de dados.
Os sistemas de recomendação ou mecanismos de recomendação tornaram-se tão comuns quanto os mecanismos de pesquisa em várias plataformas e em vários aplicativos. As recomendações cumprem uma tarefa muito importante: entender as preferências de cada cliente, sugerir conteúdos relevantes e manter o cliente na plataforma o maior tempo possível.
Mas, apesar das vantagens competitivas que os sistemas de recomendação podem oferecer, o fato de que não podemos construir um sem coletar dados, experimentar e treinar um modelo de trabalho parece ser uma das principais razões pelas quais nem todos podem pagar por recomendações. Para começar a recomendar, geralmente precisamos coletar dados sobre nosso conteúdo primeiro e, em seguida, rastrear metodicamente em quais categorias de conteúdo nossos clientes gravitam.
Nessa situação, podemos usar o ChatGPT como uma alternativa aos mecanismos de recomendação, pois ele já contém toneladas de dados. Embora não seja ajustado para o seu conteúdo e não conheça o histórico de pesquisa de seus usuários, ele pode fornecer recomendações bastante específicas quando usamos prompts específicos o suficiente.
Por exemplo, usamos este tipo de pedido : “Quero fazer uma viagem. Tenho um filho de 2 anos e gosto de passar tempo perto do mar. Para onde devo ir?”. Aqui está a saída:
Resposta do ChatGPT : “Fazer uma viagem com uma criança de 2 anos e passar um tempo perto do mar pode ser uma ótima ideia. Aqui estão algumas sugestões de destinos que podem ser uma boa opção para você e sua família:
Vale a pena notar que esses destinos também oferecem uma variedade de outras atividades e atrações para adultos e crianças, como natação, banho de sol, esportes aquáticos, playgrounds e parques temáticos. Também é importante considerar outros fatores, como clima, segurança e acessibilidade antes de tomar uma decisão.”
Se especificarmos nossa solicitação adicionando detalhes, veja como a resposta pode parecer:
Pedido : “Eu quero fazer uma viagem. Tenho um filho de 2 anos e gosto de passar tempo perto do mar, tenho 3000$. Para onde devo ir?”.
Resposta do ChatGPT :
“Fazer uma viagem com uma criança de 2 anos e passar um tempo perto do mar pode ser uma ótima ideia. É importante considerar seu orçamento ao planejar sua viagem. Aqui estão algumas sugestões de destinos que podem ser uma boa opção para você e sua família dentro do seu orçamento:
Vale a pena notar que esses destinos também oferecem uma variedade de outras atividades e atrações para adultos e crianças, como natação, banho de sol, esportes aquáticos, playgrounds e parques temáticos. Além disso, ao viajar com uma criança de 2 anos, é importante considerar acessibilidade, segurança e disponibilidade de acomodações e serviços de boa qualidade, como bons hospitais e creches.”
Como você pode ver, a saída não é enquadrada nos parâmetros que fornecemos como uma solicitação, pois o modelo tenta ir além do prompt inicial. E mesmo esses resultados brutos podem ter um desempenho melhor do que tentar encontrar conteúdo aplicando dezenas de filtros, porque exige que um humano use as palavras certas para obter resultados satisfatórios. Essa é basicamente a maior vantagem das recomendações baseadas em PNL sobre as abordagens padrão.
Como os modelos GPT são treinados em dados de texto, é óbvio que não podemos substituir os modelos de visão computacional dessa maneira. No entanto, o ChatGPT pode simplificar a implementação de certas partes do pipeline de visão computacional, como:
A informação fornecida pelo ChatGPT pode ser útil na análise e preparação de dados para um modelo de visão computacional em diferentes áreas. Por exemplo, em tarefas de OCR, o modelo pode ser usado para arrastar o texto de uma imagem, como no reconhecimento de carteira de identidade. Esta é uma etapa separada na preparação de dados para treinamento.
Como os cartões de identificação têm seu próprio formato e campos diferentes em cada país, a tarefa de reconhecer cartões de identificação pode exigir muitos recursos. Com os modelos GPT, podemos reduzir o tempo necessário para extrair dados textuais das imagens, pois o ChatGPT pode ocupar parte de um pipeline por conta própria.
A engenharia de prompt é basicamente a disciplina de criação de texto de entrada de trabalho que é passado para o modelo GPT como uma tarefa técnica. A saída sempre dependerá de como você explica o que precisa e envolve entender qual é a melhor maneira de apontar cada aspecto de sua solicitação para que o modelo não produza algum Frankenstein para você. Existem vários princípios básicos de desenvolvimento rápido de modelos GPT:
Seja específico : quanto mais específico for o prompt, mais relevante será o texto gerado para a tarefa em questão.
Defina o contexto : quanto mais contexto o modelo tiver, mais clara será a tarefa para o modelo GPT. Defina o prompt no mesmo idioma e na mesma terminologia (usando os recursos da área de domínio) em que deseja receber uma resposta.
Encontre um meio-termo entre o comprimento do prompt e a especificidade : prompts mais longos e específicos podem levar a respostas mais precisas e relevantes, mas também complicam o gerenciamento do modelo. Em alguns casos, prompts complexos e longos podem fazer com que o modelo quebre e escreva uma resposta inacabada, o que experimentamos várias vezes durante nossos testes.
Todos os exemplos a seguir foram feitos explorando o ChatGPT em um estágio de pré-lançamento e mostram resultados muito melhores do que seus predecessores. No entanto, o modelo GPT 4 foi anunciado pela OpenAI no primeiro trimestre de 2023 e usa 500 vezes mais amostras de dados do que o GPT 3. Portanto, também faz sentido acompanhar as datas de lançamento e a situação é muito dinâmica e você pode preferir modelos futuros da OpenAI para o seu produto.
A principal vantagem dos modelos GPT é a capacidade de encontrar maneiras de resolver um problema sem um grande volume inicial de dados. Obviamente, tais modelos não podem substituir completamente a funcionalidade desejada. No entanto, nas primeiras iterações do produto, o uso de tais modelos ajuda a iniciar o desenvolvimento, fornecendo um serviço aos usuários enquanto coleta dados personalizados.
Publicado também aqui .