Aprendizaje de películas y genai para Dev,Sec,Ops
¿De qué se trata este repositorio?
Este repositorio tiene como objetivo estructurar información diversa sobre LLM y GenAi en una narrativa de lección que la ingeniería de software tradicional entiende fácilmente. Destaca los aspectos que necesita comprender desde la perspectiva de desarrollo, operaciones y seguridad. Si bien hay mucho material disponible, me encontré explicando las mismas cosas una y otra vez y desarrollé una narrativa.
Las lecciones se basan principalmente en el marco Langchain y se espera un poco de familiaridad con el lenguaje de programación Python. Se han tomado prestados muchos ejemplos de páginas de documentación y, siempre que es posible, se dan atribuciones. ¡Felicitaciones a Langchain por recopilar tanto material!
Resumen de lecciones
Revelador
- Llamar a un LLM simple usando OpenAI
- Mirando la depuración en Langchain
- Charlando con OpenAI como modelo
- Usar plantillas de mensajes
- Uso de Docloader para leer sus archivos locales y prepararlos para el LLM
- Explicar el cálculo y uso de incrustaciones.
- Comprenda lo importante que es dividir y fragmentar
- Cargando incrustaciones y documentos en una base de datos vectorial
- Utilice una cadena de Preguntas y Respuestas para implementar el patrón RAG (Recuperación de Generación Aumentada)
- Mostrar el uso de la documentación de OpenAI para que el llm genere llamadas para encontrar información en tiempo real.
- Implementar un Agente y dotarlo de herramientas para obtener más información en tiempo real
Operaciones
- Descubra cuántos tokens está utilizando y el costo
- Cómo almacenar en caché sus llamadas a un LLM mediante coincidencias exactas o incrustaciones
- Cómo almacenar en caché el cálculo de incrustaciones y ejecutar el cálculo localmente
- Ejecute su propio LLM local (usando Ollama)
- Realice un seguimiento de sus llamadas y regístrelas en un archivo (utilizando un controlador de devolución de llamada)
- Imponga una estructura de salida (como JSON) y haga que el LLM vuelva a intentarlo si no es correcto
Seguridad
- Explique el top 10 de OWASP para LLMS
- Muestre cómo funciona la inyección rápida simple y algunas estrategias de mitigación.
- Cómo detectar una inyección rápida utilizando un modelo de terceros de Hugginface
- Detectar la inyección del proyecto mediante un mensaje
- Comprueba la respuesta que proporcionan las películas y reflexiona si está bien.
- Utilice un modelo de cara de abrazo para detectar si un resultado de LLM fue tóxico
- Muestre un mensaje simple para solicitar la opinión del llm sobre las vulnerabilidades de Kubernetes y Trivy.
Vaya directamente a https://github.com/jedi4ever/learning-llms-and-genai-for-dev-sec-ops/tree/main/lessons ¡Más por venir!
Historia de este repositorio
- La estructura inicial de las lecciones se formó durante un hackaton GenAI organizado elegantemente por Techstrong/MediaOps.
- Las lecciones se refinaron para una presentación en el grupo London Devops Meetup.
- Otros están haciendo planes para ejecutar su propia versión.
¿Cómo puedes ayudar?
Háganos saber sobre qué tema le gustaría ver una lección. Abra un problema de github para preguntarlo.
Envía nuevas lecciones, envíanos correcciones, etc. para mejorarlo.
¡Ejecuta tu propia reunión/hackaton usando este repositorio como base e informa! ¡Nos encanta escuchar esas historias, envíanos fotos o videos!
Envía un tweet de agradecimiento a @patrickdebois
Requisitos para ejecutar este repositorio (necesita más amor)
Ejecútelo usando un devcontainer
Este proyecto contiene un contenedor de desarrollo para ejecutar el repositorio localmente. O puede utilizar la colaboración de Google para ejecutar los cuadernos.
Ejecútelo localmente
- Usamos Microsoft VSCode para ejecutar la demostración.
- Ejecutamos los cuadernos de Python y Jupyter localmente.
- Usamos poesía como nuestro administrador de entorno virtual de Python.
Poetry es el nuevo administrador de paquetes del bloque. Similar a Conda o Pip con venv.
poetry init
poetry install --no-root
configurar vscode para usar poesía
- instale Python 3.11 (aunque la mayoría de los ejemplos funcionan con 3.12) con pyenv
- obtener el camino pyenv
pyenv which python
- configure la versión de pyton de poesía
poetry env use <the python binary path from pyenv>
- encontrar la ruta del entorno de poesía
poetry env info --path
- en
view -> command pallete -> python: select interpreter -> enter interpreter path
- agregue la ruta
/Users/patrick.debois/Library/Caches/pypoetry/virtualenvs/london-devops-VW7lFx7f-py3.11
+ agregue /bin/python to it
-
poetry add ipykernel
configurar cuadernos jupyter
- instalar el complemento vscode
- instalar ipykernel
Registro de cambios
- Versión 0.1 con sintaxis inicial de langchain
- Versión 0.2 adaptada a nueva langchain-community, langchain-openai y nueva sintaxis