Wer seid Ihr?

 

  • ChatGPT-Nutzer? CoPilot?

  • Python-Entwickler?

  • Kennt  AutoGPT, AgentVerse, BabyAGI, MetaGPT etc?

  • Schon mit LangChain gearbeitet?

  • Und mit LangGraph?

Vorstellungsrunde

 

  • Was macht Ihr?

  • Was würdet Ihr gerne mitnehmen?

Mitmachen!

Ein Internetzugang und ein Browser reichen aus!

Sourcen sind alle Online.

Was sind Agenten?

  • ALT! (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 eigenständig und langfristig aus Beobachtungen und Entscheidungen

Was sind Agenten?

llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)
prompt = hub.pull("hwchase17/openai-functions-agent")
tools = [TavilySearchResults()]
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke({"input": "how can langsmith help with testing?"})

Welchen Businessprozess
unterstützt ChatGPT?

 

GenAI Agenten sind universelle
Problemlöser für eine Business-Domäne.

... und sie sind schuld daran.

Das wusste
OpenAI.

Wer sich umorientieren möchte ..

Warum jetzt? 

Agenten gibt es doch schon lange, Sprachmodelle auch.

Warum jetzt auf einmal

so einen Wirbel machen?

Language Models

Gibt es seit den 80ern.

  • Können:

    • Übersetzen

    • Text Generation

    • Lücken füllen

    • Entities erkennen
      ...

       

  • Das statistisch Wahrscheinliche auf Basis von Model & Input

Das Teekesselchen-Dilemma

  • Warum haben Fische Schuppen? Damit sie ihre Fahrräder unterstellen können.

     

  • Treffen sich zwei Kerzen. Fragt die eine die andere:
    ​„Wollen wir zusammen ausgehen?"

Context matters ...

Erst mit dem Kontext kann man herausfinden, was tatsächlich gemeint ist.

Attention is all You need

Was muss ich berücksichtigen, was nicht?

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 ?

Transformer Based
Large Language Models

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

GPT: LARGE Language Models

 

  • Billionen von Ausgangsdaten

  • Milliarden von Parametern(Gewichten)

  • Sehr teuer zu trainieren:
    GPT-4 100.000.000 $

  • "Weltwissen", um korrekt arbeiten zu können

Training:
Die richtige Fortsetzung für

"Zähl mal von 1 bis 12"

ist

 

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

Wie man aus Text Generation
Instruction Following
macht

  • 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

Finetuning

Finetuning

<|im_start|>system
Sie sind ein KI-Assistent. Sie erhalten eine Aufgabe. Sie müssen eine detaillierte und lange Antwort generieren.
<|im_start|>user
Generieren Sie einen Satz mit etwa fünfzehn Wörtern, der all diese Daten beschreibt:
Mitsommerhaus
Typ: Restaurant;
Essen Chinesisch;
Preisspanne: moderat;
Kundenbewertung: 3 von 5;
Ort: in der Nähe vom Hofbräuhaus

<|im_start|>assistant
Das Mittsommerhaus ist ein moderatpreisiges Restaurant in der Nähe vom Hofbräuhaus, bietet chinesisches Essen an und hat eine Kundenbewertung von 3 von 5.
<|im_end|>
 

Systemprompt

Prompt

Antwort

FLAN-Palm Finetuning

Und was tuned man so fein?

Warum Agenten jetzt funktionieren

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

Größere Modelle, besseres Finetuning

Ende 2022...

... und seitdem sind alle hibbelig.

Finetuning

  • Generate Texts
  • Summarization
  • Classification
  • Question Answering

Planned ...

  • Follow Instructions
  • Reasoning
  • Decision making
  • Evaluate Results

Emergent...


 

  • 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

Agenten von ChatGPT

Agenten für Entwickler:Innen

Wer nutzt CoPilot?

Probleme von LLM-Applikationen

  • Sie halluzinieren, man kann Ihnen nicht trauen

  • Sie könne nur einfache Aufgaben erledigen. Für komplexe Aufgaben braucht es einen Menschen zum Prompten.

  • Sie antworten falsch, und ich muss dann dafür haften.

  • Was ist mit Prüfung mittels Rag?

  • Mit Self-Critique? 

  • Mit Schleifen, um es zu korrigieren nach Prüfung?

Text

Kahnemans System 1 vs System 2

  • System 1: Automatisch, unreflektiert, unbewusst.

  • System 2: bewusst, gezielt, reflektiert, selbstkritisch, analytisch und informiert

Das LLM und Agenten verhalten sich
wie System 1 und System 2.

 

Verlässlichkeit und geprüfte
Information gibt es nur von Agenten.

https://www.linkedin.com/pulse/state-autonomous-ai-agents-dean-meyer/

