Slide 1

Slide 1 text

Gustavo Pinto @gustavopinto gustavopinto.org 5 coisas que todo dev deveria saber [email protected] ML4SE.substack.com Para criar aplicações com GenAI

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No entanto, essas ferramentas •Fornecem respostas genéricas •Requerem um bom esforço de “prompting” •Não conhecem o negócio do seu trabalho

Slide 4

Slide 4 text

Como melhorar os resultados de ferramentas de geração de código ?

Slide 5

Slide 5 text

CodeBuddy https://use.stackspot.com/stackspot-ai-beta

Slide 6

Slide 6 text

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]

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

1. O que é um modelo? @gustavopinto

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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)

Slide 12

Slide 12 text

1. O que é um modelo? @gustavopinto HuggingFace • GitHub para LLMs • Todos os principais modelos estão disponíveis https://huggingface.co/

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

2. Modelos Alucinam @gustavopinto

Slide 15

Slide 15 text

@gustavopinto All models are wrong, but some are useful George Box, 1976 Y = M(A, D) Predição

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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?"

Slide 18

Slide 18 text

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!

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

3. O que é um Prompt? @gustavopinto

Slide 21

Slide 21 text

3. O que é um prompt? @gustavopinto Prompt é uma das maneiras de se interagir com um LLM Y = M(A, D) Prompt

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

4. O que é RAG? @gustavopinto

Slide 27

Slide 27 text

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.

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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.

Slide 30

Slide 30 text

5. O que é um retriever? @gustavopinto

Slide 31

Slide 31 text

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)

Slide 32

Slide 32 text

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( )

Slide 33

Slide 33 text

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]

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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]

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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”

Slide 40

Slide 40 text

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.

Slide 41

Slide 41 text

4. O que é um prompt? @gustavopinto Minha primeira aplicação com LLMs

Slide 42

Slide 42 text

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]

Slide 43

Slide 43 text

No content