Schon mal jemand etwas mit KI gemacht? Ich versuche mich im Auftrage eines befreundeten Dozenten an einem Tool, welches von Studenten erstellte sog. "Concept Maps" automatisiert mit einer Vorgabe vergleichen und bewerten soll. Die ConceptMaps werden einheitlich mit der Freeware CMapTools erstellt und liegen als XML vor. Wem das nichts sagt: ConceptMaps sehen ähnlich aus wie Status-Diagramme oder Aktionsdiagramme. Sie bestehen aus "Knoten" (Zustände, Objekte) und dazwischen verlaufenden "Kanten" (Vorgänge, Beziehungen), siehe Bild. Rein "mechanisch" lassen sich die Bestandteile dank XML gut isolieren in "concepts" (die Knoten), in "labels" (die Beschriftung/Benennung der Verbindungen) und "connections", mit welcher Verbindung welche Knoten verbunden sind. Das Problem: Während die Beschriftung der Knoten in der Aufgabenstellung vorgegeben wird und damit auch bei den Studenten immer gleich ist, werden die Verbindungen von diesen frei benannt. Um nun festzustellen, dass z.B. die Beschriftung "umwandeln" und "konvertieren" in einem Falle als synonym (und damit richtig) gewertet werden sollen, will ich ein lokales LLM (z.B. gemma3 oder llama3.2) unter der Ausführung von Ollama benutzen. Langer Rede kurzer Sinn: Trotz vielfältiger Bemühungen bei der Formulierung des Prompt, sind alle getesteten Modelle (die auf meinem Laptop M2 16GB laufen), extrem kleinkariert, geradezu Krümel kackend. Beispiel: Frage: "Sind die Begriffe „umwandeln“ und „konvertieren“ umgangssprachlich auf dem Niveau von Grundschülern als gleichwertig zu betrachten? Antworte mit Ja“ oder „Nein“ und einer kurzen Begründung." Antwort: "Nein. 'Konvertieren' impliziert oft eine explizite Umwandlung von einer Darstellung in eine andere, beispielsweise von einer Zahlensystem in ein anderes. 'Umwandeln' ist allgemeiner und kann sich auf eine Veränderung in Form, Struktur oder Funktion beziehen." Wie bekomme ich das LLM "milder"?
:
Bearbeitet durch User
Frank E. schrieb: > Wie bekomme ich das LLM "milder"? Nimm ein anderes, ggf. größeres Modell. Möglicherweise ist deine Hardware zu klein um bessere Antworten zu bekommen. Oder verwende chatgpt et.al. um den Prompt zu optimieren. Test bei https://gemma3.cc/chat mit Gemma 3n System: Du bist ein Sprachassistent für Grundschüler. Du darfst ausschließlich mit “Ja” oder “Nein” antworten und musst immer eine kurze, einfache Begründung geben. Keine anderen Antworten sind erlaubt. User: Sind die Begriffe „umwandeln“ und „konvertieren“ umgangssprachlich auf dem Niveau von Grundschülern als gleichwertig zu betrachten? ========= Antwort: Ja, weil beide Wörter bedeuten, etwas in eine andere Form zu bringen. Gemma 3 12B : Nein, weil “konvertieren” ein schwieriges Wort ist Gemma 3 27B : Nein, weil “konvertieren” nicht jeder kennt. manchmal passen die Antworten von 27b auch Michael
:
Bearbeitet durch User
Probier es mal so System: Du bist ein Sprachassistent Du darfst ausschließlich mit “Ja” oder “Nein” antworten und musst immer eine kurze, einfache Begründung geben. Keine anderen Antworten sind erlaubt. User: Ist die Bedeutung der Begriffe „umwandeln“ und „konvertieren“ umgangssprachlich als gleichwertig zu betrachten? Es geht um eine ungefähre Aussage.
:
Bearbeitet durch User
Wer als Werkzeug nur einen Hammer hat, für den ist jedes Problem ein Nagel ;-) Oder etwas konkreter: Verabschiede sich von der Vorstellung, dass KI die optimale (oder gar einzige) Lösung für sämtliche Probleme dieser Welt ist. Was du suchst, ist keine KI, sondern ein Thesaurus (Synonymwörterbuch), wie bspw. https://www.openthesaurus.de/ https://www.openthesaurus.de/synonyme/umwandeln Die Daten kannst du von dort sogar herunterladen und lokal verarbeiten.
Michael D. schrieb: > System: Du bist ein Sprachassistent > Du darfst ausschließlich mit “Ja” oder “Nein” antworten und musst immer > eine kurze, > einfache Begründung geben. > Keine anderen Antworten sind erlaubt. > > User: Ist die Bedeutung der Begriffe „umwandeln“ und „konvertieren“ > umgangssprachlich als gleichwertig zu betrachten? Es geht um eine > ungefähre Aussage. Danke für den Versuch. Das Ergebnis: Nein. Es gibt subtile Unterschiede in der Bedeutung. (Gemma3)
Yalu X. schrieb: > Wer als Werkzeug nur einen Hammer hat, für den ist jedes Problem > ein Nagel ;-) > Was du suchst, ist keine KI, sondern ein Thesaurus (Synonymwörterbuch), > wie bspw. > > https://www.openthesaurus.de/ > https://www.openthesaurus.de/synonyme/umwandeln Ja und Nein. Für ein einzelnes Wort sind die Ergebnisse tatsächlich beeindruckend. In den ConceptMaps kommen für die Connections aber auch Ausdrücke wie "lesen von", "gehen zu", "kann nicht" usw. vor - da bleibt Openthesaurus stumm. Das ist dann doch wohl eher für eine KI ... Manchmal sind zunächst sehr einfach aussehende Dinge deutlich komplizierter als erwartet.
Frank E. schrieb: > Danke für den Versuch. Das Ergebnis: > > Nein. > Es gibt subtile Unterschiede in der Bedeutung. > (Gemma3) Welches genaue Gemma3 Untermodell? Mit Gemma 3 12B auf https://gemma3.cc/chat passt es einigermaßen. Nächster Versuch, verschieben der Randbedingungen in den System Prompt ================= System: Du bist ein Sprachassistent Du darfst ausschließlich mit “Ja” oder “Nein” antworten und musst immer eine kurze, einfache Begründung geben. Keine anderen Antworten sind erlaubt. Es geht um eine ungefähre Aussage, subtile Unterschiede sollen ignoriert werden. User: Ist die Bedeutung der Begriffe „umwandeln“ und „konvertieren“ umgangssprachlich als gleichwertig zu betrachten? ================= Antwort Ja, weil beide Wörter eine Veränderung von etwas in etwas anderes beschreiben. ================= Mit dem System Prompt kommt sogar sowas raus: User: Ist die Bedeutung der Begriffe „laufen“ und „gehen“ umgangssprachlich als gleichwertig zu betrachten? Antwort: Ja, weil beide Wörter eine Fortbewegung beschreiben. Yalu X. schrieb: > Wer als Werkzeug nur einen Hammer hat, für den ist jedes Problem ein > Nagel ;-) Jetzt lass es uns doch erstmal mit dem Hammer probieren, notfalls mit dem Vorschlaghammer :-) Es geht ja nicht unbedingt darum dieses konkrete Problem zu lösen sondern um den Umgang mit dem Hammer zu erlernen. Michael
Michael D. schrieb: > Mit Gemma 3 12B auf https://gemma3.cc/chat passt es einigermaßen. > Einfach nur "gemma3:latest", von dieser Seite: https://ollama.com/library/gemma3 Ich versuchh mal, ob 12B auf meinem Macbook läuft ... melde mich wieder, dauert etwas.
:
Bearbeitet durch User
Frank E. schrieb: > In den ConceptMaps kommen für die Connections aber auch Ausdrücke wie > "lesen von", "gehen zu", "kann nicht" usw. vor - da bleibt Openthesaurus > stumm. Das ist dann doch wohl eher für eine KI ... Ok, das war mir nicht bewusst. Deswegen ein neuer Ansatz (diesmal mit KI ;-)). Frank E. schrieb: > Antwort: "Nein. 'Konvertieren' impliziert oft eine explizite Umwandlung > von einer Darstellung in eine andere, beispielsweise von einer > Zahlensystem in ein anderes. 'Umwandeln' ist allgemeiner und kann sich > auf eine Veränderung in Form, Struktur oder Funktion beziehen." Da hat die KI ja völlig recht. Ob zwei Ausdrücke synonym sind oder nicht, hängt sehr oft vom Kontext ab. Du musst also in dem Prompt neben den beiden auf Synonymität abzufragenden Labels auch irgendwie den Kontext mitliefern. Bei der Concept Map steckt der Kontext eines Labels im Start- und Endknoten des zugehörigen Pfeils.
1 | Label |
2 | Cstart ----------> Cend |
Aus Cstart, L und Cend lässt sich (zumindest in deinen Beispielen) leicht eine Aussage bilden, die sowohl das Label als auch den Kontext enthält, nämlich <Cstart> <Label> <Cend> Um zwei Labels Label1 und Label2 zu vergleichen, setzt du sie in den gleichen Kontext (also entweder in den Kontext von Label1 oder den von Label2) und fragst die KI nach der Übereinstimmung der beiden Aussagen <Cstart> <Label1> <Cend> <Cstart> <Label2> <Cend> Um die Antwort leichter auswerten zu können, bittest du die KI, ihre Entscheidung zu quantifizieren. Beispiel: Die Cocept Map enthält die beiden folgenden Beziehungen:
1 | frisst |
2 | Katze ------------> Maus |
3 | |
4 | verzehrt |
5 | Wolf --------------> Schaf |
Um zu ermitteln, ob "frisst" und "verzehrt" in diesem Zusammenhang synonym sind, generierst du die Anfrage
1 | Bewerte die Übereinstimmung der beiden folgenden Aussagen auf einer |
2 | Skala von 0 (keine Übereinstimmung) bis 10 (perfekte Übereinstimmung): |
3 | |
4 | "Katze frisst Maus" |
5 | |
6 | "Katze verzehrt Maus" |
oder (mit dem anderen Kontext):
1 | Bewerte die Übereinstimmung der beiden folgenden Aussagen auf einer |
2 | Skala von 0 (keine Übereinstimmung) bis 10 (perfekte Übereinstimmung): |
3 | |
4 | "Wolf frisst Schaf" |
5 | |
6 | "Wolf verzehrt Schaf" |
Du kannst auch beide Anfragen stellen und von den Antworten den Mittelwert bilden. Das ist insbesondere dann sinnvoll, wenn die beiden Kontexte sehr unterschiedlich sind. ChatGPT liefert in beiden Fällen die Bewertung 9 von 10 und eine nachvollziehbare Begründung. Tatsächlich hat "frisst" und "verzehrt" in diesem Kontext fast die gleiche Bedeutung. Nun behalten wir das "frisst" bei und ersetzen "verzehrt" nacheinander durch andere Texte: - "ernährt sich von" -> 7 von 10 - "jagt" -> 4 von 10 - "spielt mit" -> 2 von 10 - "hat längeren Schwanz als" -> 0 von 10 Auch diese Ergebnisse sind sehr gut nachvollziehbar. Du musst jetzt durch Tests mit anderen Beispielen einen geeigneten Schwellwert für die Bewertung finden. Er wird vermutlich irgendwo im Bereich von 6 bis 8 liegen.
@ Yaslu.X: Vielen Dank für die umfangreichen und gehaltvollen Ausführungen, werde ich versuchen umzusetzen. Ich bin aber jetzt erstmal für einige Stunden unterwegs, melde mich wieder. Frage für später: Ist es sinnvoll die "temperature" auf Null zu setzen, um auf die gleiceh Frage auch möglichst immer die gleiche Antwort zu bekommen?
Die KI von DuckDuckGo reagiert auf geschickteres Prompting mit einer geschickteren Antwort:
1 | Du bist ein Sprachassistent für Grundschüler. Du darfst ausschließlich mit “Ja” oder “Nein” antworten und musst immer eine kurze, einfache Begründung auf dem Niveau von Grundschülern geben. |
2 | |
3 | Sind die Begriffe „umwandeln“ und „konvertieren“ umgangssprachlich als gleichwertig zu betrachten? |
4 | . |
5 | Mistral Small 3 |
6 | |
7 | Ja, weil man mit beiden Wörtern sagen kann, dass man etwas in etwas anderes verändert. |
Tipp: Mal mit Prompt-Engineering auseinandersetzen.
:
Bearbeitet durch User
ich habe jetzt mal folgendes verwendet: # ollama run gemma3:4b-it-qat /set system "Du bist ein Sprachassistent der Begriffe vergleicht. Du musst immer mit 'Ja' oder 'Nein' sowie einer Wahrscheinlichkeit und einer ganz kurzen, einfachen Begründung antworten. Es geht um eine ungefähre Aussage, subtile Unterschiede sollen ignoriert werden. Es geht um umgangssprachliche Vergleiche zwischen Begriffen, d.h. ob diese eine gleichwertige Bedeutung haben" /set parameter temperature 0 vergleiche „umwandeln“ und „konvertieren“ Antwort: Ja, Wahrscheinlichkeit: 95%. Beide bedeuten eine Veränderung, aber “unwandeln” klingt, als würde man etwas komplett neu erschaffen, während “konvertieren” eher das Umwandeln in ein anderes Format bedeutet.
Michael D. schrieb: > aber “unwandeln” klingt, als würde man etwas komplett neu erschaffen, Aha. KI-Slop.
Michael D. schrieb: > ich habe jetzt mal folgendes verwendet: > # ollama run gemma3:4b-it-qat Kimi K2 antwortet beim selben Prompt so: Ja, 90 % – beide bedeuten „etwas in etwas anderes umändern“.
Man lernt ja (hoffentlich) nie aus. Also bin ich bei meinen Recherchen auf eine ähnliche, aber doch deutlich effektivere Art der KI-Nutzung zur Ermittlung der semantischen Abstände (bzw. Nähe) von Begriffen gestossen. Die Stichworte dazu lauten "embedding" und "vektoren". Man kann mit einem geeigneten Prompt ein allgemeines LLM oder besser noch, ein darauf spezialisiertes Modell (mxbai-embed-large, nomic-embed-text ...) dazu bringen, diese Daten herauszurücken. Dieses "Vektorisieren" macht grundsätzlich jedes LLM, um überhaupt zu verstehen, was man von ihm will. Die darauf spezialisierten Modelle sind aber auf das Notwendigste abgespeckt für "normale" Dialoge garnicht zu gebrauchen. Dafür sind sie rel. klein, schnell und genau dafür optimiert. Ich bin gerade dabei, mir das Thema zu erschließen und in meinem Programmcode einzubauen. Bei ersten Tests erhalte ich Ergebnisse nach diesem Prinzip: { "Master": "Auto", "Ähnlichkeiten": { "Fahrzeug": 0.94, "Bus": 0.88, "Tisch": 0.12, "Computer": 0.21, "PKW": 0.96, "Zug": 0.76 } }
:
Bearbeitet durch User
Habe kürzlich mit drei deutschsprachigen SBERT Modellen probiert. Sehr leicht in Python einzubinden, aber Ergebnisse nicht wirklich trennscharf: Vergleich mit Katze frisst Maus
1 | T-Systems-onsite/german-roberta-sentence-transformer-v2 |
2 | Katze verspeist Maus 0.876 |
3 | Katze liebt Maus 0.787 |
4 | Katze verzehrt Maus 0.953 |
5 | Katze verehrt Maus 0.804 |
6 | |
7 | deepset/gbert-base |
8 | Katze verspeist Maus 0.718 |
9 | Katze liebt Maus 0.860 |
10 | Katze verzehrt Maus 0.706 |
11 | Katze verehrt Maus 0.792 |
12 | |
13 | aari1995/German_Semantic_STS_V2 |
14 | Katze verspeist Maus 0.976 |
15 | Katze liebt Maus 0.864 |
16 | Katze verzehrt Maus 0.980 |
17 | Katze verehrt Maus 0.779 |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.