function calling (German translation)

pull/348/head
Erik Behrends 6 months ago
parent 0a033ee0b4
commit 84360f685d

@ -1,9 +1,46 @@
# Prompting-Anwendungen
# LLM-Anwendungen
import { Callout } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs';
In diesem Abschnitt werden wir einige fortgeschrittene und interessante Methoden besprechen, wie wir Prompting nutzen können, um nützliche und anspruchsvollere Aufgaben zu bewältigen.
import { Cards, Card } from 'nextra-theme-docs';
import { FilesIcon } from 'components/icons';
<Callout emoji="⚠️">
Dieser Abschnitt befindet sich in intensiver Entwicklung.
</Callout>
In diesem Abschnitt werden wir einige fortgeschrittene und interessante Methoden besprechen, wie wir Prompt-Engineering nutzen können, um nützliche und anspruchsvollere Aufgaben mit LLMs (große Sprachmodelle) zu bewältigen.
<Cards>
<Card
icon={<FilesIcon />}
title="Funktionsaufrufe"
href="/applications/function_calling"
/>
<Card
icon={<FilesIcon />}
title="Generierung von Daten"
href="/applications/generating"
/>
<Card
icon={<FilesIcon />}
title="Generierung eines synthetischen Datensatzes für RAG"
href="/applications/synthetic_rag"
/>
<Card
icon={<FilesIcon />}
title="Umgang mit generierten Datensätzen und deren Vielfalt"
href="/applications/generating_textbooks"
/>
<Card
icon={<FilesIcon />}
title="Codegenerierung"
href="/applications/coding"
/>
<Card
icon={<FilesIcon />}
title="Fallstudie zur Klassifizierung von Absolventenjobs"
href="/applications/workplace_casestudy"
/>
<Card
icon={<FilesIcon />}
title="Prompt-Funktion"
href="/applications/pf"
/>
</Cards>

@ -1,8 +1,9 @@
{
"generating": "Generierung von Daten",
"synthetic_rag": "Generierung eines synthetischen Datensatzes für RAG",
"generating_textbooks": "Umgang mit generierten Datensätzen und deren Vielfalt",
"coding": "Codegenerierung",
"workplace_casestudy": "Fallstudie zur Klassifizierung von Absolventenjobs",
"pf": "Prompt-Funktion"
"function_calling": "Funktionsaufrufe",
"generating": "Generierung von Daten",
"synthetic_rag": "Generierung eines synthetischen Datensatzes für RAG",
"generating_textbooks": "Umgang mit generierten Datensätzen und deren Vielfalt",
"coding": "Codegenerierung",
"workplace_casestudy": "Fallstudie zur Klassifizierung von Absolventenjobs",
"pf": "Prompt-Funktion"
}

