Da hier einige den Grundschüler (ChatGPT) eher positiv aussehen lassen und mein geschätzter Professor (Claude) eher negativ und nur bleiläufig erwähnt wurde, wollte ich nur kurz erwähnt haben: Ihr habt doch alle keine Ahnung
Sorry, nur ein dummer Scherz. Aber auch ich habe mich in den letzten Monaten mit Begeisterung von der aktuellen KI-Generation beeindrucken lassen. Nach meiner Erfahrung geht nichts über Suno AI (Musik)...
Meine Erfahrung mit ChatGPT ist eher durchwachsen. Viel zu oft hat GPT bzw. Copilot einen Themenwechsel vorgeschlagen, weil meine Fragen nicht zufrieden stellend oder falsch beantworten wurden.
Ja, ja Prompt Engineering. Davon halte ich nichts. Wenn ich ein LLM mit natürlicher Sprache bedienen können soll, dann werde ich keinen Kurs belegen, in dem mir beigebracht wir mit dieser KI zu kommunizieren. Dennoch ist mir bewusst, dass wenn ich bei meiner Anfrage zu sehr ins Detail gehe, ich damit ggf. Grenzen setze. Grenzen die die KI in ihrer Kreativität einschränken oder Fehler provozieren können...
Bei einem "Gespräch" über die bikubische Interpolation (zur Skalierung von Bildern) kamen wir zu dem Schluss, dass pro Bildzeile und Bildspalte je ein Satz an Koeffizienten benötigt werden. "Also bei einem Bild mit 150x150 Pixeln werden 300 Sätze benötigt?" "Nein, 22.500". ChatGPT hatte sich spontan umentschieden und meinte zu jedem Pixel müssten die Koeffizienten individuell berechnet werden (auch dann wäre 22.500 falsch)…
Nicht falsch verstehen, ChatGPT ist verdammt beeindruckend und ich mag was damit möglich ist. Aber mein Fazit lautet: Ein manchmal nützliches Spielzeug, das sein Geld noch nicht Wert ist.
Mit GPT-4o wurde wohl ein ordentlicher Sprung gemacht. Und während des Vorstellungsvideo hatte ich nur einen Gedanken: Haben will!
Aber das habe ich nicht ausprobiert und werde ich wohl auch nicht. Die Benchmarks scheinen sich da recht einig zu sein. Bei Semantik führt GPT-4o, ansonsten und vor allem bei Software Entwicklung hat Claude die Nase vorne.
Ich Verfasse diesen Text nicht um irgendjemand von irgendwas zu überzeugen. Ich benutze Claude seit Sonntag und bin begeistert. Wollte nur ein paar Fragen und Probleme aus der
DP kopieren um Claude zu füttern. Dabei bin ich hier gelandet und musste meiner Begeisterung Ausdruck verleihen. Und darauf hinweisen, Claude ist
imho ein Versuch wert.
Ein kleines Beispiel, das ich GTP-4 nicht zutraue (mit GTP-4o würde ich es ausprobieren).
Unit A hatte Daten erzeugt,
Unit B hat sie aufbereitet und
Unit C daraus ein Bild erstellt. Eine Änderung in
Unit A, die ich vergaß in
Unit B zu berücksichtigen, führte zu einem Fehler in dem Bild.
Ich habe Claude das Bild und die
Unit B und C gegeben. "Siehst du die beiden roten Punkte? Die müssten sich eigentlich ...blah blub… befinden. Wo ist mein Fehler?"
Claude fragt ein par mögliche Ursachen ab, welche ich ausschließen konnte. Dann sollte ich ein par Debugzeilen einfügen (OutputDebugString an spezifischen Stellen). Die Ausgabe habe ich Claude gegeben. Und erneut wurden mir Fragen gestellt und ich sollte weitere Debugzeilen einfügen. Claude wurde erneut mit der Ausgabe gefüttert und "Dann kann es nur noch A oder B sein". Und richtig, Claude kannte die
Unit A nicht, konnte also den Fehler bzw. den Ort nicht exakt bestimmen, hatte mir aber den entscheidenden Hinweis gegeben.
Dieses systematische und zielführende Vorgehen hat mich beeindruckt. Wie gesagt, ich nutze Claude erst seit Sonntag. Also urteile ich evtl. vorschnell. Aber im Moment fühlt sich die Arbeit mit Claude wie eine Mischung aus Pair Programming und Brainstorming an (und Tipparbeit abnehmen kann er auch
![Wink](images/smilies/icon_wink.gif)
). Die erste KI, die ich als nützliches Hilfsmittel empfinde.
Um den Anschluss an diesen Thread nicht völlig zu verlieren, komme ich noch zum "Auslöser" meiner Textwand
Und Claude Sonnet 3.5 kommt mit Deiner Frage wohl auch nicht sehr weit.
Das war auch auch ehrlicherweise nur das Standardmodell, weil ich noch keine Subscription habe.
Von Claude 3.5 gibt es derzeit nur Sonnet. Das kleine und das große Modell (sollten sie kommen) sind noch nicht verfügbar. Aber das ist die Antwort, die ich erhalten habe:
Delphi-Quellcode:
type
EOggError =
class(
Exception);
TOggPageHeader =
packed record
CapturePattern:
array[0..3]
of AnsiChar;
StreamStructureVersion: Byte;
HeaderType: Byte;
GranulePosition: Int64;
BitstreamSerialNumber: Cardinal;
PageSequenceNumber: Cardinal;
Checksum: Cardinal;
PageSegments: Byte;
end;
const
OGG_CAPTURE_PATTERN:
array[0..3]
of AnsiChar = '
OggS';
MAX_PAGE_SIZE = 65307;
// Maximum theoretical Ogg page size
function GetMaxGranulePosition(
const FileName:
string): Int64;
var
FileStream: TFileStream;
Header: TOggPageHeader;
MaxGranulePosition: Int64;
SegmentTable:
array[0..254]
of Byte;
PageSize: Integer;
i: Integer;
begin
MaxGranulePosition := 0;
FileStream :=
nil;
try
try
FileStream := TFileStream.Create(FileName, fmOpenRead
or fmShareDenyWrite);
while FileStream.Position < FileStream.Size
do
begin
// Read Ogg page header
if FileStream.
Read(Header, SizeOf(TOggPageHeader)) <> SizeOf(TOggPageHeader)
then
raise EOggError.Create('
Unexpected end of file while reading Ogg header');
// Check capture pattern
if not CompareMem(@Header.CapturePattern[0], @OGG_CAPTURE_PATTERN[0], 4)
then
raise EOggError.Create('
Invalid Ogg file format: Capture pattern mismatch');
// Update max granule position
if Header.GranulePosition > MaxGranulePosition
then
MaxGranulePosition := Header.GranulePosition;
// Read segment table
if FileStream.
Read(SegmentTable, Header.PageSegments) <> Header.PageSegments
then
raise EOggError.Create('
Unexpected end of file while reading segment table');
// Calculate page size
PageSize := 0;
for i := 0
to Header.PageSegments - 1
do
Inc(PageSize, SegmentTable[i]);
// Sanity check on page size
if PageSize > MAX_PAGE_SIZE
then
raise EOggError.Create('
Invalid Ogg page size');
// Skip to next page
FileStream.Seek(PageSize, soFromCurrent);
end;
except
on E: EOggError
do
raise;
on E:
Exception do
raise EOggError.CreateFmt('
Error processing Ogg file: %s', [E.
Message]);
end;
finally
FileStream.Free;
end;
Result := MaxGranulePosition;
end;
Da ich mit Ogg/Sound nicht viel zu tun habe, kann ich nicht beurteilen ob die Zahl korrekt ist aber ich habe eine erhalten
Ach zum Thema kopieren... In den Netzen werden die Trainingsdaten ja nicht direkt gespeichert. Diverse Eingaben werden zu "abstrakten Zahlen Kolonnen" zusammengefasst. Wenn ein Netz sehr monoton trainiert wird, dann wird die Ausgabe sehr monoton und den Trainingsdaten sehr ähnlich. Aber auch dann erhalten wir keine Kopie. Es ist eine Fusion und neu Interpretation von diversen Eingaben. Wenn ich mir von einer KI z.B. ein Bild erzeugen lasse, dann stammt die Kreative "Leistung" (zumindest weitestgehend) von mir. Die KI hat gelernt was ein Strich, ein Kreis, was rot und grün ist und wie viele Striche und Kreise benötigt werden um z.B. die Skizze von einem Auto anzufertigen. Aber wie das Auto aussehen soll, das gebe ich vor. Anstatt eines Bleistifts nehme ich halt eine KI (ja, vielleicht habe ich das ganze etwas stark vereinfacht aber von einer Kopie zu reden?)
Oder Suno, Musik... Natürlich gab es schon jemanden der Gitarre gespielt hat. Und natürlich spielt Suno nicht eine einzige Note, die nicht schonmal gespielt wurde. Aber die KI ist weit davon entfernt einfach Schnipsel aus verschiedenen Stücken auszuschneiden und zu einem Neuen zusammen zu setzen. So funktioniert KI nicht...