- Emacs Copilot erzeugt Code Completion in Emacs-Buffern mithilfe eines lokal ausgeführten LLM (Large Language Model).
- Das LLM wird als Unterkommando ausgeführt, das sich den lokalen Bearbeitungsverlauf pro Datei merkt, und kann jederzeit mit
C-g unterbrochen werden.
- Beim Löschen von Code kann auch dieser Verlauf aus dem Kontext des LLM entfernt werden, und die Programmiersprache wird unabhängig von der Sprache über die Dateiendung bestimmt.
WizardCoder-34b-Modell
- WizardCoder 34b ist ein leistungsfähiges LLM, das denselben HumanEval-Score wie GPT-4 erreicht hat.
- Für die Nutzung dieses Modells wird ein leistungsstarker Rechner wie ein Mac Studio M2 Ultra benötigt; Nutzer eines MacBook Pro können die Q3-Version in Betracht ziehen, allgemeine PC-Nutzer das Modell WizardCoder-Python-13b.
- Nutzer mit geringerer Rechenleistung, etwa auf einem Raspberry Pi, können das Modell Phi-2 verwenden.
Erste Schritte
- Nach dem Schreiben der ersten Zeile einer Funktion kann man mit
C-c C-k die Kontrolle an das LLM übergeben, das dann den Rest der Funktion implementiert.
- Das LLM ist so eingestellt, dass es stoppt, wenn die Funktion vollständig ist, und vermeidet Erklärungen oder ELI5-Kommentare.
Referenzimplementierung
- Nach dem Download des LLM kann man den untenstehenden Code in einen Emacs-Puffer kopieren und
M-x eval-buffer ausführen.
- Der Code lässt sich an persönliche Vorlieben anpassen.
Emacs-Download-Link
- Falls Emacs nicht installiert ist oder man eine Plattform wie Windows nutzt, auf der es schwieriger zu bekommen ist, gibt es einen Link zu einem ausführbaren Single-File-Build von Emacs, der ohne Installation läuft.
LLM-Download-Links
- Es werden Links zum kostenlosen Download einiger LLMs bereitgestellt, die bekanntermaßen gut mit Emacs Copilot funktionieren.
- Die Modellgröße kann passend zur eigenen Hardware gewählt werden.
Cache-Dateien
- Wenn man sich für einen Modellwechsel entscheidet, müssen alle im lokalen Dateisystem erzeugten
FILE.cache-Dateien gelöscht werden.
Hinweise
- Unter macOS mit Apple Silicon muss Xcode installiert sein.
- Bei Verwendung von zsh muss es möglicherweise mit
sh -c ./llamafile ausgeführt werden.
- Auf einigen Linux-Systemen können Fehler im Zusammenhang mit der Registrierung von
binfmt_misc auftreten.
Unterstützte OS und CPU
- llamafile unterstützt mehrere Betriebssysteme mit minimalen Installationsanforderungen.
- llamafile unterstützt bestimmte CPUs; erforderlich ist ein AMD64-Mikroprozessor mit SSSE3 oder höherem Befehlssatz oder ein ARM64-Mikroprozessor mit ARMv8a+.
Hinweise zum Modell
- Die oben bereitgestellten llamafile-Beispiele dürfen nicht als Unterstützung oder Empfehlung von Mozilla für ein bestimmtes Modell, eine bestimmte Lizenz oder einen bestimmten Datensatz verstanden werden.
Meinung von GN⁺
- Innovatives Editor-Erlebnis: Emacs Copilot bietet Entwicklern eine neue Stufe der Coding-Unterstützung und hat das Potenzial, Effizienz und Produktivität deutlich zu steigern.
- Zugänglichkeit und Anpassbarkeit: Nutzer können das LLM passend zu ihren Anforderungen und Vorlieben auswählen und ihre Emacs-Umgebung anpassen, wodurch sich eine personalisierte Entwicklungsumgebung schaffen lässt.
- Technische Kompatibilität: Durch die Unterstützung verschiedener Betriebssysteme und CPUs kann Emacs Copilot von einer breiten Nutzerbasis eingesetzt werden, was Inklusion und Zugänglichkeit in der Entwickler-Community verbessert.
1 Kommentare
Hacker-News-Kommentare
Zweifel am Nutzen der LLM/IDE-Integration
Dank für die Entwicklung selbst gehosteter LLM-Tools
Geteilte Erfahrungen mit der LLM-Integration in Emacs
Erfahrungen mit dem Betrieb eines LLM auf einem MacBook Pro M1 Max
Kritik an der Funktion
is_primein der VideodemonstrationFrage zu einem Llamafile-Build, das auf NixOS nicht ausführbar ist
Wunsch nach einer allgemeineren LLM-Integration
Vim-Nutzer teilt benutzerdefinierten Befehl für die LLM-Integration
Frage zum Upgrade-Pfad von Llamafile
Ausdruck von Interesse an LLM-Integration und Bereitschaft zum Ausprobieren