Warum LLMs mühsam sind ...

  • LLMs sind sehr langsam: 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, LlamaIndex

  • Langchain Community

    • Features, Doku, Entwickler

    • viel Forks, viele Committer

  • Vollständigstes Framework

  • Größte Verbreitung

  • Industriestandard, zB Kurse bei Deeplearning.ai

🦜🔗 LangChain

 

  • Gegenargumente

    • Umfangreich

    • Steile Lernkurve

    • zum Teil hohe Komplexität

    • zum Teil veraltete Dokumentation

    • häufige Compability Breaks

  • Wird noch eine Weile populär bleiben.

🦜🔗 LangChain

🦜🔗 LangChain

🦜🔗 LangSmith
Tracing

🦜🔗 LangSmith
Promptlogging,
Testing, Annotation,
Model-Testing

🦜🔗 LangSmith
Promptlogging,
Testing, Annotation,
Model-Testing

🦜🔗 LangChain
Core

🦜🔗 HandsOn 

Bitte
https://workshop.aisaisbaby.com/
aufrufen!

Bitte mit Realnamen registrieren, damit wir bei Bedarf unterstützen können.

 

Für die Mutigen:
https://github.com/mayflower/langchain_agents

JupyterHub unter
https://workshop.aisaisbaby.com/

Im Folder langchain_agents:

🦜🔗 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

🦜🔗
01_basics.ipynb

02_langchain_repo.ipynb

🦜🔗 Long Term Memory

Natürliche Sprache != Strukturierte Daten

Es gibt keine eindeutigen Keys für den Lookup.

! 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."

 

 

 

🦜🔗
03_rag_basics.ipynb

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

🦜🔗
04_react.ipynb

  • 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

🦜🔗
05_agentic_rag.ipynb

ReAct

Tools

🦜🔗 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

🦜🔗 Einfache Toolnutzung

🦜🔗 Flexible Toolnutzung

🦜🔗 Gegenseitige Aufrufe

https://github.com/jwa91/LangGraph-Expense-Tracker/

🦜🔗 Workflows mit Aufruffolgen

https://blog.langchain.dev/code-execution-with-langgraph/

🦜🔗 Appium Flow

https://github.com/assafelovic/gpt-researcher/

🦜🔗 GTP-Researcher

State
Nodes
Edges

Agenten-Workflows werden als State-Machine modeliert

from langgraph.graph import MessageGraph, END

 

workflow = MessageGraph()

workflow.add_node("chatbot", model)

workflow.set_entry_point("chatbot")

workflow.add_edge("chatbot", END)

 

graph_app = workflow.compile()

  • StateGraph
    • Enthält den Graphen
    • Status und Konfiguration als Parameter
    • Jedes Statuselement kann einen Reducer haben
from langgraph.graph import StateGraph, MessageGraph

def reducer(a: list, b: int | None) -> int:
    if b is not None:
        return a + [b]
    return a

class State(TypedDict): 
    x: Annotated[list, reducer] 

class ConfigSchema(TypedDict): 
    r: float 

graph = StateGraph(State, config_schema=ConfigSchema)

 

  • ​meist Python-Funktionen
  • erster Parameter der Funktion ist der State
  • zweiter (optionaler Parameter) ist configuration
  • kommunizieren über Status
  • Sonderknoten START und END
def myfunc(state):
    answer = state["x"][-1]
graph.add_node("agent", myfunc)
graph.add_node("chatbot", async (state: BaseMessage[]) => {
    return model.invoke(state);
});

workflow.add_node("action", ToolNode(tools))

Nodes / Knoten

  • ​Direkte verbindungen zwischen zwei Nodes
  • Bedingte Verbindungen zwischen zwei Nodes
  • Können parallel ausgeführt werden
graph.add_edge("step1", "step2")
def should_continue(data)
    if isinstance(data["agent_outcome"], AgentFinish):
         return "end"
    else:
        return "continue"

graph.add_conditional_edges("agent", 
                            should_continue,
                            {"continue": "next_action",

                                                                                                             "end": END}

)

Edges / Kanten

🦜🔗
06_langgraph_intro.ipynb

🦜🔗
07_checkpoints.ipynb

Context oder VectorStore?

🦜🔗
08_memory.ipynb

🦜🔗 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

09_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

🦜🔗 Multimodale Agenten

 

  • Multimodale Large Language Models: Image, Video, Audio

  • OCR, Object Recognition, Question Answering im Vorübergehen

  • "Trainierst Du noch oder bist Du schon Multimodal?"

  • Dokumentenprüfung, Extraktion, Zusammenfassung und Beantwortung

 

 

Bitte

14_agent_with_vision.ipynb

aufrufen.

 

🦜🔗 Multimodale Agenten

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 

Autonome Agenten mit Langchain

By Johann-Peter Hartmann

Autonome Agenten mit Langchain

  • 244