
[ad_1]
Todos nós ficamos impressionados com os modelos de arte generativa: DALL-E, Imagen, Stable Diffusion, Midjourney e agora o modelo de vídeo generativo do Facebook, Make-A-Video. Eles são fáceis de usar e os resultados são impressionantes. Eles também levantam algumas questões fascinantes sobre linguagens de programação. A engenharia de prompts, projetando os prompts que impulsionam esses modelos, provavelmente será uma nova especialidade. Já existe um livro auto-publicado sobre engenharia de prompt para DALL-E e um excelente tutorial sobre engenharia de prompt para Midjourney. Em última análise, o que estamos fazendo ao criar um prompt é programar, mas não o tipo de programação a que estamos acostumados. A entrada é um texto de formato livre, não uma linguagem de programação como a conhecemos. É linguagem natural, ou pelo menos deveria ser: não há gramática ou sintaxe formal por trás dela.
Livros, artigos e cursos sobre engenharia rápida estão inevitavelmente ensinando um idioma, o idioma que você precisa saber para falar com DALL-E. No momento, é uma linguagem informal, não uma linguagem formal com especificação em BNF ou alguma outra metalinguagem. Mas à medida que esse segmento da indústria de IA se desenvolve, o que as pessoas esperam? As pessoas esperam que os prompts que funcionaram com a versão 1.X do DALL-E funcionem com a versão 1.Y ou 2.Z? Se compilarmos um programa C primeiro com GCC e depois com Clang, não esperamos o mesmo código de máquina, mas esperamos que o programa faça a mesma coisa. Temos essas expectativas porque C, Java e outras linguagens de programação são definidas com precisão em documentos ratificados por um comitê de padrões ou algum outro órgão, e esperamos que os desvios de compatibilidade sejam bem documentados. Por falar nisso, se escrevermos “Hello, World” em C e novamente em Java, esperamos que esses programas façam exatamente a mesma coisa. Da mesma forma, os engenheiros de prompt também podem esperar que um prompt que funcione para o DALL-E se comporte de maneira semelhante com a difusão estável. Concedido, eles podem ser treinados em dados diferentes e, portanto, ter elementos diferentes em seu vocabulário visual, mas se pudermos fazer DALL-E desenhar um Tarsier comendo um Cobra no estilo de Picasso, não deveríamos esperar o mesmo prompt para fazer? algo semelhante com Stable Diffusion ou Midjourney?
Aprenda mais rápido. Cave mais fundo. Veja mais longe.
Na verdade, programas como o DALL-E estão definindo algo que se parece um pouco com uma linguagem de programação formal. A “formalidade” dessa linguagem não vem do problema em si, ou do software que implementa essa linguagem – é um modelo de linguagem natural, não um modelo de linguagem formal. A formalidade deriva das expectativas dos usuários. O artigo do Midjourney até fala sobre “palavras-chave” – soando como um manual inicial para programação em BASIC. Não estou argumentando que há algo bom ou ruim nisso – os valores não entram de forma alguma. Os usuários inevitavelmente desenvolvem ideias sobre como as coisas “deveriam” se comportar. E os desenvolvedores dessas ferramentas, se quiserem se tornar mais do que brinquedos acadêmicos, terão que pensar nas expectativas dos usuários em questões como compatibilidade com versões anteriores e comportamento entre plataformas.
Isso levanta a questão: o que os desenvolvedores de programas como DALL-E e Stable Diffusion farão? Afinal, eles já são mais do que brinquedos acadêmicos: já são usados para fins comerciais (como projetar logotipos), e já vemos modelos de negócios construídos em torno deles. Além da cobrança pelo uso dos próprios modelos, já existem startups vendendo prompt strings, um mercado que pressupõe que o comportamento dos prompts é consistente ao longo do tempo. O front-end dos geradores de imagem continuará sendo grandes modelos de linguagem, capazes de analisar praticamente tudo, mas fornecer resultados inconsistentes? (A inconsistência é mesmo um problema para este domínio? Depois de criar um logotipo, você precisará usar esse prompt novamente?) Ou os desenvolvedores de geradores de imagem olharão para a Referência de Prompt DALL-E (atualmente hipotética, mas alguém eventualmente irá escrevê-lo) e perceber que eles precisam implementar essa especificação? Se o último, como eles vão fazer isso? Eles desenvolverão uma gramática BNF gigante e usarão ferramentas de geração de compiladores, deixando de fora o modelo de linguagem? Eles desenvolverão um modelo de linguagem natural mais restrito, menos formal que uma linguagem de computação formal, mas mais formal que o *Semi-Huinty?1 Eles podem usar um modelo de linguagem para entender palavras como Tarsier, Picasso e comer, mas tratar frases como “no estilo de” mais como palavras-chave? A resposta a esta pergunta será importante: será algo que realmente não vimos na computação antes.
O próximo estágio no desenvolvimento de software generativo será o desenvolvimento de linguagens formais informais?
Notas de rodapé
- *Semi-Huinty é uma língua hipotética hipotética algures na família das línguas germânicas. Existe apenas em uma paródia da linguística histórica que foi afixada em um quadro de avisos em um departamento de linguística.
[ad_2]
Source link