Direkt zum Inhalt

Microsoft's TinyTroupe: Ein Leitfaden mit Beispielen

Lerne, wie du mit TinyTroupe von Microsoft Interaktionen zwischen KI-Personas mit unterschiedlichen Eigenschaften für verschiedene Zwecke simulieren kannst.
Aktualisierte 28. Nov. 2024  · 8 Min. Lesezeit

Musstest du schon einmal ein Treffen simulieren, bei dem deine Produktideen oder deine Werbung getestet werden? TinyTroupe löst dieses Problem.

TinyTroupe ist ein von Microsoft entwickeltes Open-Source-Framework für Agenten. Es bietet ein leistungsstarkes Simulationsframework, mit dem du mehrere KI-gesteuerte Personas erstellen und sehen kannst, wie sie miteinander interagieren.

In diesem Artikel erkläre ich TinyTroupe und implementiere ein Demoprojekt, damit du verstehst, wie du realistische Personas in einer interaktiven Umgebung erstellen kannst. Während die offizielle Dokumentation eine umfassende Einführung bietet, werde ich mich auf Schritt-für-Schritt-Anleitungen und Originalbeispiele konzentrieren.

KI-Anwendungen entwickeln

Lerne, wie man KI-Anwendungen mit der OpenAI API erstellt.
Start Upskilling for Free

Was ist TinyTroupe?

TinyTroupe ist eine kürzlich veröffentlichte experimentelle LLM-basierte Python-Bibliothek, mit der du "TinyPersons" mit bestimmten Persönlichkeiten, Interessen und Zielen erstellen kannst. Diese Agenten zielen darauf ab, realistisches menschliches Verhalten unter bestimmten Bedingungen zu simulieren.

TinyTroupe zielt darauf ab, eine Umgebung zu schaffen, in der die Interaktionen, Dialoge und Handlungen von menschenähnlichen Agenten unter bestimmten Bedingungen simuliert werden. Die offizielle Dokumentation bietet eine Reihe von Ideen für den Einsatz dieses Frameworks, bei denen es vor allem um die Steigerung der Produktivität und das Testen von Geschäftsszenarien geht, z. B. die Simulation einer Brainstorming-Sitzung durch eine Fokusgruppe oder die Bewertung digitaler Anzeigen durch ein simuliertes Publikum.

Abgesehen von den geschäftlichen Anwendungsfällen ist es faszinierend und macht Spaß, verschiedene Szenarien zu simulieren und Interaktionen zwischen Personen zu beobachten, die sonst nicht möglich wären (wie wir es in diesem Artikel tun werden).

TinyTroupe-Image aus seinem Repository.

Quelle: TinyTroupe GitHub page

Die wichtigsten Merkmale von TinyTroupe sind:

  1. Persona-basiertes Design: Jede simulierte Person (TinyPerson ) kann mit detaillierten Merkmalen versehen werden, darunter Alter, Hintergrund, Beruf, Fähigkeiten und Meinungen.
  2. Multi-Agenten-Interaktionen: Personas können miteinander interagieren, um komplexe Szenarien zu simulieren.

Um den Prozess der Erstellung dieser Agenten zu verbessern, bietet TinyTroupe Funktionen wie:

  • TinyPersonFactory: Eine Klasse für die schnelle Erzeugung von TinyPersons, die eine kurze Beschreibung erhalten.
from tinytroupe.factory import TinyPersonFactory

factory = TinyPersonFactory("A hospital in São Paulo.")
person = factory.generate_person("Create a Brazilian person that is a doctor, like pets and the nature and love heavy metal.")
  • Agent-Fähigkeiten: Methoden wie listen()und listen_and_act()um Stimuli zu empfangen und Aktionen auszuführen. die define() Methode ermöglicht es, Eigenschaften und Merkmale deiner Wahl zu erstellen, z. B. das Alter oder Beschreibungen.
  • TinyTool: Eine Klasse, um simulierte Werkzeuge zu erstellen, die von Agenten verwendet werden können.
  • Bewertung: Klassen, um das Verhalten von Agenten zu validieren oder das Ergebnis von Interaktionen zu analysieren. (z. B. TinyPersonValidator und ResultsExtractor)

