AutoDL で Codex CLI を使う完全ガイド
このスキルは、AutoDL リモートサーバー上で直接 Codex CLI を使用してプロジェクトコードを修正・デバッグできるようにし、リモートプロジェクトや大容量データをローカルにダウンロードする手間を省くためのものです。以下のようなシナリオに適しています:
- ユーザーのコードとデータがすべて AutoDL リモートサーバー上にある場合
- データファイルが大きく、ローカルにダウンロードするのに適さない場合
- ユーザーが Codex にリモートコードを直接読み取らせ、ファイルを修正し、テストを実行させたい場合
- AutoDL サーバーが
chatgpt.comやapi.openai.comに直接アクセスできない場合 - Codex CLI のインストール時に、ネットワーク、npm、PATH、gawk、SHA チェックサムなどの問題が発生する場合
1. 全体的な考え方
AutoDL 上のプロジェクトをローカルにダウンロードしてから Codex に修正させるのではなく、以下の手順を踏みます:
- ローカルマシンで SSH リバースプロキシを開く
- AutoDL がローカルプロキシを経由して OpenAI にアクセスできるようにする
- AutoDL サーバーに Codex CLI をインストールする
- AutoDL のプロジェクトディレクトリで直接
codexを実行する - Codex がリモートサーバー上で直接コードを読み取り、修正し、実行できるようにする
最終目標は次のとおりです:
cd /autodl-tmp/あなたのプロジェクトディレクトリ
codex
2. AutoDL の SSH アドレスとポートを取得する
AutoDL コンソールで現在のインスタンスの SSH ログインコマンドを見つけます。
通常、以下のような形式です:
ssh -p 32384 [email protected]
ここで:
[email protected]
が AutoDL アドレスです;
-p 32384
が SSH ポートです。
以降のすべてのコマンドで、<PORT> はポート(例:32384)に、<HOST> はアドレス(例:connect.bjb2.seetacloud.com)に置き換えてください。
3. ローカルマシンで SSH リバースプロキシを開く
ローカルマシンで Clash、VPN、またはその他のプロキシが起動しており、ローカルプロキシポートが 7890 の場合、ローカルの Windows PowerShell、CMD、または Git Bash で以下を実行します:
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
例:
ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]
AutoDL の SSH パスワードを入力します。
注意:
- パスワード入力時、端末には何も表示されず、
*も表示されません。 - パスワードを貼り付けたら、そのまま Enter キーを押します。
- ログインに成功すると、このウィンドウは動かなくなり、正常な状態です。
- このウィンドウは閉じないでください。AutoDL からローカルプロキシへのトンネルを維持する役割を果たしています。
次のメッセージが表示された場合:
Permission denied
パスワードが間違っています。AutoDL コンソールに戻って正しい SSH パスワードをコピーしてください。
4. AutoDL でプロキシ環境変数を設定する
別の端末を開き、通常の SSH で AutoDL にログインするか、AutoDL のウェブターミナルを使用します。
AutoDL に入ったら、以下を実行します:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
次に、ネットワークをテストします:
curl -I https://chatgpt.com
curl -I https://api.openai.com
以前は次のようだった場合:
Connection timed out
今は次のようになります:
HTTP/1.1 200 Connection established
プロキシトンネルが機能していることを示しています。
chatgpt.com へのアクセスで次の応答が返ってきた場合:
HTTP/2 403
これは通常、サイトに接続できているが、Cloudflare やアクセスポリシーによって Web ページ自体が拒否されていることを意味し、必ずしもプロキシの失敗を示すものではありません。引き続き Codex インストールスクリプトまたは api.openai.com をテストしてください。
5. Codex CLI をインストールする
AutoDL で以下を実行します:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
成功すると、次のようなメッセージが表示されます:
Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.
6. gawk / SHA-256 チェックサムエラーの処理
インストール中に次のエラーが発生した場合:
Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.
通常、システムのデフォルト awk が GNU awk ではないために、インストールスクリプトが SHA256SUMS の解析に失敗したことが原因です。
まず確認します:
awk --version
出力が次の場合:
awk: not an option: --version
現在の awk は GNU awk ではありません。
次のコマンドを使用しないでください:
bash awk --version
これは誤った書き方です。awk はバイナリプログラムであり、シェルスクリプトではありません。
修正方法:
apt-get update
apt-get install -y gawk
インストール後、確認します:
gawk --version
awk --version
それでも awk --version が GNU Awk でない場合は、デフォルトの awk を切り替えます:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
再度確認します:
awk --version
正常になったら、Codex を再インストールします:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
7. npm command not found の処理
次のコマンドを実行した場合:
npm install -g @openai/codex
次のエラーが表示される場合:
bash: npm: command not found
現在の AutoDL 環境に Node.js/npm がインストールされていないことを意味します。
conda を使用してインストールできます:
conda install -c conda-forge nodejs -y
確認します:
node -v
npm -v
次に、npm にプロキシを設定します:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
その後、Codex をインストールします:
npm install -g @openai/codex
公式インストールスクリプトがすでに成功している場合は、npm 方式は必要ありません。
8. codex command not found の処理
インストールが成功した後、次のコマンドを実行した場合:
codex --version
次のエラーが表示される場合:
bash: codex: command not found
通常、現在の端末の PATH が更新されていないことが原因です。
まず以下を実行します:
export PATH=/root/.local/bin:$PATH
次に確認します:
which codex
codex --version
フルパスを使用することもできます:
/root/.local/bin/codex --version
今後、端末を開くたびに codex を使用できるようにするには、.bashrc に書き込みます:
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
再度確認します:
codex --version
通常、次のように表示されます:
codex-cli 0.141.0
9. Codex にログインする
AutoDL は通常、ブラウザのない環境であるため、デバイスコードを使用してログインします:
codex login --device-auth
Codex は端末にログインリンクと使い捨てコードを表示します。
ローカルマシンのブラウザでリンクを開き、ChatGPT にログインし、端末に表示されたコードを入力します。
ログインが成功すると、AutoDL に次のように表示されます:
Successfully logged in
ログイン状態を確認できます:
codex login status
10. AutoDL のプロジェクトディレクトリで Codex を起動する
プロジェクトディレクトリに移動します:
cd /autodl-tmp/あなたのプロジェクトディレクトリ
例:
cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition
Codex を起動します:
codex
その後、Codex にリモートコードを直接分析・修正させることができます。
推奨する最初のプロンプト:
まずこのプロジェクトのコード構造を読んでください。データセット全体は読み込まないでください。トレーニングフローと現在の潜在的な問題を分析してください。まだファイルは修正せず、修正案を提示してください。
コードの修正を依頼する場合:
先ほどの分析に基づいてコードを修正してください。必要なファイルのみを修正し、データセット全体は読み込まないでください。データ、重み、ログファイルは削除しないでください。修正後、どのファイルを変更したか、およびテスト方法を教えてください。
11. 大規模データプロジェクトの安全な使用ルール
AutoDL プロジェクトには通常、大規模データ、モデル重み、ログ、実験結果が含まれます。Codex を使用する前に、新しい AGENTS.md を作成することをお勧めします:
nano AGENTS.md
次の内容を書き込みます:
# プロジェクト説明
これは AutoDL サーバー上で動作する機械学習プロジェクトです。
## 重要なルール
- データセット全体を読み込まないでください。
- ユーザーが明示的に要求しない限り、data、dataset、checkpoints、outputs、logs などの大容量ファイルディレクトリを開かないでください。
- データ形式を確認する必要がある場合は、最初の 5 行のみを読み取るか、ユーザーにサンプルを要求してください。
- コードを修正する前に、どのファイルを修正する予定かを説明してください。
- データファイル、モデル重み、ログ、実験結果を削除しないでください。
- ユーザーが明示的に要求しない限り、完全なトレーニングを直接実行しないでください。
- 軽量テスト、構文チェック、または小規模サンプルテストを優先的に実行してください。
その後、以下を実行します:
codex
12. 推奨される完全なコマンド順序
ローカルマシン:リバースプロキシを開く
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
このウィンドウは閉じないでください。
AutoDL サーバー:プロキシを設定する
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
AutoDL サーバー:ネットワークをテストする
curl -I https://chatgpt.com
curl -I https://api.openai.com
AutoDL サーバー:awk を修復する
apt-get update
apt-get install -y gawk
AutoDL サーバー:Codex をインストールする
curl -fsSL https://chatgpt.com/codex/install.sh | sh
AutoDL サーバー:PATH を更新する
export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
AutoDL サーバー:バージョンを確認する
codex --version
AutoDL サーバー:ログインする
codex login --device-auth
AutoDL サーバー:プロジェクトに移動して起動する
cd /autodl-tmp/あなたのプロジェクトディレクトリ
codex
13. よくある問題のクイックリファレンス
問題 1:curl: (28) Failed to connect to chatgpt.com
原因:AutoDL が ChatGPT に直接アクセスできません。
解決策:ローカルマシンで SSH リバースプロキシを開き、AutoDL でプロキシ環境変数を設定します。
問題 2:SSH パスワードを入力しても貼り付けられない
原因:SSH パスワード入力時には何も表示されません。
解決策:貼り付けたらそのまま Enter キーを押します。Permission denied が表示された場合のみ、パスワードが間違っています。
問題 3:HTTP/1.1 200 Connection established の後に HTTP/2 403 が表示される
原因:プロキシトンネルは通っていますが、ターゲットサイトが現在のリクエストを拒否しています。
解決策:引き続きインストールスクリプトまたは api.openai.com をテストします。必ずしもプロキシの失敗ではありません。
問題 4:npm: command not found
原因:AutoDL に Node.js/npm がインストールされていません。
解決策:
conda install -c conda-forge nodejs -y
問題 5:Could not find SHA-256 digest
原因:システムのデフォルト awk が GNU awk ではなく、インストールスクリプトが SHA チェックサムファイルの解析に失敗しました。
解決策:
apt-get install -y gawk
必要に応じて:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
問題 6:bash: codex: command not found
原因:Codex のインストールは成功しましたが、現在のシェルの PATH が更新されていません。
解決策:
export PATH=/root/.local/bin:$PATH
source ~/.bashrc
または:
/root/.local/bin/codex --version
問題 7:Codex ログイン時にブラウザが開けない
原因:AutoDL はリモートでブラウザのない環境です。
解決策:
codex login --device-auth
ローカルブラウザでデバイスコードログインを完了します。
14. 使用上の原則
AutoDL で Codex を使用する際は、以下の原則に従う必要があります:
- 先にプロキシを開き、その後 Codex を使用する
- ローカルの SSH リバースプロキシウィンドウを閉じない
- 大規模データのルートディレクトリで Codex を起動しない
- プロジェクトコードのディレクトリで Codex を起動することを推奨
AGENTS.mdを使用して Codex が大規模データを読み取らないように制限する- コードを修正する前に、Codex にまず案を提示させる
- 修正後は
git diffで確認する - Codex にデータ、重み、実験結果を直接削除させない
- 完全なトレーニングの前に、まず Codex に小規模サンプルテストを実行させる
- AutoDL 端末を開き直すたびに、プロキシ変数と PATH がまだ存在することを確認する