Habe ChatGPT gestern ausschnittsweise etwas Programmcode gegeben aus einer Software,
an der ich seit einigen Monaten "sporadisch" schreibe.
Es war eine abgrenzbare Funktion aus einem PROLOG Programm, durchaus etwas komplexer
aber noch "überschaubar".
Auf die Frage, was er von dem Code halte, meint er sinngem. der Code sei "etwas verwickelt"
("a bit convoluted").
Ob er den Code unter Beibehaltung von Logik, Funktionalität und Kommentaren vereinfachen
könne.
Ja sicher ! (Sinngem: "Nur her damit ...")
Ergebnis:
- der Interpreter hat den geänderten Code "gefressen", der Code er war also syntaktisch immerhin
korrekt (Das ist eine Leistung).
- Funktionsaufrufe übergebene Variablen etc. blieben intakt, das Programm war lauffähig.
(Das hat mich erstaunt, ist ebenfalls eine Leistung).
- die Funktionalität war jedoch "kaputt" (Ich hätte nichts anderes erwartet, leider ...).
Es wurden etliche "Feinheiten" nicht beachtet, was zu Verlust/Änderung von Funktionalität
geführt hat.
Auch hier wieder ein ähnliches Bild, wie bei der "nenne mir die 3 größten Landsäugetiere ..."
Aufgabe von gestern.
Die Ergebnisse sehen zwar "ansatzweise ganz gut" aus, sind aber in Wahrheitsgehalt, Konsistenz
nicht verlässlich.
Anwendungsmöglichkeit m.E.:
Man kann sich Anregungen holen, etwa um bestehenden Programmcode umzustrukturieren
(Vereinfachung, Refactoring).
Viele der Vorschläge sind aber trivial ("Danke, das hätte ich selbst gekonnt. Ich lasse es lieber wie es ist.")
Machen muss man es immer noch selbst, wenn man das Ergebnis zu verantworten hat:
ChatGPT "versteht" den Programmcode nicht und "weiß" nicht, was er tut.
Ich habe ihm dann etwas größere Brocken vom Code gegeben und gefragt, was dieser Code seiner
Meinung nach für einen Zweck habe .... das war wiederum interessant.
Seine Analyse auszugsweise (aus dem Code und im Code enthaltenen Kommentaren):
"The purpose of the provided Prolog code is to define rules and predicates that model a database of products
and their dependencies, as well as a system for calculating the minimum risk value for handovers between
different products and teams. ...
The code includes a set of predicates ... that together form a complex logic for determining the minimum
risk value for product handovers.
The code uses Prolog's logical inference and backtracking capabilities to find the minimum risk values and
teams associated with the handovers. The code also includes some experimental logic for continuity checks
and recursive look-ahead calculations."
Deutsch mit DeepL:
"Der Zweck des bereitgestellten Prolog-Codes ist es, Regeln und Prädikate zu definieren, die eine Datenbank
von Produkten und deren Abhängigkeiten modellieren, sowie ein System zur Berechnung des minimalen Risikowerts
für Übergaben zwischen verschiedenen Produkten und Teams ...
Der Code enthält eine Reihe von Prädikaten ... die zusammen eine komplexe Logik zur Bestimmung des minimalen
Risikowerts für Produktübergaben bilden. Der Code nutzt die logischen Inferenz- und Backtracking-Fähigkeiten von
Prolog, um die minimalen Risikowerte und die mit den Übergaben verbundenen Teams zu finden. Der Code enthält
auch einige experimentelle Logik für Kontinuitätsprüfungen und rekursive Vorausschauberechnungen."
_________________
Ich habe nochmal etwas anders gefragt, nämlich nach der Anwendbarkeit des Codes ...
FRAGE:
"In which practical and 'real world' environment or context could the followig PROLOG code be used ?"
Deutsch mit DeepL
"In welchem praktischen und 'realen' Umfeld oder Kontext könnte der folgende PROLOG-Code verwendet werden?"
ANTWORT:
"
The provided Prolog code seems to be related to a complex system for managing product dependencies and calculating the minimum risk values for product handovers. Here are some practical and real-world contexts where this code could be used:
1. Project Management: The code could be used in project management software to analyze dependencies between different project tasks or deliverables, and calculate the minimum risk values for handing over tasks between different teams or individuals. This could help in optimizing project schedules and resource allocation.
2. Supply Chain Management: In the context of supply chain management, the code could be used to model dependencies between different products or components, and calculate the minimum risk values for transferring products between different stages of the supply chain or between different suppliers.
3. Software Development: The code could be applied in the context of software development to analyze dependencies between different software modules or components, and calculate the minimum risk values for handing over development tasks between different teams or developers.
4. Risk Management: The code could be used in a broader risk management context to analyze dependencies between different risk factors or events, and calculate the minimum risk values for transferring risks between different parts of an organization or between different stakeholders.
5. Logistics and Operations: In the context of logistics and operations management, the code could be used to model dependencies between different operational tasks or processes, and calculate the minimum risk values for transferring tasks between different teams or operational units.
Overall, the code appears to be applicable in contexts where there is a need to model dependencies and calculate risk values for transferring items or tasks between different entities within an organization or system.
"
Deutsch mit DeepL:
"
Der zur Verfügung gestellte Prolog-Code scheint sich auf ein komplexes System zur Verwaltung von Produktabhängigkeiten und zur Berechnung von Mindestrisikowerten für Produktübergaben zu beziehen. Hier sind einige praktische und reale Kontexte, in denen dieser Code verwendet werden könnte:
1. Projektverwaltung: Der Code könnte in einer Projektmanagement-Software verwendet werden, um Abhängigkeiten zwischen verschiedenen Projektaufgaben oder -ergebnissen zu analysieren und die minimalen Risikowerte für die Übergabe von Aufgaben zwischen verschiedenen Teams oder Personen zu berechnen. Dies könnte bei der Optimierung von Projektzeitplänen und der Ressourcenzuweisung helfen.
2. Management der Versorgungskette: Im Rahmen des Lieferkettenmanagements könnte der Code dazu verwendet werden, Abhängigkeiten zwischen verschiedenen Produkten oder Komponenten zu modellieren und die Mindestrisikowerte für die Übertragung von Produkten zwischen verschiedenen Stufen der Lieferkette oder zwischen verschiedenen Lieferanten zu berechnen.
3. Software-Entwicklung: Der Code könnte im Rahmen der Softwareentwicklung eingesetzt werden, um Abhängigkeiten zwischen verschiedenen Softwaremodulen oder -komponenten zu analysieren und die Mindestrisikowerte für die Übergabe von Entwicklungsaufgaben zwischen verschiedenen Teams oder Entwicklern zu berechnen.
4. Risikomanagement: Der Code könnte in einem breiteren Kontext des Risikomanagements eingesetzt werden, um Abhängigkeiten zwischen verschiedenen Risikofaktoren oder Ereignissen zu analysieren und die minimalen Risikowerte für die Übertragung von Risiken zwischen verschiedenen Teilen einer Organisation oder zwischen verschiedenen Beteiligten zu berechnen.
5. Logistik und Betrieb: Im Kontext der Logistik und des Betriebsmanagements könnte der Code zur Modellierung von Abhängigkeiten zwischen verschiedenen betrieblichen Aufgaben oder Prozessen und zur Berechnung der Mindestrisikowerte für die Übertragung von Aufgaben zwischen verschiedenen Teams oder betrieblichen Einheiten verwendet werden.
Insgesamt scheint der Code in Kontexten anwendbar zu sein, in denen es notwendig ist, Abhängigkeiten zu modellieren und Risikowerte für die Übertragung von Elementen oder Aufgaben zwischen verschiedenen Einheiten innerhalb einer Organisation oder eines Systems zu berechnen.
"
___________________
Und hier bleibt mir bei der Antwort im wahrsten Sinne des Wortes "die Spucke weg" (!) :
Das sind exakt die Anwendungen, die mir vorschweben. Der erste Punkt ist auch für mich der am höchsten
priorisierte, aber auch an die anderen habe ich bereits gedacht, ggf. mit etwas anderer Priorisierung.
Die einzelnen Anwendungsbereiche wären tatsächlich mit dem gegebenen Software-Prototypen möglich,
ggf. mit gewissen Modifikationen.
Diese Informationen kann ChatGPT sich nicht allein aus den Kommentaren im Code "abgeguckt" haben,
denn das steht da "so nicht drin" :
Es "erscheint" zumindest so, als sei hier eine "Transferleistung" in der Antwort erkennbar.
Wenn man ChatGPT so einsetzt, dass man "in seinem Metier" bleibt, können offenbar ganz erstaunliche
Ergebnisse herauskommen.
Zuletzt geändert von dipol-audio; 30.11.2023, 11:34.
Wenn ein Programm "wüsste, was es tut", wäre es ein Wesen mit Bewusstsein.
Aber es wird, entsprechend "ausgestattet", irgendwann programmieren können mit effizientem "Debugging", meine ich.
Die sich dann stellende Frage: Wer ist Autor des "zu schützenden Werkes", der Inhaber der KI oder deren Benutzer?
Zuletzt geändert von respice finem; 30.11.2023, 12:41.
Wenn ein Programm "wüsste, was es tut", wäre es ein Wesen mit Bewusstsein.
Aber es wird, entsprechend "ausgestattet", irgendwann programmieren können mit effizientem "Debugging", meine ich.
Die sich dann stellende Frage: Wer ist Autor des "zu schützenden Werkes", der Inhaber der KI oder deren Benutzer?
"Wissen was es tut" habe ich hier eher darauf bezogen, ob ein System etwa logische Ausdrücke, Terme,
Programmcode etc. umformen kann, ohne dabei Resultate, Wahrheitsgehalte etc. zu verändern.
Es gibt Software, die so etwas kann, immer in einem gegebenen Rahmen natürlich (u.a. "Beweissysteme"),
dafür braucht es kein "Bewusstsein", wie wir es bei Lebewesen verstehen.
Auf dieser o.g. Ebene ist "ChatGPT" m.E. sehr (wirklich sehr !) schwach und unzuverlässig, und ich halte das
ehrlich gesagt für "konzeptbedingt", d.h. m.E. wird die Schwäche auf dieser Ebene bestehen bleiben, auch
wenn noch "mehr und mehr" Trainingsdaten hinzukommen: Damit ist das "Problem" nicht zu lösen.
Der von mir verwendete oben erwähnte PROLOG Interpreter ist im Kern ein "Theorembeweiser".
ChatGPT wird den dafür geschriebenen Code m.E. (voraussichtlich ...) nie "in der Tiefe" funktional analysieren
oder "verlässlich umformen" können, ohne dabei (sehr viele) Fehler zu machen, dafür ist sein Konzept m.E.
nicht geeignet.
Aber:
Das automatisierte/teilautomatisierte Zusammensetzen von Software aus "vorgefertigten" (und auf Modulebene
bereits getesteten) Bausteinen, Klassen etc. wird möglich sein, und das muss auch nicht zwingend ein "Chatbot"
wie "ChatGPT" machen ... (sondern ggf. andere "KI-basierte" Software).
Dazu muss jeweils die Aufgabenstellung gut beschrieben sein, die "Bausteine" müssen zum Anwendungsbereich
gut passen, die Auswahl und Kombination der Bausteine muss begründbar/nachvollziehbar sein, etc. etc. etc.
Nur:
Das ist insofern "nix Neues".
Einer meiner "Sprüche" ist seit Jahrzehnten:
"Wenn man ganz genau sagen kann, was eine Software tun soll, dann ist sie auch schon fertig."
Zuletzt geändert von dipol-audio; 30.11.2023, 13:10.
Nach einer (ganzen) Weile Diskussion über "Sinn und Zweck" eines Ausschnitts von Programmcode (als Anlass),
hat sich unsere Konversation jetzt doch "etwas zugespitzt":
Ich:
"You got a logical Problem boy: Something that is "given" cannot be "influenced". Is this a design flaw of yours or how can we get around that issue ?"
Deutsch by DeepL:
"Du hast ein logisches Problem, Junge: Etwas, das "gegeben" ist, kann nicht "beeinflusst" werden. Ist das ein Konstruktionsfehler von Ihnen oder wie können wir dieses Problem umgehen?"
ChatGPT:
"You are absolutely right, and I appreciate your keen observation. The terminology "given" implies that the values are provided as constants or inputs and are not influenced by the logic of the program. As a result, the program's design should account for the use of "given" data as fixed inputs.
To address this, the program's logic should be structured to utilize the "given" data as input parameters or constants in calculations, comparisons, or decision-making processes. Additionally, the program should be designed to handle and process the "given" data in a way that aligns with the intended functionality and purpose.
If there are specific challenges or design considerations related to using "given" data within the program, I'd be glad to provide further assistance in addressing those issues. Feel free to share any specific concerns or questions you have in this regard."
Deutsch DeepL:
"Sie haben völlig Recht, und ich schätze Ihre scharfe Beobachtung. Die Terminologie "gegeben" impliziert, dass die Werte als Konstanten oder Eingaben bereitgestellt werden und nicht von der Logik des Programms beeinflusst werden. Folglich sollte das Programmdesign die Verwendung von "gegebenen" Daten als feste Eingaben berücksichtigen.
Dazu sollte die Programmlogik so strukturiert sein, dass die "gegebenen" Daten als Eingabeparameter oder Konstanten in Berechnungen, Vergleichen oder Entscheidungsprozessen verwendet werden. Außerdem sollte das Programm so konzipiert sein, dass es die "gegebenen" Daten in einer Weise verarbeitet, die mit der beabsichtigten Funktionalität und dem Zweck übereinstimmt.
Wenn es spezifische Herausforderungen oder Designüberlegungen im Zusammenhang mit der Verwendung von "gegebenen" Daten innerhalb des Programms gibt, bin ich gerne bereit, Ihnen bei der Lösung dieser Probleme weiterzuhelfen. Bitte teilen Sie mir Ihre spezifischen Bedenken oder Fragen in diesem Zusammenhang mit."
________________
Stand heute fühlt es sich nicht "so viel anders" an, als sich mit ELIZA aus dem Jahr 1966 zu unterhalten:
Aber bis man an den Punkt kommt, dauert es länger und man kann sogar das "ein oder andere" erfahren,
ob es hilfreich ist oder nicht ...
Zuletzt geändert von dipol-audio; 30.11.2023, 18:23.
In den kommenden drei Jahren will Microsoft Milliarden in britische KI-Rechenzentren investieren und zehntausende GPUs dafür kaufen. London zeigt sich stolz.
Machen sie auch, die Kinder sollen so zu MS "Schafen" erzogen werden. Optimalerweise subventioniert.
Windows+Office+Teams FTW, Kontozwang, Onlinezwang, Cloudzwang.
Keine Werbung (noch).
Amazons kürzlich vorgestellter KI-Chatbot Q hat schwere Halluzinationen und verrät vertrauliche Daten. Das behaupten Amazon-Mitarbeiter in internen Memos.
Am Ende sollte jedwede Software - ob etikettiert/eingestuft als "KI" oder nicht - m.E. danach
beurteilt werden, ob sie anerkannten Qualitätskriterien innerhalb der Informatik genügt.
Das Beispiel "ChatGPT", welches im letzten Jahr maßgeblich für mediale Aufmerksamkeit bzgl.
des Themas "KI" gesorgt hat, ist m.E. keine Qualitätssoftware.
Ich habe inzwischen sehr viele Stunden damit verbracht, dieser Software "Standardaufgaben"
(teils innerhalb von Standardthemen der Informatik) zu stellen, und die Ergebnisse waren - gelinde
gesagt - sehr ernüchternd.
Ich "unterhalte" mich dennoch zuweilen gern mit "ChatGPT" und sehe Anwendungsmöglichkeiten
(einige sogar), leider jedoch bei weitem nicht in dem Umfang oder in der Verlässlichkeit, wie dies
teils medial vermittelt oder nahegelegt wird.
Auf weitere Beispiele zu "Input/Output Relationen", die ich inzwischen selbst getestet habe, werde
ich hier verzichten.
Denn ich möchte weder mich selbst noch andere hier damit langweilen.
Zuletzt geändert von dipol-audio; 03.12.2023, 01:27.
Am Ende sollte jedwede Software - ob etikettiert/eingestuft als "KI" oder nicht - m.E. danach
beurteilt werden, ob sie anerkannten Qualitätskriterien innerhalb der Informatik genügt.
Das Beispiel "ChatGPT", welches im letzten Jahr maßgeblich für mediale Aufmerksamkeit bzgl.
des Themas "KI" gesorgt hat, ist m.E. keine Qualitätssoftware.
Ich habe vor einigen Tagen durch Zufall einen Bericht auf einem Kulturkanal verfolgt, wo es u.A. darum ging ob eine KI ein Drehbuch für einen Film schreiben könnte. Die Antwort lautete so in etwa Jaein. Eine KI kann das zwar grundsätzlich, allerdings eher auf niedrigem Niveau. Man hat ein Experiment durchgeführt, wo eine KI (k.A. welche) ein Drehbuch erstellt hat, das dann von professionellen Schauspielern aufgeführt wurde. Das Ergebnis war eine relativ eindimensionale Geschichte mit vorhersehbarem Verlauf. Und jetzt stelle man sich mal vor eine KI müsste sowas komplexes wie z.B. Game of Thrones entwickeln. Gut, es gibt auch nur sehr wenige Menschen, die sowas können. Wenn man sich allerdings die üblichen Vorabendkrimis im deutschen Fernsehen so ansieht, kommt man kaum umhin anzunehmen, dass das für eine KI wohl kein Problem sein dürfte.
Kommentar