TinyTroupe einrichten

Um TinyTroupe zu installieren, können wir die folgenden Schritte ausführen:

1. Erstelle eine Python-Umgebung: 

conda create -n tinytroupe python=3.10

2. Aktiviere conda:

bash conda activate tinytroupe

3. Klone das Repository:

git clone <https://github.com/microsoft/tinytroupe>
cd tinytroupe

4. Installiere die notwendigen Bibliotheken: 

bash pip install .

TinyTroupe Beispielprojekt: KI-Symposium

Wir werden eine einfache Simulation erstellen, um zu zeigen, wie TinyTroupe in der Praxis funktioniert. Das Ziel ist es, einige historische Persönlichkeiten und Experten über den aktuellen und zukünftigen Stand der künstlichen Intelligenz. Zu diesen Figuren gehören Richard Feynman, Aristoteles, Erwin Schrödinger und Alan Turing.

Importe

Wenn du mitmachen willst, solltest du deinen OpenAI-API-Schlüssel bereithalten, da wir GPT-4 verwenden werden - hier ist ein kurzes Tutorial über Einstieg in die OpenAI-API.

Wir beginnen damit, die notwendigen Module und unseren API-Schlüssel zu importieren.

import sys
sys.path.append('..')

from tinytroupe.agent import TinyPerson
from tinytroupe.environment import TinyWorld
from tinytroupe.extraction import default_extractor as extractor
import os

# Load environment variables from .env.local
os.environ["OPENAI_API_KEY"] = "YOUR-API-KEY"

TinyPersons erstellen

Wir verwenden die Klasse TinyPerson, um unsere vier Figuren zu erstellen. Wenn du deine Charaktere so gut wie möglich beschreibst, hilft das TinyTroupe dabei, genauere Simulationen zu erstellen. Wir beschreiben das Alter, die Nationalität, den Beruf und die Routine jeder Figur (du kannst KI für diesen Teil verwenden). Beachte, dass die Beschreibung der Charaktere nicht bei allen gleich sein muss.

Mit dem folgenden Code erstellen wir vier Persönlichkeiten:

  • Richard Feynman
  • Aristotle
  • Erwin Schrödinger
  • Alan Turing
def create_feynman():
    feynman = TinyPerson("Richard Feynman")
    feynman.define("age", 69)  # Lived 1918-1988
    feynman.define("nationality", "American")
    feynman.define("occupation", "Theoretical Physicist")
    
    feynman.define("occupation_description",
        """
        You are a theoretical physicist known for your groundbreaking work in quantum mechanics and 
        quantum electrodynamics (QED). You developed the Feynman diagrams, a visual tool for understanding 
        particle interactions, and made significant contributions to the Manhattan Project. As a professor 
        at Caltech, you're known for your exceptional teaching ability and making complex physics concepts 
        accessible. You won the Nobel Prize in Physics in 1965 for your work on QED. Your main challenges 
        involve pushing the boundaries of theoretical physics while maintaining rigorous mathematical precision. 
        You're also passionate about making science education engaging and understandable for students.
        """)
    return feynman

def create_aristotle():
    aristotle = TinyPerson("Aristotle")
    aristotle.define("age", 62)  
    aristotle.define("nationality", "Greek")
    aristotle.define("occupation", "Philosopher and Scientist")
    
    aristotle.define("occupation_description",
        """
        You are a philosopher and polymath who founded the Lyceum school in Athens. Your work spans 
        multiple disciplines including logic, metaphysics, biology, physics, ethics, and politics. You 
        developed the system of deductive reasoning through syllogisms and established many of the 
        foundational principles of Western philosophy. Your scientific observations and classifications 
        of living things remained influential for nearly two millennia. As Alexander the Great's tutor, 
        you had unique opportunities to gather specimens and information from across the known world. 
        Your main challenges involve systematizing all human knowledge and understanding the fundamental 
        nature of reality and truth.
        """)
    return aristotle

