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 |
Frank E. schrieb: > Bei ersten Tests erhalte ich Ergebnisse nach > diesem Prinzip: > "Master": "Auto", > "Ähnlichkeiten": > "PKW": 0.96, > "Zug": 0.76 Man muss bei solchen vergleichen ja immer überlegen welchen Aspekt der Ähnlichkeit man berücksichtigen will, z.B. über einen gemeinsamen Oberbegriff "Transportmittel", oder aber über Attribute "was kostet", "ist grün", "hat 4 Räder". Die Ähnlichkeit hat viele Dimensionen, um das auf einen skalaren Prozentwert zu mappen muss man schon genauer sagen was dafür berücksichtigt werden soll und was nicht. Michael
:
Bearbeitet durch User
Michael D. schrieb: "Zug": 0.76 > > Man muss bei solchen vergleichen ja immer überlegen welchen Aspekt der > Ähnlichkeit man berücksichtigen will, z.B. über einen gemeinsamen > Oberbegriff "Transportmittel", oder aber über Attribute "was kostet", > "ist grün", "hat 4 Räder". Das ist zweifellos ein extrem wichtiger Aspekt, den viele Gelegenheitsnutzer vermutlich garnicht so deutlich auf dem Schirm haben. Je länger man sich damit beschäftigt bzw. mit den Ergebnissen unzufrieden ist, desto deutlicher erkennt man, wie wichtig "prompt engineering" ist - nicht umsonst gibts dazu inzwischen dicke Bücher und eigene Lehrstühle an Universitäten und Hochschulen. Ansonsten gilt: shit in - shit out.
:
Bearbeitet durch User
Michael D. schrieb: > Man muss bei solchen vergleichen ja immer überlegen welchen Aspekt der > Ähnlichkeit man berücksichtigen will Deswegen mein Vorschlag von oben, den Prompt mit etwas Kontext auszustatten.
Frank E. schrieb: > Je länger man sich damit beschäftigt bzw. mit den Ergebnissen > unzufrieden ist, desto deutlicher erkennt man, wie wichtig "prompt > engineering" ist - nicht umsonst gibts dazu inzwischen dicke Bücher und > eigene Lehrstühle an Universitäten und Hochschulen. Viele Firmen hoffen darauf, Angestellte der unteren Gehaltsklasse durch billige LLM ersetzten zu können. Wenn man dafür aber neue Prompt-Ingeniere einstellen muss, wird es wieder teuer. Ich lasse mich aber nicht zum Prompt-Ingeneur umschulen, denn das ist mit Sicherheit der nächste Job, der weg optimiert wird.
Helmut H. schrieb: > Vergleich mit Katze frisst Maus > Katze verspeist Maus 0.876 > Katze liebt Maus 0.787 Du musst am Prompt Engineering arbeiten und solltest mit einem System Prompt arbeiten. Du sagst nicht aus, auf welchen Aspekt sich der Vergleich beziehen soll. Rein von den Worten sind 2 Worte gleich und nur eines anders, d.h. das alleine ist schon ein match von 66% auf Wort und Satzbau Ebene. Auf semantischer Ebene natürlich nicht. Hier ein verbesserter Versuch: ~ ollama run gemma3:4b-it-qat /set system "Du bist ein Sprachassistent der die Aussage 'Katze frisst Maus' mit anderen Aussagen 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 wie sich die Interaktion sich auf Maus und Katze auswirkt, subtile Unterschiede sollen ignoriert werden. Es geht um umgangssprachliche Vergleiche, d.h. ob diese eine gleichwertige Bedeutung haben" /set parameter temperature 0 vergleiche "Katze verspeist Maus" vergleiche "Katze liebt Maus" vergleiche "Katze verzehrt Maus" vergleiche "Katze verehrt Maus" Dann sehen die Antworten ganz anders aus: **vergleiche "Katze verspeist Maus"**: Ja, 95%, Beide drücken eine Aktivität der Katze, die das Leben der Maus beendet, aus. **vergleiche "Katze liebt Maus"**: Nein, 70%, "Lieben" impliziert eine positive Emotion, während "verspeist" eine reine Handlung beschreibt. **vergleiche "Katze verzehrt Maus"**: Ja, 90%, Beides beschreiben das Fressen der Maus durch die Katze, "verzehren" ist jedoch etwas formeller als "verspeisen". **vergleiche "Katze verehrt Maus"**: Nein, 60%, "Verehren" drückt eine tiefe Wertschätzung aus, die nicht unbedingt mit Fressen zusammenhängt. Michael
:
Bearbeitet durch User
Nemopuk schrieb: > Ich lasse mich aber nicht zum Prompt-Ingeneur umschulen, denn das ist > mit Sicherheit der nächste Job, der weg optimiert wird. Du kannst davon ausgehen, dass sich das benötigte Profil der Kopf-Arbeitnehmer in immer kürzeren Abständen ändern wird. Die eigentliche Frage ist, wie flexibel man sich an die jeweilige Situation anpassen kann und wie gut man die nächsten Anforderungen vorhersehen kann. Das Problem mit dem Prompt Engineering ist nicht neu, man hat schon immer Leute gebraucht, welche den Übergang vom der Problem-Domain in die Lösungs-Domain übersetzen, d.h. Requirement Ingenieure und (Software)Architekten. Früher gab es auch schon Anforderungen wie "Ich brauche ein Pferd welches 100 km/h laufen kann und 20 t tragen kann." Die Lösung war der LKW und kein gigantisches Pferd. Die Leute aus der Problem-Domain wissen eben nicht wie sie sich ausdrücken müssen, damit sie verstanden werden. Mal sehen, wie und wann die KI das hinbekommt. Michael
:
Bearbeitet durch User
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.