- この記事の音声読み上げ
- はじめに
- プレインストールの設定
- open-interpreterのインストールと設定
- Open-interpreterの使用
- まとめ
- M1 Macでstream resultが制御できないバグについて
- 補足: interpreter -yでの実行時の表示
- 補足: Code-Llamaに進んだ場合のメッセージ
この記事の音声読み上げ
VOICEVOX:冥鳴ひまり
はじめに
Open Interpreterは、自然言語で指示を与えることでコードを書き、実行まで行ってくれるツールであり、これはローカル環境にインストールすることで利用可能となる、OpenAI社のCode Interpreter(Advanced Data Analysis)のオープンソース版と言えます。
例えば、Macのターミナル上でOpen Interpreterをインストールすることで、大規模言語モデル・Large Language Model (以下、LLM) を利用することができるようになります。
GPT-4を使用するには、OpenAIのAPIキーが必要ですが、Code Llamaというローカルで動作するコード生成モデルも無料で利用可能であり、ただし、インストールと適切な計算環境の設定が必要です。
今回は、macOSにOpen Interpreter(バージョン open-interpreter-0.1.6 & openai-0.28.1)をインストールし、その設定とターミナル上でのGPT-4の動作を確認した結果を報告します。
ターミナル上でのローカル実行は、多くの利点をもたらすかもしれません。。
プレインストールの設定
Open InterpreterはPythonのライブラリであるため、pipコマンドを使用してインストールを行います。
初めに、Pythonとpipのバージョンを確認しましたが、私の環境では、minicondaを使用してインストールされたPython 3.9.12とpip 21.2.4が利用されていました。しかし、これらのバージョンはOpen Interpreterとの相性が良くないことが判明しました。
こんな状況でした。
(このとき、バージョン確認で実行したコマンドは以下の通りです。)
# バージョン確認コマンド which python #/Users/sas/miniconda/bin/python python -V #Python 3.9.12 which pip #/Users/sas/miniconda/bin/pip pip -V #pip 21.2.4 from /Users/sas/miniconda/lib/python3.9/site-packages/pip (python 3.9)
そのため、Pythonとpipの最新版をインストールし、私は/opt/homebrew/binにあるpip3.11を使用しました。
/opt/homebrew/bin/pip3.11 -V #pip 23.2.1 from /opt/homebrew/lib/python3.11/site-packages/pip (python 3.11)
open-interpreterのインストールと設定
インストールはpipコマンドを使用し、open-interpreterを指定します。 私の環境ではパスが通っていないため、フルパスでpipコマンドを実行しました。
#インストール /opt/homebrew/bin/pip3.11 install open-interpreter #アップグレード時 /opt/homebrew/bin/pip3.11 install --upgrade open-interpreter
インストールが完了したら、ヘルプを表示して動作を確認します。
このバージョンでは、すでに、--versionの引数は廃止されているようです。
ヘルプ表示の実行結果は以下の通りです。
# ヘルプ表示 $ interpreter -h usage: interpreter [-h] [-s SYSTEM_MESSAGE] [-l] [-y] [-d] [-m MODEL] [-t TEMPERATURE] [-c CONTEXT_WINDOW] [-x MAX_TOKENS] [-b MAX_BUDGET] [-ab API_BASE] [-ak API_KEY] [--config] [--conversations] [-f] Open Interpreter options: -h, --help show this help message and exit -s SYSTEM_MESSAGE, --system_message SYSTEM_MESSAGE prompt / custom instructions for the language model -l, --local run in local mode -y, --auto_run automatically run the interpreter -d, --debug_mode run in debug mode -m MODEL, --model MODEL model to use for the language model -t TEMPERATURE, --temperature TEMPERATURE optional temperature setting for the language model -c CONTEXT_WINDOW, --context_window CONTEXT_WINDOW optional context window size for the language model -x MAX_TOKENS, --max_tokens MAX_TOKENS optional maximum number of tokens for the language model -b MAX_BUDGET, --max_budget MAX_BUDGET optionally set the max budget (in USD) for your llm calls -ab API_BASE, --api_base API_BASE optionally set the API base URL for your llm calls (this will override environment variables) -ak API_KEY, --api_key API_KEY optionally set the API key for your llm calls (this will override environment variables) --config open config.yaml file in text editor --conversations list conversations to resume -f, --fast (depracated) runs `interpreter --model gpt-3.5-turbo`
Open-interpreterの使用
続いて、実際に、Open-interpreterを使ってみます。
コマンドはinterpreter
で、その基本的な使用方法として、-y
、-m [モデル名]
、--api_key [OpenAI APIキー]
を引数として指定して使います。
# 基本コマンド interpreter -y -m [モデル名] --api_key [APIキー]
しかし、どうも困ったことに、GPT-4のモデルが正しく指定されないようです。
これはバグかどうか不明ですが、将来のアップデートで修正されることを期待しています。
使用したAIモデルに質問したら、彼はGPT-3.5のようです。
日本語と英語の両方で実行が可能であることが確認されましたが、GPT-3.5なら、英語で使うのが無難ですね。
続いて、実行例として、以下のプロンプトを実行しました。
日本語プロンプト: R言語で主成分分析のコードを示してください。Rコードも示してください。
下図がプロンプトの実行結果です。
英語プロンプト: Please show the code for Principal Component Analysis in R. Please also show the R code.
下図がプロンプトの実行結果です。
まとめ
今回の環境では、なぜかGPT-4を使用することができず、ガクッとやる気が落ちましたけど、、、
作成したコードを、ローカル環境でコード実行できる魅力は非常に大きいものがあります。
とりあえず、今後に期待しています。
M1 Macでstream resultが制御できないバグについて
LLM実行時にstream resultが制御できずに、debug_modeが常に走ってしまうバグについて、 解決方法がGitHubで議論されていて、litellmのアップグレードで回避できるようです。
#litellmのアップグレード(litellm-0.9.2) /opt/homebrew/bin/pip3.11 install --upgrade litellm #... #ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour #is the source of the following dependency conflicts. #open-interpreter 0.1.9 requires litellm<0.8.0,>=0.7.5, but you have litellm 0.9.2 which is incompatible. #Successfully installed litellm-0.9.2
補足: interpreter -yでの実行時の表示
補足: Code-Llamaに進んだ場合のメッセージ
─────────────────────────────────────────────────────────────────────────────────────────────── ▌ OpenAI API key not found To use GPT-4 (recommended) please provide an OpenAI API key. To use Code-Llama (free but less capable) press enter. ─────────────────────────────────────────────────────────────────────────────────────────────── OpenAI API key: ▌ Switching to Code-Llama... Tip: Run interpreter --local to automatically use Code-Llama. ─────────────────────────────────────────────────────────────────────────────────────────────── Open Interpreter will use Code Llama for local execution. Use your arrow keys to set up the model. [?] Parameter count (smaller is faster, larger is more capable): 7B > 7B 13B 34B [?] Quality (smaller is faster, larger is more capable): Small | Size: 2.6 GB, Estimated RAM us[?] Quality (smaller is faster, larger is more capable): Medium | Size: 3.8 GB, Estimated RAM u[?] Quality (smaller is faster, larger is more capable): Small | Size: 2.6 GB, Estimated RAM us[?] Quality (smaller is faster, larger is more capable): Small | Size: 2.6 GB, Estimated RAM us[?] Quality (smaller is faster, larger is more capable): Medium | Size: 3.8 GB, Estimated RAM u[?] Quality (smaller is faster, larger is more capable): Small | Size: 2.6 GB, Estimated RAM usage: 5.1 GBSize: 2.6 GB, Estimated RAM usage: 5.1 GB > Small | Size: 2.6 GB, Estimated RAM usage: 5.1 GB Medium | Size: 3.8 GB, Estimated RAM usage: 6.3 GB Large | Size: 6.7 GB, Estimated RAM usage: 9.2 GB See More [?] Use GPU? (Large models might crash on GPU, but will run more quickly) (Y/n): n This language model was not found on your system. Download to `/Users/sas/Library/Application Support/Open Interpreter/models`? [?] (Y/n): n Download cancelled. Exiting. ```