Aprendendo llms e genai para Dev,Sec,Ops
Sobre o que é esse repositório?
Este repositório tem como objetivo estruturar diversas informações sobre LLMs e GenAi em uma narrativa de aula de fácil compreensão pela engenharia de software tradicional. Ele destaca os aspectos que você precisa entender do ponto de vista de desenvolvimento, operações e segurança. Embora haja muito material por aí, acabei explicando as mesmas coisas repetidamente e desenvolvi uma narrativa.
As aulas são baseadas principalmente na estrutura Langchain e exigem um pouco de familiaridade com a linguagem de programação Python. Muitos exemplos foram emprestados de páginas de documentação e a atribuição é dada sempre que possível. Parabéns à Langchain pela coleta de tanto material!
Visão geral das aulas
Desenvolvedor
- Chamando um LLM simples usando OpenAI
- Olhando para a depuração em Langchain
- Conversando com OpenAI como modelo
- Usando modelos de prompt
- Uso do Docloader para ler seus arquivos locais e prepará-los para o LLM
- Explique o cálculo e uso de embeddings
- Entenda como a divisão e o chunking são importantes
- Carregando embeddings e documentos em um banco de dados vetorial
- Use uma cadeia de perguntas e respostas para implementar o padrão RAG (Retrieval Augmented Generation)
- Mostre o uso da documentação OpenAI para que o llm gere chamadas para encontrar informações em tempo real
- Implementar um Agente e fornecer-lhe ferramentas para obter mais informações em tempo real
Operações
- Descubra quantos tokens você está usando e o custo
- Como armazenar em cache suas chamadas para um LLM usando correspondência exata ou incorporações
- Como armazenar em cache o cálculo de embeddings e executar o cálculo localmente
- Execute seu próprio LLM local (usando Ollama)
- Rastreie suas chamadas e registre-as em um arquivo (usando um manipulador de retorno de chamada)
- Imponha a estrutura de saída (como JSON) e faça com que o LLM tente novamente se não estiver correto
Segurança
- Explique o top 10 do OWASP para LLMS
- Mostre como funciona a injeção simples de prompt e algumas estratégias de mitigação
- Como detectar a injeção imediata usando um modelo de terceiros da Hugginface
- Detecte a injeção do projeto usando um prompt
- Verifique a resposta que os llms fornecem e reflita se está tudo bem
- Use um modelo huggingface para detectar se uma saída LLM era tóxica
- Mostre um prompt simples para pedir a opinião do llm sobre as vulnerabilidades do Kubernetes e Trivy
Acesse https://github.com/jedi4ever/learning-llms-and-genai-for-dev-sec-ops/tree/main/lessons Mais por vir!
História deste repositório
- A estrutura inicial das aulas foi formada durante um hackaton GenAI elegantemente hospedado pela Techstrong/MediaOps
- As lições foram refinadas para uma apresentação no grupo Meetup Devops de Londres.
- Outros estão planejando executar sua própria versão
Como você pode ajudar?
Deixe-nos saber sobre qual tópico você gostaria de ver uma aula? Abra um problema no github para perguntar
Envie novas lições, envie-nos correções etc. para melhorá-lo.
Execute seu próprio encontro/hackaton usando este repositório como base e reporte! Adoramos ouvir essas histórias, envie-nos fotos ou vídeos!
Envie um tweet de agradecimento para @patrickdebois
Requisitos para executar este repositório (precisa de mais atenção)
Execute-o usando um devcontainer
Este projeto contém um devcontainer para executar o repositório localmente. Ou você pode usar a colaboração do Google ou algo assim para executar os notebooks
Execute-o localmente
- Usamos o Microsoft VSCode para executar a demonstração
- Executamos os notebooks python e jupyter localmente
- Usamos poesia como nosso gerenciador python de ambiente virtual
Poesia é o novo gerenciador de pacotes do mercado. Semelhante ao Conda ou Pip com venv.
poetry init
poetry install --no-root
configure o vscode para usar poesia
- instale o python 3.11 (embora a maioria dos exemplos funcione com 3.12) com pyenv
- obtenha o caminho pyenv
pyenv which python
- definir a poesia versão pyton
poetry env use
- encontre o caminho do ambiente de poesia
poetry env info --path
- na
view -> command pallete -> python: select interpreter -> enter interpreter path
- adicione o caminho
/Users/patrick.debois/Library/Caches/pypoetry/virtualenvs/london-devops-VW7lFx7f-py3.11
+ adicione /bin/python to it
-
poetry add ipykernel
configurar notebooks jupyter
- instalar o plugin vscode
- instalar o ipykernel
Registro de alterações
- Versão 0.1 com sintaxe inicial de langchain
- Versão 0.2 adaptada para nova langchain-community, langchain-openai e nova sintaxe