- Emacs Copilotは、ローカルで実行されるLLM(Large Language Model)を使って、Emacsバッファ内でコード補完を生成する
- LLMはファイルごとにローカルの編集履歴を記憶するサブコマンドとして実行され、
C-gを使っていつでもLLMを中断できる
- コードを削除すると、LLMのコンテキストからその履歴も削除されることがあり、言語に依存せずファイル拡張子によってプログラミング言語が判定される
WizardCoder 34bモデル
- WizardCoder 34bは、GPT-4と同じHumanEvalスコアを獲得した優れたLLM。
- このモデルを使うには、Mac Studio M2 Ultraのような高性能なコンピューターが必要で、Macbook ProユーザーはQ3版を、一般的なPCユーザーはWizardCoder-Python-13bモデルを検討できる。
- Raspberry Piのように計算資源が限られた環境では、Phi-2モデルを利用できる。
始め方
- 関数の1行目を書いたあと、
C-c C-kを押してLLMに制御を渡すと、残りの関数実装を生成してくれる。
- LLMは関数が完成すると停止するよう調整されており、説明やELI5(やさしく説明する)コメントは避ける。
参照実装
- LLMをダウンロードしたあと、Emacsバッファに以下のコードをコピーして
M-x eval-bufferを実行すればよい。
- コードは個人の好みに合わせて調整できる。
Emacsダウンロードリンク
- Emacsがインストールされていない場合や、Windowsのように入手しにくいプラットフォームを使っている場合のために、インストール不要で実行できる単一ファイルビルドのEmacsリンクが提供されている。
LLMダウンロードリンク
- Emacs Copilotと相性がよいとされるいくつかのLLMを無料でダウンロードできるリンクが提供されている。
- モデルのサイズはハードウェアに合わせて選択できる。
キャッシュファイル
- モデルを変更する場合は、ローカルファイルシステムに作成されたすべての
FILE.cacheファイルを削除する必要がある。
注意事項
- macOSでApple Siliconを使う場合は、Xcodeがインストールされている必要がある。
- zshを使っている場合は、
sh -c ./llamafileで実行する必要があるかもしれない。
- 一部のLinuxシステムでは、
binfmt_misc登録に関するエラーが発生することがある。
対応OSとCPU
- llamafileは、最小限のインストール要件で複数のオペレーティングシステムをサポートしている。
- llamafileは特定のCPUをサポートしており、SSSE3以上の命令セットを備えたAMD64マイクロプロセッサ、またはARMv8a+を備えたARM64マイクロプロセッサが必要。
モデルに関する注意
- 上記で提供されているllamafileの例は、特定のモデル、ライセンス、データセットに対するMozillaの支持や推奨を意味するものと解釈してはならない。
GN⁺の見解
- 革新的な編集体験: Emacs Copilotは開発者に新しい次元のコーディング支援を提供し、効率と生産性を大きく向上させる可能性を持つ。
- アクセシビリティとカスタマイズ性: ユーザーは自分のニーズや好みに合わせてLLMを選び、Emacs環境を調整できるため、パーソナライズされた開発環境を構築できる。
- 技術的互換性: 多様なオペレーティングシステムとCPUをサポートすることで、幅広いユーザーがEmacs Copilotを利用でき、開発者コミュニティにおける包摂性とアクセス性の向上につながる。
1件のコメント
Hacker Newsの意見
LLM/IDE統合の有用性への疑問
セルフホスト型LLMツールの開発への感謝
EmacsでのLLM統合体験の共有
MacBook Pro M1 MaxでのLLM実行体験
動画デモの
is_prime関数への批判NixOSで実行できないllamafileビルドについての質問
より汎用的なLLM統合への要望
VimユーザーによるLLM統合カスタムコマンドの共有
Llamafileのアップグレードパスについての質問
LLM統合への関心と試してみたい意向の表明