Autonome Agenten 

mit
LangChain

Und Ihr so?

 

  • ChatGPT-Nutzer? CoPilot?

  • Python-Entwickler?

  • Son büschen, wenigstens?

  • Kennt  AutoGPT, AgentVerse, BabyAGI, MetaGPT etc?

  • Schon mit LangChain gearbeitet?

Und das braucht Ihr dazu:

  • einen OpenAI Key
    (sorry dafür, is aber so)

  • einen SerpAPI-Key

  • ein Jupyter-Env

    • Docker wird mitgeliefert

  • Internet

 

  • Bekommt Ihr alles unter der URL gleich, und ich erzähl was, solange Ihr einrichtet.

https://tinyurl.com/codetalks23

Was sind Agenten?

  • fast so alt wie ich (1977  Hewitt)
     

  • führt aus eigener Initiative Aktionen aus und arbeitet unabhängig vom Nutzer
     

  • kommuniziert mit dem Nutzer
    und anderen Agenten

     

  • passt sich an die Umwelt an und lernt langfristig aus Beobachtungen und Entscheidungen

https://tinyurl.com/codetalks23

Was sind Agenten?

https://tinyurl.com/codetalks23

... und sie sind schuld daran.

https://tinyurl.com/codetalks23

Das wusste
OpenAI.

https://tinyurl.com/codetalks23

Wer sich umorientieren möchte ..

https://tinyurl.com/codetalks23

WTF ... 

Agenten gibt es doch schon lange, Sprachmodelle auch.

Warum jetzt auf einmal

so einen Wirbel machen?

https://tinyurl.com/codetalks23

Language Models

Gibt es seit den 80ern.

  • Können:

    • Zusammenfassung

    • Text Generation

    • Lücken füllen

    • Entities erkennen
      ...

       

  • Das statistisch Wahrscheinliche auf Basis von Model & Input

https://tinyurl.com/codetalks23

Input Prediction
Hello! How
Hello! How can
Hello! How can I
Hello! How can I as-
Hello! How can i as- -sist
Hello! How can i assist you
Hello! How can i assist you today
Hello! How can i assist you today ?

https://tinyurl.com/codetalks23

Language Models

Text-Generation: Sag mir statistisch das nächste Wort voraus ... 

LARGE Language Models

  • Generative Pretrained Transformer

  • Du bist zu arm dafür:
    GPT-4 100.000.000 $

  • Europa auch

  • UAE nicht:
    Falcon 180B 7.000.000 GPU Hours.

https://tinyurl.com/codetalks23

  • Wenn man nicht das ganze trainieren kann, dann nur den relevanten Teil.
     

  • Finetuning bzw. PEFT (parameter efficient fine tuning) - nur das trainieren, was man braucht.


  • Mit Lora & co sogar noch kleiner und dazuladbar
     

  • Wie bei rekursiver Komprimierung wird nicht alles besser mit mehr: Catastrophic forgetting

https://tinyurl.com/codetalks23

Finetuning

Du, die richtige Fortsetzung von

"Zähl mal von 1 bis 12"

ist

 

"1,2,3,4,5,6,7,8,9,10,11,12"
 

https://tinyurl.com/codetalks23

Wie man aus Text Generation
Instruction Following
macht

FLAN-Palm Finetuning

https://tinyurl.com/codetalks23

Und was tuned man so fein?

Größere Modelle, besseres Finetuning

https://tinyurl.com/codetalks23

Ende 2022...

https://tinyurl.com/codetalks23

... und seitdem sind alle hibbelig.

https://tinyurl.com/codetalks23

  • Generate Texts
  • Summarization
  • Classification
  • Question Answering

Planned ...

  • Follow Instructions
  • Reasoning
  • Decision making
  • Evaluate Results

Emergent...

https://tinyurl.com/codetalks23


 

  • führt aus eigener Initiative Aktionen aus und arbeitet unabhängig vom Nutzer

  • kommuniziert mit dem Nutzer und anderen Agenten

  • passt sich an die Umwelt an und lernt langfristig aus Beobachtungen und Entscheidungen

TAFKA-In-Context-Learning:
Prompt Engineering

  • Transformer-Architekturen setzen auf dem Input auf
     

  • Das kann für neue Informationen genutzt werden
     

  • Neudeutsch "Prompt Engineering"

Few-Shot-Prompting

https://the-prompt-engineer.beehiiv.com/p/3-fewshot-prompting

Chain of Thought Prompting

Warum Agenten jetzt funktionieren

Warum LLMs doof für Software sind ...

  • Der LLM-Fuckup: XX token/s
     

  • Chat & Streaming geht in UX gerade so - aber nicht bei Agenten
     

  • Fazit: Agenten sind asynchrone Services
     

  • "Autonom". Ja genau.

🦜🔗 LangChain

🦜🔗 LangChain

🦜🔗 LangChain

  • Alternativen

    • AutoChain, Semantic Kernel, Haystack, llama Index

  • Langchain Community

    • Features, Doku, Entwickler

    • viel Forks, viele Comitter

    • Häufige compability breaks

  • Gegenargumente

    • Zu gross, zu schnell, zu viel

  • Wird noch eine Weile populär bleiben.

🦜🔗 LangChain

🦜🔗 HandsOn 

Bei wem läuft denn schon?

 

Wenn nein: macht nix, geht auch später und kommt auch hier vorne.

Noch mal sorry für die Keys, aber ohne funktionieren Agenten (noch) nicht.

🦜🔗 LangChain vs LLM

HandsOn 1: LangChain vs LLM.

 

Jupyter läuft?
OPENAI_API_KEY steht in .env? 

