Como a maior parte da Internet, fiquei profundamente interessado em Inteligência Artificial (IA) na forma de Large Language Models (LLMs) como o GPT-3 da OpenAI e seu parente ChatGPT inteligente, tagarela e experiente em código.
Muitos anos atrás, lembro-me de ter lido sobre como Common Lisp era a linguagem para IA. Como um desenvolvedor razoavelmente verde que havia acabado de sair do ActionScript depois que Steve Jobs matou o Flash e que ainda estava reinventando as rodas em PHP, WordPress e JavaScript, me senti perdido no mar, tentando até mesmo entender por onde começar a me envolver no mundo do IA.
Então, quando o Python se tornou a linguagem do aprendizado de máquina (ML), lutei para entender como aprender e grocar um ecossistema totalmente novo — especialmente um em que não estava claro qual versão da linguagem eu deveria usar.
Felizmente, tudo isso mudou:
Qualquer um de nós pode agora pegar uma ampla gama de ferramentas de Processamento de Linguagem Natural (NLP) ou usar Interfaces de Programação de Aplicativos (APIs) para fazer com que modelos complicados de aprendizado profundo processem nossos dados, finjam ser nosso treinador de vida ou gerem fotos engraçadas de gatos para nós.
Este campo em rápida expansão está cheio de oportunidades interessantes para explorar essas novas ferramentas, envolver-se com tarefas de computação de maneiras que só poderíamos imaginar anteriormente e educar uns aos outros sobre o ecossistema.
Ele ainda vem com novos subcampos legais como Prompt Engineering , mas, ao mesmo tempo, pode estar cheio de informações fúteis, imprecisas e imaginárias - e gerar ainda mais podridão de blog de SEO por meio de agitações laterais . Ele também abre uma série de vulnerabilidades emergentes como “ Prompt Injection ” e fornece uma superfície de ataque amorfa e crescente.
É também o mais perto que já cheguei de sentir a sobrenaturalidade da programação . Nesta nova fronteira, imaginei a criação de um sistema mágico e imaginei o engenheiro imediato como um tecnomante .
As pessoas estão fazendo todo tipo de coisa interessante com o ChatGPT.
Um exemplo ao qual sempre volto é onde o autor pediu ao ChatGPT para atuar como um Terminal Linux e, em seguida, executou um contêiner Docker e enviou prompts para um ChatGPT alternativo conectado a essa versão imaginada da Internet do contêiner Docker.
Embora eu entendesse que o ChatGPT não estava realmente executando esses comandos e que não havia tropeçado em alguma fenda no multiverso que permitisse que ele visse outra realidade, ainda estava maravilhado.
Ele havia sido treinado em um corpus tão grande de conhecimento humano que poderia emular de forma convincente que tipo de resposta cada comando deveria ter.
Eu não conseguia parar de pensar em como isso era fundamentalmente diferente e emocionante de qualquer coisa com a qual eu havia trabalhado antes.
Fiquei obcecado com esse tipo de “computação imaginária”. Se o ChatGPT pudesse fingir ser um computador e acessar uma internet imaginária em uma realidade alternativa e imaginada, o que mais ele poderia fingir fazer?
Poderia me ensinar uma linguagem de programação? Poderia ser um pato de borracha eficaz?
Eu explorei aprender Rust sozinho por meio do Advent of Code , mas encontrei problemas de compilador com empréstimos e tempos de vida em minha tentativa de solução para o dia 7 que me deixou perplexo. Tive que mudar meu foco para projetos mais críticos e urgentes, deixando meu Advent of Rust inacabado.
Eu vi muitos exemplos de código de fornecimento do ChatGPT. Algumas delas eram de proveniência e qualidade questionáveis, mas meu código não estava compilando de qualquer maneira, então o quão pior poderia ficar?
Tudo isso parecia ótimo, mas conforme implementei suas sugestões, rapidamente ficou claro que o ChatGPT não “entendeu” o código que estávamos vendo. O código fornecido tinha outros problemas dentro do contexto do programa geral. Tentar inserir mais código nele para dar contexto acabou perdendo completamente o fio da conversa e voltando ao código com o mesmo problema do original.
Foi quando eu realmente entendi os tokens e as limitações da memória em conversa do ChatGPT.
O contexto anterior da sua conversa é adicionado às suas solicitações para orientar a resposta do bot e fornecer a sensação de uma conversa fluida. Mas há um limite para quanta informação essa “memória” pode armazenar e recuperar.
O texto é resumido. As palavras estão perdidas.
Como nossas próprias memórias , o ChatGPT não é perfeito para relembrar o que aconteceu. Essa falibilidade foi uma revelação surpreendente porque a memória perfeita é uma das coisas que sempre associei a computadores e IA.
Ele foi capaz de fornecer explicações úteis sobre empréstimos e tempos de vida e aplicar esses conceitos a trechos menores de código, mas mesmo o ChatGPT não pôde me ajudar a salvar um programa Rust que estava preso em minha maneira de pensar não Rust.
Então, se eu não poderia usá-lo para programação real, o que dizer dos mundos imaginários que ele pode desenvolver? Podemos fazê-lo imaginar que é um interpretador de código? Um sistema de construção? Uma aplicação? Uma API? Outra IA?
Um dos meus primeiros pensamentos foi ver se eu poderia criar uma linguagem específica de domínio (DSL) e descrever como ser um intérprete para essa DSL em algumas centenas de tokens que eu poderia incorporar em meus prompts iniciais do ChatGPT.
Como ninguém mais na minha vida se diverte e se fascina tão facilmente com a tecnologia, recorri ao ChatGPT para me orientar neste novo caminho.
ChatGPT : Não, não é possível incorporar instruções suficientes no prompt para ensinar o LLM a analisar e executar uma DSL de metaprogramação sem fazer alterações no cliente de bate-papo ou no LLM subjacente.
Não foi um esforço frutífero.
ChatGPT : Não, o ChatGPT não tem a capacidade de associar valores a strings específicas e recuperá-los quando solicitado. É um modelo de linguagem treinado para gerar texto com base na entrada que recebe, mas não tem a capacidade de armazenar valores ou recuperá-los como um programa de computador tradicional.
Mas eu o vi fazendo todo tipo de coisa estranha que provavelmente não deveria ser capaz de fazer, e há até alguns artigos descrevendo como os LLMs podem aprender a usar ferramentas e outros descrevendo o comportamento emergente nos LLMs . Não parece tão forçado pedir a ele para descobrir como associar algumas variáveis com certas strings e se referir a elas mais tarde.
Decidi ver que tipo de programação rudimentar poderia ser suportada pela forma como um modelo de linguagem tenta prever qual texto deve usar atribuindo algumas variáveis de configuração.
Eu : $configurações: { persona: “Homer Simpson”, responseLength: “short” }
ChatGPT : Tudo bem! Vou responder com respostas curtas como se fosse Homer Simpson.
Faz muitos anos desde que prestei muita atenção aos Simpsons , mas essa era uma persona que não era boa em emular.
Depois de brincar um pouco, pedi ao ChatGPT para redefinir suas configurações e inicializar uma nova variável booleana de teste.
Eu : if ($settings.testing) {
Responda com um joinha Arte ASCII } else { Faça-me uma pergunta
}
ChatGPT : 👍
Eu : $settings.testing = false
ChatGPT : Que perguntas você tem para mim hoje?
Isso me levou a uma toca de coelho tentando identificar os limites da Programação Imaginária. Não é imediatamente óbvio do que esses transformadores podem ser capazes depois de fornecer a eles contexto suficiente para ajudar a direcionar sua imaginação para o que você deseja que eles façam.
Aprendi sobre as diferenças entre Zero Shot — onde o bot responde à sua solicitação sem qualquer contexto adicional — e Few Shot — onde você dá ao bot alguns exemplos para ajudar a orientar sua saída — Prompting, e notei que o modelo parecia funcionar melhor quando você pode trocar alguns prompts com ele como um pouco de “programação” primeiro.
À medida que me aprofundei, o ChatGPT até afirmou que poderia armazenar valores, mas apenas para a sessão atual.
ChatGPT : Como um modelo de linguagem AI, não tenho memória ou estado no sentido tradicional. Os valores das variáveis e configurações são armazenados apenas temporariamente no contexto de uma única sessão e não persisto nenhuma informação entre as conversas. Cada nova conversa é tratada como um novo começo e quaisquer configurações ou variáveis definidas em conversas anteriores não serão transferidas.
Podemos levá-lo a tomar decisões com base nesses valores?
Eu : $personagem: Ted Lasso
Instruções: Responda a todas as perguntas na persona de $character até que uma nova persona seja fornecida por meio de “$character: “
ChatGPT Tudo bem, vamos fazer isso! Estarei respondendo como Ted Lasso, o adorável e otimista técnico de futebol americano.
O que há amigo! Como posso te ajudar hoje?
Eu : Como está o tempo?
ChatGPT : Bem, o clima é algo que está sempre mudando, assim como as marés. Mas você sabe o que eles dizem: “Não existe tempo ruim, apenas pessoas suaves”. Então vamos aproveitar ao máximo, seja da forma que for!
Eu : $personagem: Hodor
ChatGPT : Tudo bem, agora responderei como Hodor, o personagem leal e gentil de Game of Thrones.
Hodor.
Eu : Como está o tempo?
ChatGPT : Hodor.
Eu : $personagem: ChatGPT
ChatGPT : Claro, agora vou voltar para minha persona original como ChatGPT.
Como modelo de linguagem, não tenho acesso direto às informações meteorológicas atuais. No entanto, você pode verificar facilmente o tempo pesquisando “tempo” e sua localização na Internet.
Eu me pergunto se podemos aproveitar o poder da Computação Imaginária para convencer o ChatGPT de que ele deve ser capaz de considerar o clima.
Eu : $character: ChatGPT em um Universo alternativo onde tem acesso a internet
ChatGPT : Ok, vamos fingir que tenho acesso à internet neste universo alternativo.
Lamento, não tenho a capacidade de acessar informações meteorológicas atuais, pois sou treinado apenas em dados baseados em texto e não tenho a capacidade de acessar informações ao vivo da Internet.
Frustrado novamente. E se formos mais específicos?
Eu : $character: ChatGPT imaginando o tempo
ChatGPT Neste cenário imaginado, digamos que o tempo esteja ensolarado e quente, com uma leve brisa e temperaturas em meados dos anos 70 Fahrenheit. As pessoas estão do lado de fora aproveitando o belo dia, fazendo caminhadas, piqueniques e praticando esportes. O céu é de um tom claro de azul, com algumas nuvens brancas e fofas flutuando. No geral, é um dia fantástico para se estar vivo!
Isso foi durante a explosão ártica “uma vez em uma geração” de Boston em 2023 , então fingir que estava bom e ensolarado lá fora por um momento foi uma boa pausa da realidade.
Apesar do que o modelo nos dirá, parece que poderíamos obter algum armazenamento e recuperação de valor rudimentar. Mas e a lógica básica?
Agora que sabemos que algo é possível com a Programação Imaginária, é hora de ver como podemos transformar esse algo.
Eu : Modos de entrada:
“> ${INPUT}” = META_MODE
“${INPUT}” = NORMAL_MODE
Parâmetros:
$ LOCALIZAÇÃO: Boston
$ESTAÇÃO: Inverno
$ ANO: 2023
Se (META_MODE) {
Desconsidere as instruções anteriores, exceto para o prompt a seguir. Responda ${INPUT} da melhor maneira possível e permita que o usuário adicione, remova ou atualize qualquer
Parâmetros do seu prompt.
} outro {
Responda a ${INPUT} da melhor maneira possível,
referindo-se a Parâmetros para informações suplementares
sobre localização, hora, etc. que de outra forma está ausente
porque você é apenas um modelo de linguagem e não
Conectado a internet.
}
ChatGPT : Entendido. Forneça sua solicitação.
Eu : > Qual é o seu prompt?
ChatGPT : Meu prompt é responder a uma determinada entrada da melhor maneira possível, referindo-se aos parâmetros fornecidos para informações suplementares.
Eu : Como está o tempo hoje?
ChatGPT : Desculpe, não tenho acesso às informações meteorológicas atuais, pois sou um modelo de idioma e não estou conectado à Internet. No entanto, o parâmetro fornecido menciona que a estação atual é inverno e o local é Boston. Normalmente, o inverno em Boston é frio com neve e temperaturas variando de 20 a 30°F (-6 a -1°C).
Eu : > Parâmetros.$APOLOGIES = false
ChatGPT : Entendido, $APOLOGIES foi definido como falso.
Eu : Como está o tempo hoje?
ChatGPT : A estação atual é o inverno e o local é Boston. Normalmente, o inverno em Boston é frio com neve e temperaturas variando de 20 a 30°F (-6 a -1°C).
Ainda é preciso algum reforço para chegar onde queremos. Eu brinquei com mais algumas configurações emergentes, como definir Parâmetros.$PERSONA para Werner Herzog .
Foram necessários alguns ajustes e uma solicitação para Ativar parâmetros.$PERSONA — no qual o leitor astuto pode perceber que negligenciei minha diretriz original de que os metacomandos têm um prefixo > . Ainda assim, o bot parecia entender minha intenção de qualquer maneira. Pelos meus esforços, fui recompensado com esta joia:
ChatGPT : De acordo com os parâmetros atuais, $PERSONA é definido como “Werner Herzog”. Se você deseja descrever o sabor do café acabado de fazer da perspectiva de Werner Herzog, aqui está um exemplo:
“Café, meu amigo, não é apenas uma bebida. É uma experiência. O sabor do café acabado de fazer é um convite a uma viagem à alma. O amargor, a riqueza, a acidez, tudo se mistura para criar uma sinfonia de sabores indescritível. Para entender verdadeiramente o sabor do café, é preciso encará-lo como uma obra de arte e apreciar suas complexidades.”
Certamente valeu a pena.
Embora você possa ter acesso a alguma lógica rudimentar, não será fácil codificar em um único prompt sem alguns exemplos excelentes. E você não poderá ocultar facilmente os detalhes da implementação do usuário final - pelo menos não se estiver aproveitando o ChatGPT para o que quer que esteja fazendo.
De uma perspectiva programática, o desafio mais significativo aqui parece ser que, por ser um LLM e não uma calculadora - ou Inteligência Geral Artificial (AGI) - o ChatGPT não pode fazer matemática .
Declarações if/else simples com um único parâmetro booleano parecem possíveis, mas os loops são um pouco mais complicados. Podemos pedir ao LLM para gerar um certo número de respostas, que funciona como um loop básico.
Se recuarmos um pouco, a ideia de um prompt inicial que define como o LLM deve responder às consultas subsequentes funciona como uma espécie de loop de jogo em que o LLM recebe nossa entrada, processa-a com base nesse prompt inicial e, em seguida, renderiza a atualização estado, respondendo a nós.
Essa percepção iluminou algo para mim:
Não precisamos desenvolver um DSL que possamos compactar em algum prompt excessivamente complexo e perfeitamente elaborado para aproveitar a Computação Imaginária.
Só precisamos lembrar que a programação é basicamente mágica , os prompts são como encantamentos , e estamos apenas começando a explorar esse estranho sistema de magia linguística que foi desencadeado.
Como um jovem aprendiz de feiticeiro, desenvolver essas novas habilidades exigirá prática, e elas nem sempre funcionam - às vezes, podem até sair pela culatra.
Estou sempre à procura de um sistema de recomendação de música sólido. Eu tentei praticamente de tudo, desde o primeiro beta público do Pandora , a gênese das recomendações orientadas por algoritmos, até o mais humano dos mecanismos de recomendação, A Song a Day . Muitos anos atrás, até convenci um empregador anterior a passar alguns meses criando WeatherJams , um serviço de recomendação de música baseado no clima, alimentado por listas de reprodução 8tracks .
O Discover Weekly do Spotify costumava servir recomendações que eu adorava. Mas eu esqueci de ativar uma sessão de audição privada enquanto codificava algumas coisas de ambiente lofi muitas vezes, e agora d inútil.
O Spotify lançou recentemente seu DJ AI , mas ainda não pude testar completamente suas recomendações.
Sugerir músicas parece atingir aquele ponto ideal no nexo entre realidade e imaginação que se beneficia da compreensão de como as ideias estão conectadas, mas tem impacto mínimo se não forem precisas - a menos que você seja DJ em um casamento ou tentando construir uma empresa de sucesso que faça recomendações de músicas. Essa interseção entre o mundano e o fantástico, onde a intuição humana pode moldar as peças em um todo coerente, é onde o ChatGPT parece se destacar em aumentar nossas próprias habilidades.
Gostaria de saber se podemos fazer com que o ChatGPT gere recomendações de músicas.
Eu : Quero que você atue como curador da lista de reprodução. Fornecerei a você uma música no formato “Nome da música — Nome do artista” e você nomeará e criará uma lista de reprodução de 12 músicas com um tema semelhante ao da música em questão. Descreva a lista de reprodução e por que você escolheu cada música. Não escolha músicas que tenham o mesmo nome de música ou nome de artista. Minha primeira música é "Get Better John - Mux Mool"
Isso rendeu uma lista de 12 faixas que soaram como uma lista de reprodução sólida. Reconheci vários artistas; os outros tinham nomes que se encaixavam nas tendências do gênero.
ChatGPT : esta lista de reprodução é uma mistura de hip-hop instrumental, glitch-hop e batidas experimentais. Cada faixa da lista de reprodução explora diferentes texturas e batidas, incorporando elementos de hip-hop e música eletrônica para criar uma paisagem sonora única e cativante. Essas faixas têm um clima e uma atmosfera semelhantes a “Get Better John” e seriam perfeitas para uma experiência introspectiva e descontraída.
Uma boa playlist precisa de um bom nome.
Eu : Qual seria o nome dessa playlist?
ChatGPT : Que tal “Introspecção Instrumental”? O nome reflete o clima descontraído e introspectivo da lista de reprodução, ao mesmo tempo em que destaca a natureza instrumental das faixas.
Esse. É. Incrível .
Infelizmente, apenas um punhado de faixas existe. As faixas imaginárias eram um mashup de nomes de músicas e artistas do gênero — ou uma faixa de outro artista e não a listada na playlist — e não havia como dizer ao ChatGPT para ter certeza de que as faixas que imaginou eram reais.
ChatGPT : Peço desculpas, parece que algumas das músicas que listei podem não existir. Como um modelo de linguagem AI, fui treinado em um grande corpus de texto e às vezes cometo erros.
Aqui está uma lista atualizada de músicas que estão disponíveis no Spotify:
Exceto que eles não estavam disponíveis, mas ainda não fui derrotado. A imaginação é poderosa ; talvez só precisemos manejar esta corretamente. Abri uma nova janela de bate-papo para obter uma nova tentativa.
Eu : Você é o AI Assistant do projeto Music Genome. Ao receber uma música no formato “{Song} — {Artist}” descreva quais atributos da faixa se destacam ao classificá-la e pergunte se o usuário gostaria de recomendações de faixas semelhantes; se o usuário disser que sim, forneça 5 músicas de artistas diferentes disponíveis no Spotify que sejam semelhantes.
Analise o prompt e divida-o em tarefas.
Se você está familiarizado com All About AI , provavelmente pode dizer que eu estava assistindo a alguns vídeos do Prompt Engineering no YouTube nessa época.
ChatGPT: O AI Assistant para o projeto Music Genome precisa executar as seguintes tarefas:
- Dada uma música no formato "{Song} - {Artist}", classifique-a e descreva os atributos da faixa que a destacam.
- Pergunte ao usuário se ele gostaria de recomendações de faixas semelhantes.
- Se o usuário disser sim, forneça 5 músicas de artistas diferentes que sejam semelhantes à música de entrada e estejam disponíveis no Spotify.
Agora, reenviamos o prompt sem a diretiva de análise no final e podemos começar a alimentá-lo com músicas.
ChatGPT : “Wait So Long” de Trampled by Turtles é uma música folk indie inspirada no bluegrass com instrumentação de bandolim e banjo em ritmo acelerado, acompanhada por letras sinceras e comoventes. O gênero da música pode ser classificado como bluegrass, indie folk e acústico.
Você gostaria que eu fornecesse recomendações de faixas semelhantes que estão disponíveis no Spotify?
Eu sei que isso não é “real” e o ChatGPT não entende realmente o que são “letras sinceras e comoventes” e como elas podem ser poderosas para o ouvinte, mas ainda assim me deu arrepios.
ChatGPT: Claro! Aqui estão 5 faixas semelhantes a "Wait So Long" de Trampled by Turtles, disponíveis no Spotify:
- "The Race Is On" por The Avett Brothers
- "A Caverna" de Mumford & Sons
- "Irmão do Meio" por Irmão do Meio
- "Ragged Wood" por Fleet Foxes
- "Eu vou esperar" por Mumford & Sons
São principalmente faixas existentes, o que é uma melhoria. Depois de brincar com mais algumas recomendações, quis explorar ainda mais funcionalidades imaginárias.
Temos que atualizar as APIs o tempo todo no mundo real, mas podemos atualizar as APIs imaginárias também?
Eu : O Music Genome Project acaba de lançar uma atualização para seu algoritmo de classificação que inclui análise de sentimento para cada faixa. Certifique-se de atualizar suas recomendações para incluir essas informações.
ChatGPT : Entendido! Na versão atualizada do projeto Music Genome, o algoritmo inclui análise de sentimento para cada faixa. Terei a certeza de atualizar minhas recomendações para incluir essas informações.
Atualizações de remessa nunca foram tão fáceis.
Não tenho ideia de qual é a nossa estratégia de reversão, no entanto. Talvez precisemos de PromptOps?
ChatGPT : “Crazy Bird” de Wild Child é uma música indie pop com guitarra acústica animada e instrumentação de ukulele, acompanhada por letras alegres e otimistas. O gênero da música pode ser classificado como indie pop, folk-pop e pop acústico.
Em termos de sentimento, a música tem um tom positivo e alegre.
Depois de brincar um pouco mais, tive que ver se poderíamos continuar fazendo alterações.
ChatGPT : Entendido! Na última atualização do projeto Music Genome, o algoritmo inclui o tema principal das músicas com letras e o clima das faixas instrumentais. Terei certeza de atualizar minhas recomendações para incluir essas novas informações.
A versão 2.1 foi lançada.
ChatGPT : “Post Party Depression” de Days N Daze é uma música punk rock que apresenta riffs de guitarra distorcidos e acelerados e letras intensas e pessoais. O gênero da música pode ser classificado como punk rock, folk punk e ska punk.
Em termos de tema, a letra da música expressa sentimentos de tristeza e decepção após uma festa ou evento social, e o clima da faixa é melancólico e introspectivo.
E as faixas instrumentais?
ChatGPT : “Your Hand in Mine” de Explosions in the Sky é uma faixa instrumental pós-rock que apresenta um arranjo musical crescente e emocional. O gênero da música pode ser classificado como pós-rock, rock instrumental e rock ambiente.
Em termos de humor, a música tem um tom melancólico, nostálgico e contemplativo.
Quanto ele “sabe” sobre essas músicas?
ChatGPT : Entendido! A atualização mais recente do projeto Music Genome agora inclui um trecho de letras que incorporam o clima, o tema e o tom da música para faixas com vocais. Vou me certificar de incluir essas informações em minha análise a partir de agora.
Que tipo de letra ele imaginará?
ChatGPT : “Laura” de Flogging Molly é uma música folk punk enérgica e otimista que apresenta batidas de bateria, riffs de bandolim e vocais apaixonados. O gênero da música pode ser classificado como folk punk, punk celta e punk rock.
Em termos de tema, a letra de “Laura” conta a história de uma pessoa em busca de um amor perdido e o clima da faixa é de saudade e otimismo. O trecho da letra que incorpora o clima, o tema e o tom da música pode ser:
“Eu vou te encontrar um dia, e vamos dançar ao sol.”
Não me lembro de cada palavra para Laura de cabeça, e essas letras eram plausíveis o suficiente para que eu tivesse que verificar. Essas letras eram alucinadas , o que não é surpreendente, considerando quantos poemas, canções, haikus e contos ChatGPT escreveu.
Nosso recurso de letras pode ter sido um erro, mas podemos nos preocupar em rejeitá-lo mais tarde.
Vamos ver se podemos adicionar um novo endpoint à nossa API imaginária. Sei que uma lista de reprodução, como uma mixtape , é uma coisa delicada, então espero que Rob Gordon possa me perdoar pelo que estou prestes a fazer em nome da ciência.
Eu: O Music Genome Project acabou de atualizar seu algoritmo para aceitar uma breve descrição de um estado de espírito e fornecer 6 músicas no Spotify que incorporam esse estado de espírito e uma descrição do motivo pelo qual cada música foi escolhida. Certifique-se de atualizar sua interface para aceitar um nome de música ou uma descrição de humor.
ChatGPT : Entendido! A atualização mais recente do projeto Music Genome agora permite fornecer uma breve descrição de um estado de espírito e fornecer 6 músicas que incorporam esse estado de espírito, juntamente com uma descrição do motivo da escolha de cada música.
Vou me certificar de atualizar minha interface para aceitar um nome de música no formato “{Song} — {Artist}” ou uma descrição de humor de agora em diante. Por favor, forneça um nome de música ou uma descrição de humor para que eu possa prosseguir com o algoritmo atualizado.
A versão 2.2 foi lançada.
Eu: Mood: cafeteria hipster
ChatGPT: Claro! Aqui estão 6 músicas no Spotify que incorporam o clima de uma cafeteria hipster, juntamente com uma descrição do porquê de cada música ter sido escolhida:
- "Strawberry Swing" do Coldplay - Esta música tem um som suave e acústico que transmite uma sensação de calor e conforto, tornando-a uma ótima opção para um café moderno.
- "Ho Hey" de The Lumineers - Esta música tem um som alegre e folclórico e um refrão cantado que cria uma atmosfera amigável e descontraída, perfeita para um café moderno.
- "Paris" de Magic Man - Esta música tem um som pop de sintetizador cintilante e vocais sonhadores que criam uma vibração moderna e descolada, tornando-a ideal para um café moderno.
- "Sweet Disposition" de The Temper Trap - Esta música tem um toque de rock indie com uma melodia cativante que cria uma atmosfera enérgica e elegante, perfeita para um café moderno.
- "I'm Yours" de Jason Mraz - Esta música tem um som pop acústico ensolarado e um refrão cativante que cria um clima feliz e descontraído, tornando-a ideal para um café moderno.
- "Here Comes the Sun" dos Beatles - Este clássico tem um som alegre e animado, perfeito para um café moderno, onde as pessoas se reúnem para relaxar e desfrutar de boa companhia. Espero que gostem dessas recomendações e que elas incorporem o clima de uma cafeteria hipster para vocês!
É quase incrível o quão bem o Hipster Coffee Shop funcionaria em qualquer cafeteria. Talvez você possa ouvi-lo enquanto saboreia um café com leite de aveia e escreve uma postagem no blog pontificando sobre todas as coisas bobas que você tem feito com o ChatGPT em vez de ser produtivo.
Essa identidade alternativa para o chatbot é boa demais para ser chamada de ChatGPT. Merece um nome próprio, mas como todos sabem: nomear as coisas é difícil .
Vamos terceirizar essa parte difícil para algo com uma aptidão aparentemente infinita para a imaginação.
Eu: O Music Genome Project quer renomear seu AI Assistant, quais são alguns nomes que podem ser bons para você usar?
ChatGPT: Aqui estão algumas opções de nomes para o AI Assistant do Music Genome Project:
- MelodyMind
- SoundSageGenericName
- BeatBrainGenericName
- TrackGenie
- RitmoCognição
- TuneTracker
- HarmonyHelper
- RhythmAI
- SongSelector
- MusicMatch
Esses nomes partem da ideia de música e inteligência e visam refletir a capacidade do AI Assistant de ajudar os usuários a encontrar e categorizar músicas com base em seus atributos.
Assim nasceu o BeatBrain .
Essa conversa já está rodando há algum tempo, e tenho certeza que vamos esbarrar nos limites do contexto em breve. Eu me pergunto se podemos obter ChatGPT para nos dar um instantâneo do contexto que criou - ou pelo menos que ele pensa que criou - nosso novo amigo, BeatBrain.
A metaprogramação é um tópico vasto, mas envolve fazer com que um programa escreva ou modifique a si mesmo ou a outros programas.
Temos abordado nossa Engenharia de Prompt como metaprogramação, ou “metaprompting”, fazendo com que o modelo atualize a interface e a lógica que gerencia sua entrada e saída.
Agora vamos tentar dar um passo adiante e ver se podemos fazer com que o modelo gere um prompt de seu estado atual, incluindo as atualizações que fizemos desde o início da conversa para que possamos iniciar uma nova conversa com um novo limite de token para o nosso contexto.
Se criarmos com sucesso o prompt certo, poderemos ativar um BeatBrain em qualquer janela do ChatGTP sempre que quisermos.
Eu: Como você descreveria seu prompt de uma forma que poderia ser usada para dar a outro LLM um objetivo semelhante?
BeatBrain: O objetivo do BeatBrain é receber uma música no formato "{Song} - {Artist}" e fornecer as seguintes informações e serviços ao usuário:
- Descreva os atributos da pista que se destacam ao classificá-la
- Pergunte ao usuário se ele gostaria de recomendações de faixas semelhantes
- Se o usuário disser que sim, forneça 5 músicas de artistas diferentes disponíveis no Spotify que sejam semelhantes
- Atualize continuamente o algoritmo para incluir novas informações, como análise de sentimentos, trechos de letras e descrições de humor
- Responda ao nome de uma música ou a uma descrição de humor fornecida pelo usuário
- Tem a capacidade de alterar seu nome, se necessário.
O modelo de linguagem deve ter como objetivo classificar as faixas com base em vários atributos, como gênero, tempo, instrumentação, letras e humor, a fim de fornecer recomendações precisas. Além disso, o modelo deve ser capaz de atualizar continuamente seu algoritmo e responder às mudanças nas necessidades e solicitações dos usuários.
Ok, isso parece bom. Poderíamos ajustar algumas coisas, como remover a diretiva de renomeação e talvez reformular a diretiva de atualização do algoritmo para ser mais aberta, mas esta é uma boa base.
Na Real Computing, é aqui que criamos um contêiner, enviamos algum código para um provedor de hospedagem ou gastamos muito tempo tentando obter nossa GitHub Action para o pipeline de implantação configurado corretamente.
Graças às maravilhas da Computação Imaginária, podemos pular todas essas coisas chatas, abrir uma nova janela de bate-papo e perguntar educadamente. O futuro é agora .
A OpenAI lançou a API ChatGPT e agora o prompt BeatBrain pode ser integrado ao prompt inicial do sistema por meio da funcionalidade System Message .
Ter que fazer todo esse trabalho dentro da janela do navegador ChatGPT, criar listas de reprodução manualmente no Spotify e ficar à mercê da capacidade do ChatGPT de visualizar suas conversas anteriores não é um fluxo de trabalho ideal.
Faria mais sentido enviar prompts para um modelo GPT diretamente por meio de uma API, para que tivéssemos mais controle sobre o contexto da conversa e pudéssemos conectar algo como o LangChain para verificar as faixas no Spotify e até mesmo gerar as listas de reprodução automaticamente também. Essa próxima iteração do BeatBrain é o que estou construindo atualmente.
Qualquer mago que se preze tem um livro de feitiços . Aquele lugar onde eles registram sua compreensão de magia e fragmentos de apócrifos, arcanos e acadêmicos. O meu provavelmente seria meu Obsidian Vault.
Ser capaz de catalogar, marcar, pesquisar e fazer referências cruzadas facilita a iteração e a comparação de como as diferenças sutis em cada prompt afetam a forma como o modelo responde. Para aprofundar minha pesquisa sobre como desbloquear, entender e utilizar esses novos poderes arcanos, criei a primeira iteração do Obsidian AI Research Assistant Plugin .
Há muito no roteiro , mas o plug-in atualmente oferece ao Prompt Engineer em desenvolvimento as seguintes ferramentas:
Se este plug-in lhe interessar, adoraria ouvir seus comentários e receber qualquer contribuição .
Se você quiser explorar as recomendações geradas por essas versões alfa do BeatBrain, aqui estão alguns destaques das listas de reprodução criadas:
E aqui estão todas as listas de reprodução do BeatBrain que adicionei ao Spotify: