{{ :ti_publica:qr_code_palestra_ia_programacao.png?200|}} ====== IA Generativa na Programação ====== Este material foi utilizado nas palestras: * 27/04/2024 - FLISOL RJ; * 25/05/2024 - BSDDay 2024; * 22/08/2024 - ConFLOSS 2024; * 29/11/2024 - Latinoware - Foz do Iguaçú. ===== Provocações ===== ++++ >>>>>> | * Você já usa IA para programar ou outra coisa? * Percebe a disrupção trazida pela IA? Pergunte a uma IA "Como a IA é um instrumento de disruptura?" * Você tem dados sigilosos e se preocupa com eles? * Você pode pagar por funcionalidades restritas nas IAs comerciais? * Qual o valor de controlar a tecnologia que você usa? E o código que você escreve? * Quem nunca ouviu falar em engenharia de prompt? Dados são o novo petróleo. Cuidado para não entregá-los de presente. ++++ ===== Exemplo prático! ===== ++++ >>>>>> | Bora botar a mão na massa! * Jogo? * Site dinâmico? * Automação? * Análise de dados? * Análise de código? ++++ ===== Minha experiência ===== ++++ >>>>>> | Melhor com linguagens mais comuns * Melhor: Python, HTML, Javascript, CSS * No meio: bash, ansible * Pior (com farta vantagem): krpano Em 29/05/2024 lançaram a Codestral: primeiro que acertou pro krpano pra mim. * Acesso direto: [[https://chat.mistral.ai/chat/|Site do chat]] - escolha o modelo codestral * Pode ser baixado no [[https://huggingface.co/mistralai/Codestral-22B-v0.1|HugginFace]] * [[https://mistral.ai/news/codestral/|Outras formas]] Recomendações: * Use o contexto * Divida para conquistar * Comece de onde precisar (pergunte que linguagem usar, como montar o ambiente, como rodar, etc) * PEÇA para dividir e como dividir melhor, para conquistar * Use RAG ++++ ===== A evolução das IAs ===== ++++ >>>>>> | * Aumento da disponibilidade de dados; * Aprimoramento do hardware; * Avanços algorítmicos; * LLMs! Na programação: * Automação de tarefas repetitivas; * Geração de código; * Exemplo recente [[https://www.youtube.com/watch?v=bDcYwiUagR4|com GTP-4o]] * ChatCPT-4o (OMNI) * Depuração e testes; * Aprendizado; * Análise de código; * Exemplo de análise (fora daqui) ++++ ===== O programador será substituído pela IA? ===== ++++ >>>>>> | * Ainda não. Em casos simples sim, onde talvez nem contratassem um. Problemas de uso de IA: * Alucinações * Erros de sintaxe * Código incorreto * Erro de lógica * Falta de generalização de aprendizado * Viés e discriminação, ética * Limitações no entendimento e na geração * Em geral requer expertise Notícia de 27/05/2024: **ChatGPT ainda produz muitas respostas incorretas para problemas de programação:** pesquisadores analisaram 517 perguntas do Stack Overflow e compararam as respostas do modelo com humanos. 54% das soluções apresentadas continham erros de interpretação, 36% apresentaram imprecisões nos fatos, 28% erravam em lógica e 12% em terminologia. Além disso, o modelo muitas vezes gerava respostas muito longas e com mais dados do que o necessário. As informações são [[https://www.techradar.com/pro/chatgpt-really-isnt-great-at-answering-programming-questions-yet|do site TechRadar]]. ++++ ===== Implementando modelos localmente ===== ++++ >>>>>> | * https://ollama.com/ * Inúmeras funcionalidades (vide github + open-webUI) * Muitos modelos gratuitos (vide library) * Segurança: dados não vão pra ninguém * Aponta uma URL direto no prompt e faz RAG com ela * Possibilidade de uso de RAG com seus documentos locais ++++ ===== Quem sou eu? ===== ++++ >>>>>> | * Engenheiro eletrônico pela UFRJ - 1995; * Atuando como analista de sistemas desde - 1993; * Programo desde os 10 anos - 1982; * Entusiasta do software livre - 1992; * Ex-empresário - 1997-2006; * Fotógrafo, maker, fixer, youtuber * Mantenho um blog de fotos 360 (https://cartola.org/360); * Canal no youtube (https://youtube.com/carloscartola); * Grupo no face (https://facebook.com/groups/fotografiapanoramica); * PanoFórum (https://www.panoforum.com.br). ++++ ===== Motivação ===== ++++ >>>>>> | * Compartilhar conhecimento; * Aprender. "Feliz aquele que transfere o que sabe e aprende o que ensina." - Cora Coralina ++++