8月19日、海外の技術情報メディアTheRegisterが「自分で作ればGitHub Copilotは不要」と題した記事を公開した。この記事では、オープンソースのAIコードアシスタント「Continue」を中心に、どのようにしてLLM(大規模言語モデル)をローカル環境で実行し、IDEに統合するかについて解説している。
Continueをインストールする前提条件
Continueをインストールし、動作させるには、以下の前提条件を満たす必要がある。
マシン要件:
- 動作に必要なマシン: 近年のプロセッサを搭載したシステムであれば動作するが、最適なパフォーマンスを得るためにはNvidia、AMD、またはIntelのGPU(6GB以上のvRAMを推奨)が望ましい。Apple Silicon搭載のMacでも動作するが、16GB以上のメモリを推奨する。
Ollamaモデルランナー:
- Ollamaモデルランナー: この記事では、Ollamaモデルランナーのセットアップが前提とされている。未セットアップの場合、別途提供されているガイドに従って設定を行う必要がある。
対応するIDE:
- 対応するIDE: 現時点では、ContinueはJetBrainsとVisual Studio Codeをサポートしている。また、Microsoftのテレメトリを避けたい場合には、オープンソースコミュニティビルドであるVSCodiumも利用可能である。
Continueのインストール手順
- VS Codeでの導入:
まず、VS Code (もしくはそのオープンソース版であるVSCodium)を起動し、拡張機能パネルを開いて「Continue」を検索し、インストールする。
続いて、Continueの初期設定ウィザードが起動し、モデルをローカルでホストするか、他のプロバイダのAPIに接続するかを選択するよう求められる。
この記事では、ローカルモデルのホストを選択し、次のモデルがデフォルトで設定される。
- Llama 3 8B: Metaの一般的なLLMで、コードのコメント、最適化、リファクタリングに使用される。
- Nomic-embed-text: コードベースをローカルにインデックス化するための埋め込みモデルで、統合されたチャットボットにおいてコードベースを参照する際に使用される。
- Starcoder2:3B: BigCodeのコード生成モデルで、Continueのタブオートコンプリート機能を支える。
- Continueの使用例:
- Continueを使用すると、コードの生成やリファクタリングが可能である。例えば、簡単なHTMLのランディングページを生成する場合、
Ctrl-I
またはCommand-I
を押してプロンプトを入力し、Continueが提案するコードスニペットを受け入れることができる。
- Continueを使用すると、コードの生成やリファクタリングが可能である。例えば、簡単なHTMLのランディングページを生成する場合、
- モデルの切り替え方法:
- Continueは、特定のモデルや技術に依存していないため、新しいモデルがリリースされるたびに、適宜切り替えることが可能である。Ollamaをモデルサーバーとして使用している場合、
ollama pull
コマンドを使って必要なモデルをダウンロードし、Continueの設定メニューから選択することで、容易に切り替えることができる。
- Continueは、特定のモデルや技術に依存していないため、新しいモデルがリリースされるたびに、適宜切り替えることが可能である。Ollamaをモデルサーバーとして使用している場合、
コード生成とリファクタリングの詳細
Continueを使ったコード生成の具体的な手順や、リファクタリング、コメント生成などの機能も詳細に説明されている。
- 例えば、簡単なウェブページを生成する際には、
Ctrl-I
を押してプロンプトを入力し、生成されたコードを受け入れるか拒否することができる。
- また、PythonスクリプトをリファクタリングしてApple Silicon Macで動作させる
- コードのコメント生成や最適化、リファクタリングも簡単に行うことができる。
タブオートコンプリート機能
Continueはコード生成に加えて、タブオートコンプリート機能も備えている。この機能により、コードを入力する際にAIが予測し、タブキーを押すことで予測されたコードを自動補完することができる。
チャットボット機能
Continueには、コードベースと対話するためのチャットボット機能も統合されている。RAG(Retrieve and Generate)機能を活用し、コードベースに関する質問を行うことができる。この機能を使えば、コードベース全体を検索したり、特定のファイルやエラーに関する情報を迅速に取得することが可能である。
モデルの切り替えとカスタマイズ
Continueは、様々なLLMやコード生成モデルをサポートしており、必要に応じてモデルを簡単に切り替えることができる。例えば、Llama 3をGoogleのGemma 2やStarcoder2をCodestralに置き換える場合、Ollamaのコマンドを使用して新しいモデルをダウンロードし、Continueの設定メニューから選択するだけである。
- また、タブオートコンプリート機能に使用するモデルの変更には、Continueの設定ファイルを編集する必要がある。
詳細は「Who needs GitHub Copilot when you roll your own」を参照していただきたい。