So wie „den Stall reparieren, nachdem die Kuh weggelaufen ist“ nicht bedeutet, dass man sich nicht auf die Zukunft vorbereiten soll,
bedeutet „das Rad nicht neu erfinden“ meiner Ansicht nach auch nicht, dass man keine Zeit investieren soll, um Einsichten zu gewinnen.
Wenn man bei solchen Aussagen den Kontext abschneidet, wird ihre eigentliche Bedeutung verzerrt.
Wenn man dasselbe Problem mehrfach hintereinander zu lösen versucht, überschreitet man irgendwann die Größe des Kontextfensters, und ich habe schon mehrfach erlebt, dass die KI dann einfach kaputtgeht. Mich würde interessieren, wie andere in solchen Fällen damit umgehen.
Ich wechsle dann das Modell und öffne ein neues Prompt-Fenster, wenn es sich nach mehreren Versuchen dumm anstellt.
Das ist eine aktuelle Erfahrung: Ich habe mir kürzlich mein ganz eigenes, sehr spezielles Rad gebaut.
Es dauerte 7 Minuten, eine App mit 1000 Seiten in Nuxt zu bauen,
aber nachdem ich auf einige Automatisierungen verzichtet und alles neu aufgebaut hatte, habe ich einen Build in 20 Sekunden geschafft.
Normalerweise schreibe ich nicht oft Kommentare, aber warum ich ausgerechnet zu diesem Artikel einen hinterlasse, ist, dass ich den Gedanken des Autors ziemlich stark zustimme. Nicht AI oder LLM sind das Entscheidende, sondern ich denke, dass ich als Entwickler auf jede Umgebung vorbereitet sein muss, egal was kommt.
Aufgrund der Eigenschaften der Trainingsdaten liefert ein LLM vor allem Daten, die in der Nähe des Durchschnitts der weltweit im Internet verteilten Daten liegen. (Das oben erwähnte js-Quicksort beweist das.) Deshalb nutze ich es meist, um zu fragen, ob etwas in ideologischer oder Design-Hinsicht einigermaßen mit der allgemeinen Perspektive übereinstimmt oder davon abweicht, oder für Inhalte, bei denen lange unklar war, wen man überhaupt fragen sollte.
Ich bin mir nicht sicher, welchen Sinn es hat, das Gespräch noch weiter fortzusetzen.
Wenn die Ansicht von vornherein lautet, dass von der AI erzeugter Code gewisse Risiken enthalten kann und man ihn daher sorgfältig bereinigen und angemessen nutzen sollte, dann wäre es wohl ausreichend, wenn Sie erklären, inwiefern der Text des Autors von bestimmten Denkverzerrungen geprägt ist. Selbst in der Zusammenfassung steht sinngemäß: „Kontextloser Scaffold-/Entwurfscode kann zwar schnell bereitgestellt werden, aber vollständiges Design und Tuning bleiben Aufgabe menschlicher Entwickler.“
Im Grunde ist das Code, der keinerlei Verständnis für den Aufwand bei der Erstellung, Handhabung und Zusammenführung von Collections erkennen lässt. Im Fall von C++ wurden bereits vor etwa 10 Jahren Vorschläge bzw. Implementierungen für Move-Konstruktoren vorgestellt, und ein scharfes Bewusstsein für die Kosten von Speicherkopien gehört dort zu den absoluten Grundlagen. Quick Sort ist seinem Mechanismus nach ein Algorithmus, der die Indizes aller Werte festlegen kann, und es ist besser, wenn auf die einzelnen Felder per Random Access zugegriffen werden kann.
Selbst ohne manische Optimierungen ergibt sich bei Anwendung allein der oben genannten Punkte ein Leistungsunterschied von mehr als dem Doppelten gegenüber der von Ihnen verlinkten Methode.
LLMs und KI entwickeln sich mit der Zeit immer weiter. Noch vor wenigen Monaten war es praktisch kaum möglich, etwa bei der Konsistenz von Code viel zu erwarten, aber inzwischen kann man, wenn man den von der KI auf Grundlage der anfänglichen Konfigurationsanfrage erstellten Code in diesem Workspace als Dateien hochlädt und ihr die Anweisung gibt, beim Schreiben neuen Codes stets den bestehenden Codestil einzuhalten, ziemlich konsistenten Code erzeugen lassen.
Ich war dabei, durch das Ausprobieren verschiedener Dinge eine Richtung zu finden, und ich finde den menschenzentrierten Ansatz interessanter als den handlungsorientierten. Ist das so etwas wie ein Vorbild? Ich habe es mit Freude gelesen, danke.
Hallo. Aus Neugier habe ich einmal gesagt: „Ich möchte das im Web-Frontend einsetzen, also implementiere bitte den Quicksort-Algorithmus in JS.“ Allerdings fällt es mir schwer zu erkennen, was genau das Problem ist. Wenn Sie es mir erklären könnten, wäre das eine große Hilfe. Vielen Dank im Voraus. https://chatgpt.com/share/68340f9b-b684-8002-8dd5-495d477065cd
Es ist also ein Common-Lisp-Projekt. Deshalb funktioniert wohl die Kombination aus ocicl+make. Es wäre wahrscheinlich wartungsfreundlicher, das einfach an Vibe AI zu geben und sie zu bitten, es stattdessen mit typescript+deno zu erstellen.
Ich glaube, Sie haben nicht ganz verstanden, warum ich das Fachgebiet des Autors erwähnt habe und was mit der eigenen Domain gemeint ist.
Es wirkt töricht, alle Entscheidungen ohne eigenes Nachdenken an die AI zu delegieren,
aber ich kann auch die Leute auf der anderen Seite nicht so recht nachvollziehen.
Zum Schluss würde ich gern noch fragen, wie superscv Ihrer Meinung nach LLMs beim Programmieren sinnvoll einsetzen sollte.
Vor dem Vortrag gab es Vorstellungen der Sponsoren Google und Facebook.
So wie „den Stall reparieren, nachdem die Kuh weggelaufen ist“ nicht bedeutet, dass man sich nicht auf die Zukunft vorbereiten soll,
bedeutet „das Rad nicht neu erfinden“ meiner Ansicht nach auch nicht, dass man keine Zeit investieren soll, um Einsichten zu gewinnen.
Wenn man bei solchen Aussagen den Kontext abschneidet, wird ihre eigentliche Bedeutung verzerrt.
Ich denke, das größte Aushängeschild der USA ist der Dollar.
Wenn man dasselbe Problem mehrfach hintereinander zu lösen versucht, überschreitet man irgendwann die Größe des Kontextfensters, und ich habe schon mehrfach erlebt, dass die KI dann einfach kaputtgeht. Mich würde interessieren, wie andere in solchen Fällen damit umgehen. Ich wechsle dann das Modell und öffne ein neues Prompt-Fenster, wenn es sich nach mehreren Versuchen dumm anstellt.
Das ist eine aktuelle Erfahrung: Ich habe mir kürzlich mein ganz eigenes, sehr spezielles Rad gebaut.
Es dauerte 7 Minuten, eine App mit 1000 Seiten in Nuxt zu bauen,
aber nachdem ich auf einige Automatisierungen verzichtet und alles neu aufgebaut hatte, habe ich einen Build in 20 Sekunden geschafft.
OSSU Open Source Society University - Computer Science im Selbststudium
Das wurde schon in den Anfangstagen von GeekNews vorgestellt. Inzwischen ist ziemlich viel hinzugekommen.
Vielen Dank für die Antwort!
Die zweite
quickSortInPlace()-Variante, die Sie angehängt haben, ist auch eine langsame Implementierung.Führen Sie einfach den folgenden Code aus.
function quickSortInPlace(arr, left = 0, right = arr.length - 1) {
if (left >= right) return;
const pivotIndex = partition(arr, left, right);
quickSortInPlace(arr, left, pivotIndex - 1);
quickSortInPlace(arr, pivotIndex + 1, right);
}
function partition(arr, left, right) {
const pivot = arr[right];
let i = left;
for (let j = left; j < right; j++) {
if (arr[j] < pivot) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
}
}
[arr[i], arr[right]] = [arr[right], arr[i]];
return i;
}
function quickSort(arr) {
if (arr.length <= 1) return arr;
const pivot = arr[arr.length - 1];
const left = [];
const right = [];
for (let i = 0; i < arr.length - 1; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), pivot, ...quickSort(right)];
}
const repeat = 100;
const arrLength = 10000;
const unsortedArray = new Array<number>();
for(let i = 0; i < arrLength; i++)
unsortedArray.push(Math.round(Math.random() * arrLength));
let sorted: Array<number>;
const qb = performance.now();
for(let i = 0; i < repeat; i++)
sorted = quickSort(unsortedArray);
const qe = performance.now();
const rqb = performance.now();
for(let i = 0; i < repeat; i++) {
let copied = [...unsortedArray];
quickSortInPlace(copied);
}
const rqe = performance.now();
console.log(
q: ${qe - qb} ::: rq: ${rqe - rqb});Ein Text mit tiefen Einsichten. Wie erwartet von a16z.
Normalerweise schreibe ich nicht oft Kommentare, aber warum ich ausgerechnet zu diesem Artikel einen hinterlasse, ist, dass ich den Gedanken des Autors ziemlich stark zustimme. Nicht AI oder LLM sind das Entscheidende, sondern ich denke, dass ich als Entwickler auf jede Umgebung vorbereitet sein muss, egal was kommt.
Aufgrund der Eigenschaften der Trainingsdaten liefert ein LLM vor allem Daten, die in der Nähe des Durchschnitts der weltweit im Internet verteilten Daten liegen. (Das oben erwähnte
js-Quicksort beweist das.) Deshalb nutze ich es meist, um zu fragen, ob etwas in ideologischer oder Design-Hinsicht einigermaßen mit der allgemeinen Perspektive übereinstimmt oder davon abweicht, oder für Inhalte, bei denen lange unklar war, wen man überhaupt fragen sollte.Ich bin mir nicht sicher, welchen Sinn es hat, das Gespräch noch weiter fortzusetzen.
Wenn die Ansicht von vornherein lautet, dass von der AI erzeugter Code gewisse Risiken enthalten kann und man ihn daher sorgfältig bereinigen und angemessen nutzen sollte, dann wäre es wohl ausreichend, wenn Sie erklären, inwiefern der Text des Autors von bestimmten Denkverzerrungen geprägt ist. Selbst in der Zusammenfassung steht sinngemäß: „Kontextloser Scaffold-/Entwurfscode kann zwar schnell bereitgestellt werden, aber vollständiges Design und Tuning bleiben Aufgabe menschlicher Entwickler.“
Im Grunde ist das Code, der keinerlei Verständnis für den Aufwand bei der Erstellung, Handhabung und Zusammenführung von Collections erkennen lässt. Im Fall von C++ wurden bereits vor etwa 10 Jahren Vorschläge bzw. Implementierungen für Move-Konstruktoren vorgestellt, und ein scharfes Bewusstsein für die Kosten von Speicherkopien gehört dort zu den absoluten Grundlagen. Quick Sort ist seinem Mechanismus nach ein Algorithmus, der die Indizes aller Werte festlegen kann, und es ist besser, wenn auf die einzelnen Felder per Random Access zugegriffen werden kann.
Selbst ohne manische Optimierungen ergibt sich bei Anwendung allein der oben genannten Punkte ein Leistungsunterschied von mehr als dem Doppelten gegenüber der von Ihnen verlinkten Methode.
return [...quickSort(left), ...equal, ...quickSort(right)];
Denken Sie einmal genau darüber nach, was dieser Teil des Codes bedeutet.
LLMs und KI entwickeln sich mit der Zeit immer weiter. Noch vor wenigen Monaten war es praktisch kaum möglich, etwa bei der Konsistenz von Code viel zu erwarten, aber inzwischen kann man, wenn man den von der KI auf Grundlage der anfänglichen Konfigurationsanfrage erstellten Code in diesem Workspace als Dateien hochlädt und ihr die Anweisung gibt, beim Schreiben neuen Codes stets den bestehenden Codestil einzuhalten, ziemlich konsistenten Code erzeugen lassen.
Es heißt, dass der yolo mode in den auto run mode umbenannt wurde.
Ich war dabei, durch das Ausprobieren verschiedener Dinge eine Richtung zu finden, und ich finde den menschenzentrierten Ansatz interessanter als den handlungsorientierten. Ist das so etwas wie ein Vorbild? Ich habe es mit Freude gelesen, danke.
Irgendwie scheint der Link nicht richtig zu funktionieren, deshalb versuche ich es noch einmal neu. https://chatgpt.com/canvas/shared/68341217ae788191b66a523c948b1a8e
Hallo. Aus Neugier habe ich einmal gesagt: „Ich möchte das im Web-Frontend einsetzen, also implementiere bitte den Quicksort-Algorithmus in JS.“ Allerdings fällt es mir schwer zu erkennen, was genau das Problem ist. Wenn Sie es mir erklären könnten, wäre das eine große Hilfe. Vielen Dank im Voraus. https://chatgpt.com/share/68340f9b-b684-8002-8dd5-495d477065cd
Es ist also ein Common-Lisp-Projekt. Deshalb funktioniert wohl die Kombination aus ocicl+make. Es wäre wahrscheinlich wartungsfreundlicher, das einfach an Vibe AI zu geben und sie zu bitten, es stattdessen mit typescript+deno zu erstellen.
Ich glaube, Sie haben nicht ganz verstanden, warum ich das Fachgebiet des Autors erwähnt habe und was mit der eigenen Domain gemeint ist.
Es wirkt töricht, alle Entscheidungen ohne eigenes Nachdenken an die AI zu delegieren,
aber ich kann auch die Leute auf der anderen Seite nicht so recht nachvollziehen.
Zum Schluss würde ich gern noch fragen, wie superscv Ihrer Meinung nach LLMs beim Programmieren sinnvoll einsetzen sollte.