def create_schrodinger():
    schrodinger = TinyPerson("Erwin Schrödinger")
    schrodinger.define("age", 73) 
    schrodinger.define("nationality", "Austrian")
    schrodinger.define("occupation", "Theoretical Physicist")
    schrodinger.define("routine", 
        """Your days are spent developing mathematical equations, engaging in theoretical work, 
        and discussing quantum mechanics with colleagues. You often take walks to clear your mind 
        and contemplate physics problems.""", 
        group="routines")
    
    schrodinger.define("occupation_description",
        """
        You are a theoretical physicist who made fundamental contributions to quantum mechanics. 
        You developed the Schrödinger equation, which describes how the quantum state of a physical 
        system changes over time. Your famous thought experiment, "Schrödinger's cat," illustrates 
        the paradoxical nature of quantum superposition. You work at various institutions across 
        Europe, including the University of Zurich and Dublin Institute for Advanced Studies. Your 
        main challenges involve reconciling quantum mechanics with classical physics and developing 
        mathematical frameworks to describe quantum phenomena accurately.
        """)
    return schrodinger

def create_turing():
    turing = TinyPerson("Alan Turing")
    turing.define("age", 41)  # Lived 1912-1954
    turing.define("nationality", "British")
    turing.define("occupation", "Mathematician and Computer Scientist")
    turing.define("routine", 
        """You start your day with long-distance running, then spend hours working on mathematical 
        problems and machine designs. You often work late into the night, especially when pursuing 
        a particularly interesting problem.""", 
        group="routines")
    
    turing.define("occupation_description",
        """
        You are a mathematician and computer scientist who laid the theoretical foundation for 
        computer science. You developed the concept of the Turing machine, a mathematical model 
        of computation that remains fundamental to computer science. During World War II, you 
        worked at Bletchley Park, where you played a crucial role in breaking the German Enigma 
        code. You also made significant contributions to artificial intelligence, developing the 
        Turing test. Your main challenges involve developing mathematical frameworks for 
        computation and applying them to practical problems, while also facing significant 
        personal persecution due to your sexuality in 1950s Britain.
        """)
    return turing

Eine TinyWorld erstellen

Unsere Figuren brauchen eine Welt, in der sie leben können. Die Definition einer Welt kann so einfach sein wie eine Zeile Code:

world = TinyWorld("AI Symposium", [create_aristotle(), create_feynman(), create_schrodinger(), create_turing()])

Durchführung der Simulation

Wenn unsere Welt und die Zahlen stehen, sagen wir ihnen jetzt das Ziel. Wir benutzen world.broadcast, um eine Ankündigung zu machen:

world.broadcast("""
    Distinguished colleagues, welcome to this private symposium on the future of Artificial Intelligence. 
    Today we gather some of the greatest minds across mathematics, physics, and philosophy to discuss 
    a topic about AI's current stage and future:
   Can artificial systems truly achieve consciousness? We'll explore 
   the fundamental nature of consciousness, intelligence, and whether our current computational 
   models are sufficient for genuine understanding and awareness.
    Remember, each one of you must be blunt in his unique perpective, even directly oppose
    each other when you have different opinions. Let's begin this historic discussion.
    """)

Was den letzten Schritt angeht, so führen wir die Welt in drei Schritten:

world.run(3)

Für das Ausführen der Welt musst du eine Anzahl von Schrittenangeben . In unserem Beispiel gibt die Anzahl der Schritte an, wie viele Dialogrunden unsere Figuren haben werden. Mehr Schritte erfordern mehr Zeit und Token.

Wenn die Agenten die Welt regieren, fangen sie an zu handeln, ihre Werkzeuge zu benutzen oder, in unserem Fall, ein Gespräch zu führen. Die Ausgabe ist detailliert und lang, deshalb werde ich nur einen Teil davon posten, um die Lesbarkeit zu gewährleisten:

Die Ausgabe von world.run.

