Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5 coisas que todo dev deveria saber Para criar aplicações com GenAI

5 coisas que todo dev deveria saber Para criar aplicações com GenAI

Gustavo Pinto

September 11, 2023
Tweet

More Decks by Gustavo Pinto

Other Decks in Programming

Transcript

  1. Gustavo Pinto @gustavopinto gustavopinto.org 5 coisas que todo dev deveria

    saber [email protected] ML4SE.substack.com Para criar aplicações com GenAI
  2. No entanto, essas ferramentas •Fornecem respostas genéricas •Requerem um bom

    esforço de “prompting” •Não conhecem o negócio do seu trabalho
  3. CodeBuddy’s architecture [0.7,-8.9,8.0,-7 .3,4.2,6.8,9.0,4 .8,-8.6,-3.3,-6. 0,-6.5,8.5,3.8,- 0.8,7.1,8.6,-6.6 ,3.7,-5.9,5.5,-2 .0,8,9.0,4.8,-8. 6,-3.3,-6.0,-6.5

    ,8.5,3.8,-0.8,7. 1,8.6,-6.6,3.7,- 5.9,5.5,-2-9.0,6 .3,-0.1,7.2,-7.3 ,4.0,-8.2,-6.2] SELECT content FROM embeddings ORDER BY embedding <=> %query LIMIT 3 Query [0.7,-8.9,8.0,-7 .3,4.2,6.8,9.0,4 .8,-8.6,-3.3,-6. 0,-6.5,8.5,3.8,- 0.8,7.1,8.6,-6.6 ,3.7,-5.9,5.5,-2 .0,8,9.0,4.8,-8. 6,-3.3,-6.0,-6.5 ,8.5,3.8,-0.8,7. 1,8.6,-6.6,3.7,- 5.9,5.5,-2-9.0,6 .3,-0.1,7.2,-7.3 ,4.0,-8.2,-6.2]
  4. 1. O que é um modelo? @gustavopinto Galileu, que observou

    que o tempo de descida das bolas é independente da suas massa! ?
  5. 1. O que é um modelo? @gustavopinto Um modelo de

    aprendizado de máquina é uma representação matemática que foi treinada em um conjunto de dados fornecidos como entrada para fazer certos tipos de predições. Y = M(A, D) Regressão Linear Vetor numérico
  6. 1. O que é um modelo? @gustavopinto Mas o que

    seria um: Grande Modelo de Linguagem (ou LLM)? Y = M(A, D) Redes Neurais Bilhões (ou trilhões)
  7. 1. O que é um modelo? @gustavopinto HuggingFace • GitHub

    para LLMs • Todos os principais modelos estão disponíveis https://huggingface.co/
  8. 1. O que é um modelo? @gustavopinto Hello world https://ml4se.substack.com/p/criando-

    um-modelo-de-ml https://ml4se.substack.com/p/ sumarizando-readmes-de-projetos-de
  9. 3. O que são Alucinações? @gustavopinto Problemas com predições? •

    Dados incompletos ou inadequados • Algoritmos inadequados • Qual o problema?
  10. 3. O que são Alucinações? @gustavopinto Problemas com predições? r/I_love_trump

    “Are there any questionable items in Trump’s speech?"
  11. 3. O que são Alucinações? @gustavopinto 1.4 trilhões de tokens

    1—10 trilhões de tokens 32 bilhões de tokens “Apenas" mais dados não são su fi cientes!
  12. 3. O que são Alucinações? @gustavopinto • Melhoria do treinamento

    • Desenvolvimento de mecanismos de veri fi cação • Maior conscientização e transparência Pesquisas para reduzir alucinações https://ml4se.substack.com/p/porque-eu-nao-posso-con fi ar-cegamente
  13. 3. O que é um prompt? @gustavopinto Prompt é uma

    das maneiras de se interagir com um LLM Y = M(A, D) Prompt
  14. 3. O que é um prompt? @gustavopinto Pequenas mudanças no

    prompt podem causar mudanças signi fi cativas na predição do modelo
  15. 3. O que é um prompt? @gustavopinto Pequenas mudanças no

    prompt podem causar mudanças signi fi cativas na predição do modelo Prompts pequenos não fornecem contexto su fi ciente Prompts grandes tendem adicionar ruído ao contexto
  16. 3. O que é um prompt? @gustavopinto Existem técnicas que

    podem ajudar a tornar seu prompt mais efetivo • Zero shot learning • Few shot learning • Instruction prompt • Chain of thought https://ml4se.substack.com/p/tecnicas-de-engenharia-de-prompt
  17. 3. O que é um prompt? @gustavopinto Querido ChatGPT: Gostaria

    que você agisse como uma pessoa especialista em Design de Código. Crie uma narrativa, de até 100 palavras, explicando o que é o CDD (Cognitive Driven Design). Zero shot Querido ChatGPT: Gostaria que você agisse como uma pessoa especialista em Design de Código. Por exemplo, SOLID é uma técnica de design de código que promove a coesão, acoplamento reduzido e código mais sustentável. Crie uma narrativa, de até 100 palavras, explicando o que é o CDD (Cognitive Driven Design). Few shot
  18. 3. O que é RAG? @gustavopinto Retrieval-augmented generation • RAG

    combina modelos de linguagem com mecanismos de recuperação de informações para: • Gerar texto mais contextualizado • Diminuindo chances de alucinações • RAG é usado em tarefas de geração de linguagem natural, como resumos, traduções e diálogos, melhorando a qualidade e relevância.
  19. 3. O que é RAG? @gustavopinto Retrieval-augmented generation “Quais os

    benefícios do CDD?” Retriever Alguns dos benefícios do CDD são X,Y e Z
  20. 3. Prompt com RAG @gustavopinto “Quais os benefícios do CDD?”

    “Um dos benefícios observados com a pesquisa foi que CDD ajudou …" “Um dos participantes reportou que a vantagem em usar CDD foi que …” “Os benefícios pareciam ser pequenos para equipes com baixa maturidade em outras técnicas de design, além de CDD” Querido ChatGPT: Gostaria que você agisse como uma pessoa especialista em Design de Código. Avalie a pergunta do usuário (em ) e as potenciais respostas (em ). Crie uma narrativa de até 100 palavras.
  21. 5. O que é um retriever? @gustavopinto • Embeddings são

    representações de textos como números [0.7,-8.9,8.0,-7.3,4.2,6.8,9.0,4.8,-8.6,-3.3,-6.0, -6.5,8.5,3.8,-0.8,7.1,8.6,-6.6,3.7,-5.9,5.5,-2.0, -9.0,6.3,-0.1,7.2,-7.3,4.0,-8.2,-6.2] (Word2vec, transformers, etc)
  22. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos [0.7,-8.9,8.0,-7.3,4.2 ,6.8,9.0,4.8,-8.6,-3.3 ,-6.0,-6.5,8.5,3.8,-0. 8,7.1,8.6,-6.6,3.7,-5. 9,5.5,-2.0,-9.0,6.3,-0 .1,7.2,-7.3,4.0,-8.2,- 6.2-8.9,8.0,-7.3,4.2,6 .8,9.0,4.8,-8.6,-3.3,- 6.0,-6.5,8.5,3.8,-0.8, 7.1,8.6,-6.6,3.7,-5.9, 5.5,-2.0,-9.0,6.3,-0.1 ,7.2,-7.3,4.0,-8.2,-6. 2-8.9,8.0,-7.3,4.2,6.8 ,9.0,4.8,-8.6,-3.3,-6. 0,-6.5,8.5,3.8,-0.8,7. 1,8.6,-6.6,3.7,-5.9,5. 5,-2.0,-9.0,6.3,-0.1,7 .2,-7.3,4.0,-8.2,-6.2] word2vec( )
  23. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos [0.7,-8.9,8.0,-7.3,4.2,6.8,9.0,4 .8,-8.6,-3.3,-6.0,-6.5,8.5,3.8,- 0.8,7.1,8.6,-6.6,3.7,-5.9,5.5,-2 .0,-9.0,6.3,-0.1,7.2,-7.3,4.0,-8 .2,-6.2-8.9,8.0,-7.3,4.2,6.8,9.0 ,4.8,-8.6,-3.3,-6.0,-6.5,8.5,3.8 ,-0.8,7.1,8.6,-6.6,3.7,-5.9,5.5, -2.0,-9.0,6.3,-0.1,7.2,-7.3,4.0, -8.2,-6.2-8.9,8.0,-7.3,4.2,6.8,9 .0,4.8,-8.6,-3.3,-6.0,-6.5,8.5,3 .8,-0.8,7.1,8.6,-6.6,3.7,-5.9,5. 5,-2.0,-9.0,6.3,-0.1,7.2,-7.3,4. 0,-8.2,-6.2]
  24. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos
  25. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos “Quais os benefícios do CDD?” [0.7,-8.9,8.0,-7.3,4.2,6.8,9.0,4 .8,-8.6,-3.3,3,4.2,6.8,9.0,4.8,- 8.6,-3.3,-6.0,-6.5,8.5,3.8,-0.8, 7.1,8.6,-6.6,3.7,-5.9,5.5,-2.0,- 9.0,6.3,-0.1,7.2,-7.3,4.0,-8.2,- 6.2]
  26. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos Query
  27. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos Query
  28. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos Documentos relevantes Query
  29. 5. O que é um retriever? @gustavopinto • Embeddings tentam

    guardar a essência do conteúdo • Objetos próximos são representados por números próximos “Quais os benefícios do CDD?” “Um dos benefícios observados com a pesquisa foi que CDD ajudou …" “Um dos participantes reportou que a vantagem em usar CDD foi que …” “Os benefícios pareciam ser pequenos para equipes com baixa maturidade em outras técnicas de design, além de CDD”
  30. 5. O que é um retriever? @gustavopinto “Quais os benefícios

    do CDD?” “Um dos benefícios observados com a pesquisa foi que CDD ajudou …" “Um dos participantes reportou que a vantagem em usar CDD foi que …” “Os benefícios pareciam ser pequenos para equipes com baixa maturidade em outras técnicas de design, além de CDD” Querido ChatGPT: Gostaria que você agisse como uma pessoa especialista em Design de Código. Avalie a pergunta do usuário (em ) e as potenciais respostas (em ). Crie uma narrativa de até 100 palavras.
  31. Minha primeira aplicação com LLMs [0.7,-8.9,8.0,-7 .3,4.2,6.8,9.0,4 .8,-8.6,-3.3,-6. 0,-6.5,8.5,3.8,- 0.8,7.1,8.6,-6.6

    ,3.7,-5.9,5.5,-2 .0,8,9.0,4.8,-8. 6,-3.3,-6.0,-6.5 ,8.5,3.8,-0.8,7. 1,8.6,-6.6,3.7,- 5.9,5.5,-2-9.0,6 .3,-0.1,7.2,-7.3 ,4.0,-8.2,-6.2] SELECT content FROM embeddings ORDER BY embedding <=> %query LIMIT 3 Query [0.7,-8.9,8.0,-7 .3,4.2,6.8,9.0,4 .8,-8.6,-3.3,-6. 0,-6.5,8.5,3.8,- 0.8,7.1,8.6,-6.6 ,3.7,-5.9,5.5,-2 .0,8,9.0,4.8,-8. 6,-3.3,-6.0,-6.5 ,8.5,3.8,-0.8,7. 1,8.6,-6.6,3.7,- 5.9,5.5,-2-9.0,6 .3,-0.1,7.2,-7.3 ,4.0,-8.2,-6.2]