Super!
 

Bitte
1_langchain_basics.ipynb
aufrufen.

🦜🔗 Wie tickt LangChain?

Ziele: 

  • be data-aware Daten für LLMs bereitstellen

  • be agentic Agenten als Kernstrategie

 

Dafür wird bereitgestellt: 

  • Komponenten Abstraktionen für typische Aufgaben

  • Off-the-shelf chains (fast) fertige Lösungsstrecken

🦜🔗 Chains

https://python.langchain.com/docs/use_cases/more/agents

🦜🔗 Default: ReAct Agents

https://blog.research.google/2022/11/react-synergizing-reasoning-and-acting.html

Der agile
Plan-Do-Check-Act-Loop der Agenten.

ReAct

Agents

https://blog.research.google/2022/11/react-synergizing-reasoning-and-acting.html

🦜🔗 ReAct Example

HandsOn 2: ReAct mit LangChain

 

Bitte
2_react.ipynb
aufrufen.

🦜🔗 Tools

Im Beispiel: search und llm-math

 

Viele Tools, wachsend ... 

  • Alle Suchplattformen, Wikipedia, Arxiv, WolframAlpha, DuckDuckGo, ...

  • Libraries: HuggingFace Tools

  • Code ausführen: Shell , Python, Lambda

  • Interaktion: Human

🦜🔗 Stand da gerade Shell? 

Kommt Ihr noch klar?

Ich soll allen Ernstes OpenAI auf meinem Rechner was ausführen lassen?
 

Bitte
3_react_with_humantool.ipynb
aufrufen.

 

Wer neugierig ist: unter
https://github.com/mayflower/cloudbot

ist ein kubernetes/aws-bot.

🦜🔗 Long Term Memory

Natürliche Sprache != Strukturierte Daten



! SQL, !NoSQL, !DocumentDB, !GraphDB


Wenn man bloss was hätte, was man mit Sprache abfragen könnte ...

🦜🔗 VectorStores

Superspezialdatenbanken mit 3 Spalten:

  • hochdimensionaler Vektorindex

  • Textblob

  • Metadata

 

Der Vektorindex kommt aus Embeddings.

🦜🔗 Embeddings

  • Texte sind in LLMs in Token 

  • Embeddings sind Vektoren, die den "Sinn" von einem Stapel Token abbilden

 

"Liebe Vektordatenbank, gib mir mal alles inhaltlich ähnliches hierzu."

 

 

 

  • Every other "Chat My $stuff" Chatbot
     

  • Dokumentation verwendbar machen
     

  • Callcenter und Supportanfragen automatisch beantworten
     

  • Kundenbriefe und Mails auf Basis vergangener ähnlicher Anfragen beantworten
     

  • Alles Consultingwissen, von SAP bis Legal.

🦜🔗 VectorStores einsetzen bei Agenten

🦜🔗 Vectorstores in Agenten verwenden

 

Bitte

4_react_with_docstore.ipynb

aufrufen.

 

🦜🔗 Strukturierte Daten

Hey, schön, dass Du Dich so
über Deinen VectorStore freust.

 

 

Unsere Daten liegen trotzdem in Oracle.

 

🦜🔗 Existierende Datenbanken anbinden

SQLDatabaseToolkit kümmert sich um:

  • Parsen der Schemata

  • Interpretieren der Daten

  • Erzeugen der SQL-Statements

 

Bitte

5_agent_with_sql_toolkit.ipynb

aufrufen.

 

🦜🔗 Plan & Solve

🦜🔗 Plan and Execute Agent

Der Waterfall unter den Agenten:

 

Bitte

6_plan_and_execute.ipynb

aufrufen.

 

🦜🔗 BabyAGI

AGIs, das MakeMoneyFast!!!111elf der AI.

 

Wer hat schon mal AutoGPT, BabyAGI, DevGPT, ... genutzt?

 

GrundIdee: jedes Problem von der AI lösen lassen ohne selbst zu arbeiten.

🦜🔗 BabyAGI

 

Bitte

7_BabyAGI.ipynb

aufrufen.

 

🦜🔗 BabyAGI

Praxiserfahrungen:

 

  • es funktioniert in limitierten Domänen

  • as in: Abteilungen, Arbeitsbereichen

  • es braucht Long Term Memory 

  • es braucht Interaktion

  • DRY in Richtig.

 

🦜🔗 Your PAL for formal stuff

Program Aided Language

 

Wenn eine formelle Sprache ein Problem besser lösen kann sollte sie es tun. 

 

In Langchain:

LLMath, Bash, Python, SQL etc ...

 

🦜🔗 Your PAL for formal stuff

 

Bitte

8_CPAL.ipynb

aufrufen.

 

🦜🔗 CAMEL: Teamwork

 

  • Eigentlich als Simulation für Games etc gedacht
     

  • Erstaunlich kluge Ergebnisse
     

  • Kann alle anderen Features in Kooperation integrieren
     

  • Wirr aber wahr: Teamwork funktioniert auch für AI besser.

 

 

Bitte

9_camel.ipynb

aufrufen.

 

🦜🔗 CAMEL: Teamwork

Praxis und Ausblick

  • Vieles ist noch instabil

  • Wenn man bleeding edge mag cool

  • Aber: lokal schnell große Benefits realisierbar
     

  • Infrastruktur drumherum entsteht erst

    • Observability (Langsmith etc)

    • Deployment

    • Automation (SuperAgent)

Q&A

Slides:  https://slides.com/johann-peterhartmann/autonome-agenten/

Code: https://github.com/mayflower/codetalks23/

Langchain-Buch: http://hub.mayflower.de/langchain-buch