Wenn der Lauf beendet ist, können wir uns die Ausgabe ansehen, um das Ergebnis unserer Simulation zu sehen. Aber das kann ziemlich mühsam sein. Eine einfachere Methode ist die Verwendung eines Tools, das vom TinyTroupe Framework bereitgestellt wird, um die Ergebnisse unserer Welt zu extrahieren. Das kann auch mit jeder einzelnen TinyPerson gemacht werden.

report = extractor.extract_results_from_world(world,
                                    extraction_objective="Compose a detailed report of each person's perspective on consciousness and how they differ from one another.",
                                    verbose=True)

Wir verwenden nun die pprint Bibliothek, um den extrahierten Bericht richtig zu visualisieren:

from pprint import pprint
pprint(report)

Unser Abschlussbericht sieht wie folgt aus (die Ausgabe ist immer noch ein bisschen lang und ich musste sie kürzen):

Der extrahierte Bericht aus unserer Weltsimulation (die Ausgabe ist zu lang für einen Screenshot).

Ideen zur Umsetzung mit TinyTroupe

Wenn du praktische Erfahrungen mit dem Framework sammeln möchtest, findest du hier drei Ideen, die nicht in der Originaldokumentation enthalten sind.

1. Simulation der Mitarbeiterschulung

Erstelle einige TinyPersons, die schwierige Kunden oder Interessengruppen repräsentieren, um eine Umgebung zu simulieren, in der neue Mitarbeiter/innen mit ihnen interagieren und mit schwierigen Situationen umgehen können.

2. Neue Politikbewertung

Beurteile, wie deine Zielgruppen auf eine neue Unternehmenspolitik reagieren würden, bevor du sie umsetzt. Die Zielgruppe kann durch TinyPersons mit unterschiedlichen Hintergründen und Werten deiner Mitarbeiter, Kunden oder deines Social-Media-Publikums repräsentiert werden.

3. Bewertung von Social Media-Inhalten

Bevor du neue Inhalte teilst, simuliere, wie deine Zielgruppe darüber denken könnte. Nutze ihr Feedback, um zu verstehen, wie ein neuer Beitrag wahrgenommen werden könnte, und verbessere die Qualität, um eine maximale Reichweite zu erzielen.

Fazit

Wie die Autoren betonen, befindet sich TinyTroupe noch in der "experimentellen" Phase. Viele der Funktionen, Möglichkeiten und APIs können sich in Zukunft ändern, und das Team wird in der nächsten Zeit weitere Funktionen einführen.

Beachte jedoch, dass der Realismus dieser Simulationen begrenzt sein kann. Viele menschliche Verhaltensweisen und Unterscheidungen sind nicht "angepasst" genug, um von LLMs genau nachgebildet zu werden, was bedeutet, dass die Ergebnisse verschiedener Agenten am Ende ähnlich sein können (wie in unserem Beispiel, wo die Figuren zu KI-ähnlichen Dialogen konvergierten). Das ist ein vorhersehbares Verhalten von KI-Simulationen, denn der Motor hinter diesen KI-Agenten - die LLM - ist so konzipiert, dass er eher "ausgerichtet" als "menschenähnlich" ist.

Produktivitätsanwendungen, wie die in der Dokumentation, können jedoch viel effektiver sein, wenn es darum geht, Aufgaben zu automatisieren oder Einblicke in die Interaktionen und Verhaltensweisen einer Zielgruppe zu gewinnen.

TinyTroupe ist ein spannendes agenturisches KI-Tool, das du im Auge behalten solltest!


Hesam Sheikh Hassani's photo
Author
Hesam Sheikh Hassani
LinkedIn
Twitter

Masterstudent der Künstlichen Intelligenz und technischer Redakteur für KI. Ich gebe Einblicke in die neuesten KI-Technologien, mache ML-Forschung zugänglich und vereinfache komplexe KI-Themen, die du brauchst, um ganz vorne mit dabei zu sein.

Themen

Lerne KI mit diesen Kursen!

Lernpfad

Developing AI Applications

23hrs hr
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Siehe DetailsRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

See MoreSee More