ちょうど Kaggle について調べたところ、1 週間で 30 時間の無料 GPU 計算能力が提供されているが、Jupyter Notebook を使用してサービスが提供されているため、私は Python 環境を使用するために Notebook を使うのにあまり慣れていない。単一ファイルのコードを使用してアイデアを迅速に実現するツールに適していると感じるが、階層が多いエンジニアリングコードにはコード分割感があるので、SSH で接続できるか試してみたい。
実行可能な方案#
ngrok を使用して Kaggle 内の SSH サーバーを公開する。以下は Notebook セルのコード。
# 1. ngrokをインストールして設定する
!pip install pyngrok
from pyngrok import ngrok
# ngrok認証トークンを設定する
ngrok.set_auth_token("your_auth_token")
# 2. SSHサービスを起動する
!DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-server
!mkdir -p /var/run/sshd
# SSHサービスを設定し、rootログインを許可し、パスワード認証を有効にする
!echo "root:your_password" | chpasswd
!echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
!echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
!service ssh start
# 3. ngrokを使用してSSHポートを公開する
ssh_tunnel = ngrok.connect(22, "tcp")
print("SSH Tunnel:", ssh_tunnel.public_url)
# 4. ローカルSSH接続コマンドを出力する
ssh_host, ssh_port = ssh_tunnel.public_url.replace("tcp://", "").split(":")
print(f"SSHで接続するには、次のコマンドを使用してください:\nssh root@{ssh_host} -p {ssh_port}")
制限
実行してみると、ngrok は TCP ポートを使用するためにクレジットカードまたはデビットカードをリンクする必要があるが、中国本土のカードは検証が通らないようだ。
HTTP プロキシサービスを使用して外に出る
Kaggle 上の HTTP サービスを公開する。
%cd ../../
%cd kaggle
%ls
%cp -r input/testfilebox /my
%cd /my
%cd fcb-fronted
!npm install
!npm run build
%cd ../
%pip install -r requirements.txt
# ngrok認証トークンを設定する
ngrok.set_auth_token("your token")
# 2. ngrokを使用してFastAPIサービスのHTTPポートを公開する
http_tunnel = ngrok.connect(12345, "http")
print("Public URL:", http_tunnel.public_url)
!python main.py
この記事は Mix Space によって xLog に同期更新されました。元のリンクは https://me.liuyaowen.cn/posts//fun/20240901and1