@ -1,3 +1,120 @@
# Function Calling with LLMs
# Funktionsaufrufe mit LLMs
This page needs a translation! Feel free to contribute a translation by clicking the `Edit this page` button on the right.
## Erste Schritte beim Funktionsaufruf
Funktionsaufrufe bilden die Fähigkeit, LLMs zuverlässig mit externen Tools zu verbinden, um eine effektive Nutzung von Werkzeugen und die Interaktion mit externen APIs zu ermöglichen.
LLMs wie GPT-4 und GPT-3.5 wurden feinabgestimmt, um zu erkennen, wann eine Funktion aufgerufen werden muss, und geben dann JSON aus, das Argumente zum Aufruf der Funktion enthält. Die Funktionen, die durch Funktionsaufrufe aufgerufen werden, dienen als Werkzeuge in Ihrer KI-Anwendung, und Sie können in einer einzelnen Anfrage mehr als eine definieren.
Der Funktionsaufruf ist eine wichtige Fähigkeit für den Aufbau von LLM-betriebenen Chatbots oder Agenten, die Kontext für ein LLM abrufen oder mit externen Tools interagieren müssen, indem sie natürliche Sprache in API-Aufrufe umwandeln.
Durch den Funktionsaufruf können Entwickler folgendes erstellen:
- Konversationsagenten, die externe Werkzeuge effizient nutzen können, um Fragen zu beantworten. Zum Beispiel wird die Anfrage „Wie ist das Wetter in Belize?“ in einen Funktionsaufruf wie `get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')` umgewandelt
- LLM-getriebene Lösungen zum Extrahieren und Taggen von Daten (z. B. Extrahieren von Personennamen aus einem Wikipedia-Artikel)
- Anwendungen, die natürliche Sprache in API-Aufrufe oder gültige Datenbankabfragen umwandeln können
- Konversationswissenssuchmaschinen, die mit einer Wissensdatenbank interagieren
In diesem Leitfaden zeigen wir, wie Sie Modelle wie GPT-4 und Open-Source-Modelle dazu auffordern können, für verschiedene Anwendungsfälle Funktionsaufrufe auszuführen.
## Funktionsaufrufe mit GPT-4
Als einfaches Beispiel nehmen wir an, wir hätten das Modell gebeten, das Wetter an einem bestimmten Ort herauszufinden.
Das LLM allein könnte auf diese Anfrage nicht antworten, da es auf einem Datensatz mit einem Stichtag trainiert wurde. Die Lösung dafür ist, das LLM mit einem externen Tool zu kombinieren. Sie können die Funktionsaufruffähigkeiten des Modells nutzen, um eine externe Funktion zu bestimmen, die aufgerufen werden soll, zusammen mit ihren Argumenten, und dann eine abschließende Antwort zurückgeben lassen. Unten finden Sie ein einfaches Beispiel, wie Sie dies mit den OpenAI APIs erreichen können.
Nehmen wir an, ein Nutzer stellt dem Modell folgende Frage:
```
Wie ist das Wetter in London?
```
Um diese Anfrage mit Funktionsaufrufen zu bearbeiten, ist der erste Schritt, eine Wetterfunktion oder einen Satz von Funktionen zu definieren, die Sie als Teil einer Anfrage an die OpenAI-API weitergeben werden:
```python
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
},
}
]
```
Die Funktion `get_current_weather` gibt das aktuelle Wetter an einem gegebenen Ort zurück. Wenn Sie diese Funktionsdefinition als Teil der Anfrage übergeben, wird nicht tatsächlich eine Funktion ausgeführt, sondern es wird lediglich ein JSON-Objekt zurückgegeben, das die Argumente enthält, die zum Aufrufen der Funktion benötigt werden. Hier sind einige Code-Schnipsel, wie Sie dies erreichen können.
Sie können eine Completion-Funktion wie folgt definieren:
```python
def get_completion(messages, model="gpt-3.5-turbo-1106", temperature=0, max_tokens=300, tools=None):
response = openai.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
tools=tools
)
return response.choices[0].message
```
So können Sie die Nutzerfrage zusammensetzen:
```python
messages = [
{
"role": "user",
"content": "Wie ist das Wetter in London?"
}
]
```
Schließlich können Sie den oben stehenden `get_completion` aufrufen und dabei sowohl die `messages` als auch die `tools` übergeben:
```python
response = get_completion(messages, tools=tools)
```
Das `response`-Objekt enthält Folgendes:
```python
ChatCompletionMessage(content=None, role='assistant', function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='...', function=Function(arguments='{"location":"London","unit":"celsius"}', name='get_current_weather'), type='function')])
```
Insbesondere enthält das `arguments`-Objekt die wichtigen Argumente, die vom Modell extrahiert wurden und die benötigt werden, um die Anfrage abzuschließen.
Anschließend können Sie entscheiden, eine externe Wetter-API für das tatsächliche Wetter zu nutzen. Sobald Sie die Wetterinformationen zur Verfügung haben, können Sie diese zurück an das Modell geben, um eine abschließende Antwort auf die ursprüngliche Nutzerfrage zusammenzufassen.
Hier ist ein [Notebook](https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/notebooks/pe-function-calling.ipynb) mit einem einfachen Beispiel, das zeigt, wie man Funktionsaufrufe mit den OpenAI APIs verwendet.
## Funktionsaufrufe mit Open-Source-LLMs
Weitere Hinweise zu Funktionsaufrufen mit Open-Source-LLMs folgen in Kürze...
## Anwendungsfälle für Funktionsaufrufe
Weitere Anwendungsfälle für Funktionsaufrufe folgen in Kürze...
## Referenzen
- [Fireworks Raises the Quality Bar with Function Calling Model and API Release](https://blog.fireworks.ai/fireworks-raises-the-quality-bar-with-function-calling-model-and-api-release-e7f49d1e98e9)
- [Benchmarking Agent Tool Use and Function Calling](https://blog.langchain.dev/benchmarking-agent-tool-use/)
- [Function Calling](https://ai.google.dev/docs/function_calling)
- [Interacting with APIs](https://python.langchain.com/docs/use_cases/apis)
- [OpenAI's Function Calling](https://platform.openai.com/docs/guides/function-calling)
- [How to call functions with chat models](https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models)
- [Pushing ChatGPT's Structured Data Support To Its Limits](https://minimaxir.com/2023/12/chatgpt-structured-data/)

@ -1,5 +1,13 @@
# Einleitung
import { Cards, Card } from 'nextra-theme-docs';
import {
CardsIcon,
OneIcon,
WarningIcon,
FilesIcon,
} from 'components/icons';
Prompt-Engineering ist eine relativ neue Disziplin, die sich mit der Entwicklung und Optimierung von Prompts beschäftigt, um große Sprachmodelle (LLMs) effizient für eine Vielzahl von Anwendungen und Einsatzmöglichkeiten zu nutzen und zu entwickeln.
Fähigkeiten im Bereich Prompt-Engineering helfen dabei, die Fähigkeiten und Grenzen von LLMs besser zu verstehen. Forscher verwenden Prompt-Engineering, um die Sicherheit und die Kapazität von LLMs bei einer breiten Palette von gängigen und komplexen Aufgaben wie Fragebeantwortung und arithmetischem Denken zu verbessern. Entwickler nutzen Prompt-Engineering, um robuste und effektive Prompting-Techniken zu entwerfen, die mit LLMs und anderen Tools interagieren.
@ -7,3 +15,31 @@ Fähigkeiten im Bereich Prompt-Engineering helfen dabei, die Fähigkeiten und Gr
Dieser umfassende Leitfaden behandelt die Theorie und praktischen Aspekte des Prompt-Engineerings und wie man die besten Prompting-Techniken einsetzt, um mit LLMs zu interagieren und sie zu nutzen.
Alle Beispiele wurden mit `gpt-3.5-turbo` unter Verwendung von [OpenAIs Playground](https://platform.openai.com/playground) getestet, sofern nicht anders angegeben. Das Modell verwendet die Standardeinstellungen, d.h., `temperature=0.7` und `top-p=1`. Die Prompts sollten auch mit anderen Modellen funktionieren, die ähnliche Fähigkeiten wie `gpt-3.5-turbo` haben, aber es könnten sich vollkommen andere Ergebnisse ergeben.
<Cards>
<Card
icon={<FilesIcon />}
title="LLM Einstellungen"
href="/introduction/settings"
/>
<Card
icon={<FilesIcon />}
title="Grundlagen des Promptings"
href="/introduction/basics"
/>
<Card
icon={<FilesIcon />}
title="Elemente eines Prompts"
href="/introduction/elements"
/>
<Card
icon={<FilesIcon />}
title="Allgemeine Tipps für das Entwerfen von Prompts"
href="/introduction/tips"
/>
<Card
icon={<FilesIcon />}
title="Beispiel für Prompts"
href="/introduction/examples"
/>
</Cards>

@ -1,10 +1,25 @@
# Modelle
import { Callout } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs';
import { Cards, Card } from 'nextra-theme-docs';
import { FilesIcon } from 'components/icons';
In diesem Abschnitt werden wir einige der neuesten Sprachmodelle behandeln und wie sie die neuesten und fortschrittlichsten Techniken im Prompting erfolgreich anwenden. Zusätzlich gehen wir auf die Fähigkeiten dieser Modelle bei einer Reihe von Aufgaben und Prompting-Setups ein, wie etwa Few-Shot Prompting, Zero-Shot Prompting und Chain-of-Thought Prompting. Das Verständnis dieser Fähigkeiten ist wichtig, um die Grenzen dieser Modelle zu verstehen und wie man sie effektiv einsetzt.
<Callout emoji="⚠️">
Dieser Abschnitt ist in intensiver Bearbeitung.
</Callout>
<Cards>
<Card icon={<FilesIcon />} title="Flan" href="/models/flan" />
<Card icon={<FilesIcon />} title="ChatGPT" href="/models/chatgpt" />
<Card icon={<FilesIcon />} title="LLaMA" href="/models/llama" />
<Card icon={<FilesIcon />} title="GPT-4" href="/models/gpt-4" />
<Card
icon={<FilesIcon />}
title="Mistral 7B"
href="/models/mistral-7b"
/>
<Card icon={<FilesIcon />} title="Gemini" href="/models/gemini" />
<Card
icon={<FilesIcon />}
title="LLM-Sammlung"
href="/models/collection"
/>
</Cards>

@ -23,6 +23,7 @@ Die folgenden sind die neuesten Papers (sortiert nach Veröffentlichungsdatum) z
## Ansätze
- [Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4](https://arxiv.org/abs/2312.16171v1) (Dezember 2023)
- [Large Language Models as Analogical Reasoners](https://arxiv.org/abs/2310.01714) (Oktober 2023)
- [Query-Dependent Prompt Evaluation and Optimization with Offline Inverse RL](https://arxiv.org/abs/2309.06653) (September 2023)
- [Chain-of-Verification Reduces Hallucination in Large Language Models](https://arxiv.org/abs/2309.11495) (September 2023)

@ -1,11 +1,27 @@
# Risiken & Missbrauch
import { Callout } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs';
import { Cards, Card } from 'nextra-theme-docs';
import { FilesIcon } from 'components/icons';
Wir haben bereits gesehen, wie effektiv gut gestaltete Prompts für verschiedene Aufgaben sein können, die Techniken wie Few-Shot-Learning und Chain-of-Thought-Prompting verwenden. Wenn wir darüber nachdenken, auf der Basis von LLMs reale Anwendungen zu entwickeln, wird es entscheidend, über den Missbrauch, Risiken und Sicherheitspraktiken im Umgang mit Sprachmodellen nachzudenken.
Gut formulierte Prompts können zu effektivem Einsatz von LLMs für verschiedene Aufgaben unter Verwendung von Techniken wie Few-Shot-Learning und Chain-of-Thought-Prompts führen. Sobald Sie darüber nachdenken, reale Anwendungen auf Basis von LLMs zu entwickeln, wird es auch entscheidend, über Missbräuche, Risiken und Sicherheitspraktiken im Zusammenhang mit Sprachmodellen nachzudenken.
Dieser Abschnitt konzentriert sich darauf, einige der Risiken und Missbräuche von LLMs durch Techniken wie Prompt-Injektionen hervorzuheben. Er beleuchtet auch schädliche Verhaltensweisen und wie man sie möglicherweise durch effektive Prompting-Techniken abmildern kann. Andere interessante Themen umfassen Allgemeingültigkeit, Kalibrierung, Voreingenommenheiten, soziale Verzerrungen und Faktualität, um nur einige zu nennen.
Dieser Abschnitt konzentriert sich darauf, einige der Risiken und Missbräuche von LLMs mittels Techniken wie Prompt-Injektionen hervorzuheben. Es beleuchtet auch schädliche Verhaltensweisen und wie diese möglicherweise durch effektive Prompting-Techniken und Tools wie Moderations-APIs gemildert werden können. Andere interessante Themen umfassen Allgemeingültigkeit, Kalibrierung, Voreingenommenheiten, soziale Verzerrungen und Faktentreue, um nur einige zu nennen.
<Callout emoji="⚠️">
Dieser Abschnitt befindet sich in intensiver Entwicklung.
</Callout>
<Cards>
<Card
icon={<FilesIcon />}
title="Adversariales Prompting"
href="/risks/adversarial"
/>
<Card
icon={<FilesIcon />}
title="Faktentreue"
href="/risks/factuality"
/>
<Card
icon={<FilesIcon />}
title="Verzerrungen (biases)"
href="/risks/biases"
/>
</Cards>

@ -1,5 +1,87 @@
# Prompting-Techniken
Bis zu diesem Punkt sollte klar sein, dass es hilft, Prompts zu verbessern, um bessere Ergebnisse bei verschiedenen Aufgaben zu erzielen. Das ist die gesamte Idee hinter dem Prompt Engineering.
import { Cards, Card } from 'nextra-theme-docs';
import {
CardsIcon,
OneIcon,
WarningIcon,
FilesIcon,
} from 'components/icons';
Während die grundlegenden Beispiele unterhaltsam waren, behandeln wir in diesem Abschnitt fortgeschrittenere Prompting-Engineering-Techniken, die es uns ermöglichen, komplexere und interessantere Aufgaben zu bewältigen.
Das Prompt-Engineering hilft dabei, Prompts effektiv zu gestalten und zu verbessern, um bessere Ergebnisse bei verschiedenen Aufgaben mit LLMs zu erzielen.
Während die vorherigen grundlegenden Beispiele unterhaltsam waren, behandeln wir in diesem Abschnitt fortgeschrittenere Techniken des Prompt-Engineerings, die es uns ermöglichen, komplexere Aufgaben zu bewältigen und die Zuverlässigkeit und Leistung von LLMs zu verbessern.
<Cards>
<Card
icon={<FilesIcon />}
title="Zero-Shot Prompting"
href="/techniques/zeroshot"
/>
<Card
icon={<FilesIcon />}
title="Few-Shot Prompting"
href="/techniques/fewshot"
/>
<Card
icon={<FilesIcon />}
title="Chain-of-Thought Prompting"
href="/techniques/cot"
/>
<Card
icon={<FilesIcon />}
title="Selbstkonsistenz"
href="/techniques/consistency"
/>
<Card
icon={<FilesIcon />}
title="Generiertes Wissens-Prompting"
href="/techniques/knowledge"
/>
<Card
icon={<FilesIcon />}
title="Tree of Thoughts Prompting"
href="/techniques/tot"
/>
<Card
icon={<FilesIcon />}
title="Retrieval Augmented Generation"
href="/techniques/rag"
/>
<Card
icon={<FilesIcon />}
title="Automatic Reasoning and Tool-Use"
href="/techniques/art"
/>
<Card
icon={<FilesIcon />}
title="Automatic Prompt Engineer"
href="/techniques/ape"
/>
<Card
icon={<FilesIcon />}
title="Active-Prompt"
href="/techniques/activeprompt"
/>
<Card
icon={<FilesIcon />}
title="Direct Stimulus Prompting"
href="/techniques/dsp"
/>
<Card
icon={<FilesIcon />}
title="Program-Aided Language"
href="/techniques/pal"
/>
<Card icon={<FilesIcon />} title="ReAct" href="/techniques/react" />
<Card
icon={<FilesIcon />}
title="Multimodal CoT"
href="/techniques/multimodalcot"
/>
<Card
icon={<FilesIcon />}
title="Graph-Prompting"
href="/techniques/graph"
/>
</Cards>

Loading…
Cancel
Save