Erlernen von Filmen und Genai für Dev, Sec, Ops
Worum geht es in diesem Repo?
Dieses Repo zielt darauf ab, verschiedene Informationen über LLMs und GenAi in einer Unterrichtserzählung zu strukturieren, die für die traditionelle Softwareentwicklung leicht verständlich ist. Es beleuchtet die Aspekte, die Sie aus Entwicklungs-, Betriebs- und Sicherheitsperspektive verstehen müssen. Obwohl es viel Material gibt, habe ich immer wieder die gleichen Dinge erklärt und eine Erzählung entwickelt.
Die Lektionen basieren hauptsächlich auf dem Langchain-Framework und setzen eine gewisse Vertrautheit mit der Programmiersprache Python voraus. Viele Beispiele wurden von Dokumentationsseiten übernommen und werden, soweit möglich, mit Namensnennung versehen. Ein großes Lob an Langchain für die Sammlung von so viel Material!
Unterrichtsübersicht
Entwickler
- Aufruf eines einfachen LLM mit OpenAI
- Blick auf das Debuggen in Langchain
- Chatten mit OpenAI als Model
- Verwendung von Eingabeaufforderungsvorlagen
- Verwendung von Docloader, um Ihre lokalen Dateien zu lesen und für das LLM vorzubereiten
- Erklären Sie die Berechnung und Verwendung von Einbettungen
- Verstehen Sie, wie wichtig das Teilen und Chunking ist
- Laden von Einbettungen und Dokumenten in eine Vektordatenbank
- Verwenden Sie eine Kette für Fragen und Antworten, um das RAG-Muster (Retrieval Augmented Generation) zu implementieren.
- Zeigen Sie die Verwendung der OpenAI-Dokumentation, damit der LLM Aufrufe generiert, um Echtzeitinformationen zu finden
- Implementieren Sie einen Agenten und stellen Sie ihm Tools zur Verfügung, um mehr Echtzeitinformationen zu erhalten
Operationen
- Finden Sie heraus, wie viele Token Sie verwenden und wie hoch die Kosten sind
- So können Sie Ihre Anrufe an ein LLM mithilfe von exaktem Abgleich oder Einbettungen zwischenspeichern
- So speichern Sie die Berechnung von Einbettungen zwischen und führen die Berechnung lokal aus
- Betreiben Sie Ihr eigenes lokales LLM (mit Ollama)
- Verfolgen Sie Ihre Anrufe und protokollieren Sie sie in einer Datei (mithilfe eines Callback-Handlers).
- Legen Sie die Ausgabestruktur (als JSON) fest und veranlassen Sie den LLM, es erneut zu versuchen, wenn sie nicht korrekt ist
Sicherheit
- Erklären Sie die OWASP Top 10 für LLMS
- Zeigen Sie, wie eine einfache sofortige Injektion funktioniert, und zeigen Sie einige Strategien zur Schadensbegrenzung auf
- So erkennen Sie eine sofortige Injektion mithilfe eines Drittanbietermodells von Hugginface
- Erkennen Sie die Projektinjektion mithilfe einer Eingabeaufforderung
- Überprüfen Sie die von LMS bereitgestellte Antwort und überlegen Sie, ob sie in Ordnung ist
- Verwenden Sie ein Huggingface-Modell, um zu erkennen, ob eine LLM-Ausgabe toxisch war
- Zeigen Sie eine einfache Aufforderung an, um die Meinung des LLM zu Kubernetes- und Trivy-Schwachstellen einzuholen
Springen Sie direkt rein https://github.com/jedi4ever/learning-llms-and-genai-for-dev-sec-ops/tree/main/lessons Weitere folgen!
Geschichte dieses Repos
- Die erste Unterrichtsstruktur wurde während eines GenAI-Hackatons gebildet, der freundlicherweise von Techstrong/MediaOps ausgerichtet wurde
- Die Lektionen wurden für eine Präsentation bei der London Devops Meetup-Gruppe verfeinert.
- Andere planen, eine eigene Version davon auszuführen
Wie können Sie helfen?
Teilen Sie uns mit, zu welchem Thema Sie gerne eine Lektion sehen würden? Öffnen Sie ein Github-Problem, um danach zu fragen
Reichen Sie neue Lektionen ein, senden Sie uns Korrekturen usw., um es zu verbessern.
Veranstalten Sie Ihr eigenes Meetup/Hackaton mit diesem Repo als Basis und melden Sie sich zurück! Wir lieben es, diese Geschichten zu hören, schicken Sie uns Bilder oder Videos!
Senden Sie einen Dankes-Tweet an @patrickdebois
Voraussetzungen zum Ausführen dieses Repos (benötigt mehr Liebe)
Führen Sie es mit einem Devcontainer aus
Dieses Projekt enthält einen Devcontainer zum lokalen Ausführen des Repos. Oder Sie können Google Collab oder ähnliches verwenden, um die Notizbücher auszuführen
Führen Sie es lokal aus
- Wir haben Microsoft VSCode verwendet, um die Demo auszuführen
- Wir führen die Python- und Jupyter-Notebooks lokal aus
- Wir verwenden Poesie als unseren virtuellen Env-Python-Manager
Poetry ist der neue Paketmanager im Block. Ähnlich wie Conda oder Pip mit venv.
poetry init
poetry install --no-root
Konfigurieren Sie vscode für die Verwendung von Poesie
- Installieren Sie Python 3.11 (die meisten Beispiele funktionieren jedoch mit 3.12) mit pyenv
- Holen Sie sich den Pfad pyenv
pyenv which python
- Legen Sie die Poesie-Pyton-Version fest
poetry env use
- Finden Sie den Poesie-Env-Pfad.
poetry env info --path
- in der vscode-
view -> command pallete -> python: select interpreter -> enter interpreter path
- Fügen Sie den Pfad
/Users/patrick.debois/Library/Caches/pypoetry/virtualenvs/london-devops-VW7lFx7f-py3.11
hinzu und fügen Sie /bin/python to it
-
poetry add ipykernel
Konfigurieren Sie Jupyter-Notebooks
- Installieren Sie das vscode-Plugin
- ipykernel installieren
Änderungsprotokoll
- 0.1-Version mit anfänglicher Langchain-Syntax
- Version 0.2 angepasst an neue langchain-community, langchain-openai und neue Syntax