GPT & LangChain

Tobias Braner

triggercode GmbH

Kickstart für KI Anwendungen mit der GPT API und LangChain

Basics

Large Language Model (LLM)

Generative AI, trainiert auf riesigen Textkorpus, Instruktionen und Human Feedback (RLHF).

GPT-4 | Llama 2 | PaLM 2 | FreeWill2
👉 Open Source Models

Was kann ein LLM?

Menschliche Sprache...
verstehen
zusammenfassen
generieren
vorhersagen

Worin unterscheiden sich die LLMs?

Qualität und Quantität des trainierten Inputs
Anzahl der Parameter ➡ Komplexität

Context-Größe (Tokens)

Was ist ein Token?

„Kickstart für KI Anwendungen mit der GPT API und LangChain”

Tokens

OpenAI Tokenizer

TokenIDs

[45390, 9688, 277, 25151, 509, 40, 1052, 86, 437, 2150, 268, 10255, 4587, 402, 11571, 7824, 3318, 16332, 35491]

👉 OpenAI Tokenizer

Das Problem mit den Tokens

1 Token ~ 0.75 Worte

16k Context ~ 12k Worte


						
					

LLM Defizite

[…] Jedoch mangelt es ihnen an aktuellen Informationen, domänenspezifischem Wissen und komplexeren Schlussfolgerungen. […]

Defizite ausgleichen

Context mit aktuellen Informationen und domänenspezifischem Wissen anreichern.
Komplexere Schlussfolgerungen durch Verkettung und Verzweigung von GPT-Aufrufen, Tools und anderen APIs.

LangChain

LangChain ist ein Framework für die Entwicklung von Anwendungen, die auf LLMs basieren.

👉 LangChain Python
👉 LangChain JS

LangChain Übersicht

Mit LLMs interagieren

Prompt Templating


const model = new OpenAI({ temperature: 0 });

const parser = StructuredOutputParser
	.fromNamesAndDescriptions({
		answer: "answer to the user's question",
		source: "source used to answer the user's question," +
		        "should be a website.",
	});

const formatInstructions = parser.getFormatInstructions();

const prompt = new PromptTemplate({
  template:
    "Answer the user's question as best as possible.\n" +
		"{formatInstructions}\n{question}",
  inputVariables: ["question"],
  partialVariables: { formatInstructions },
});

const userPrompt = await prompt.format({
  question: "What is the capital of France?",
});

const response = await model.call(userPrompt);

const result = await parser.parse(response)

console.log(result);

{ 
	answer: 'Paris', 
	source: 'https://en.wikipedia.org/wiki/Paris' 
}

Mit Daten arbeiten

Embeddings: Text zu Vektor

Verkettete Interaktionen & Agenten

Simple Sequential Chain


const chain1 = new LLMChain({ llm, prompt: prompt1 });
const chain2 = new LLMChain({ llm, prompt: prompt2 });
const simpleSequentialChain = new SimpleSequentialChain({
	chains: [chain1, chain2]
});
simpleSequentialChain.run("Software Product")
					

Prompt 1

[…] Generiere einen Produktnamen in der Kategorie {productType}.

Prompt 2

Generiere eine Beschreibung für ein Produkt mit dem Namen {productName}.

Sequential Chain

Router Chain

Chains
Sequenz der Aktionen ist vordefiniert
LLM only

Agents
LLM ermittelt nächste Aktion bzw. Aktionssequenz
Externe „Tools” möglich

LangSmith

Und vieles mehr ...

Use Cases

Success Stories schreiben

  • Es existieren ~100 Beispiele als PDF (Zwei-Seiter)
  • Alle mit ähnlichem Inhalt & Struktur
  • Gleicher Schreibstil (Tone)
  • Unterschiede bei Kunde, Branche und verwendeter Lösung

🏁 Draft-Generator

Ablauf

Beispiel Eingabemaske

Mit einfacher Anweisung und drei Beispielen konnten alle ~100 PDFs in JSON überführt werden.

Die verwendeten Lösungen und Branchen wurden extrahiert.

Alle Beispiele mit Mapping von Input-Text zu Output-JSON und Metadaten sind in SQL Datenbank abgelegt.

Mithilfe der Beispiele werden nun neue Success Stories generiert.

Beispiel Ausgabe

Zusammenfassung

Learnings

LangChain ist relativ neu (Okt. 2022)
Eine Doku ist vorhanden... aber nicht gut genug
JS-Version hängt hinterher
Prompting ist eine Kunst für sich
Der Context ist zu klein…
Test-Automatisierung ist absolut kritisch und erforderlich!

Ausblick

LLMs sind gekommen, um zu bleiben
LLMs sind ein weiteres Tool im Toolkit eines Entwicklers

Vielen Dank!

Kontakt

Tobias Braner
Geschäftsführer
triggercode GmbH
✉️ t.braner@triggerco.de

Resources

👉 https://www.langchain.com/

👉 https://www.deeplearning.ai/short-courses/