Serverless Operations, inc

>_cd /blog/id_us-ikmcki47y

title

AI時代の本格的な自動化の波を呼び起こす、新しいClaude 3.5 Sonnetの「Computer use」を試してみました

summary

本日、AWS News Blog にてとてもワクワクするニュースがアナウンスされました。Anthropic 社の Claude ファミリーの中でも最も使われている 3.5 Sonnet モデルの新しいバージョンがリリースされ、さらにその中での「Computer use」という機能が注目されています。この記事では、Anthropic 社から公開されている「Computer use」のデモを立ち上げて、どのようなものかを見ていきたいと思います。

本日、とても気になるニュースが発表されました。AWS News Blog(https://aws.amazon.com/blogs/aws/upgraded-claude-3-5-sonnet-from-anthropic-available-now-computer-use-public-beta-and-claude-3-5-haiku-coming-soon-in-amazon-bedrock/)で掲載されている Anthropic 社の新しい Claude 3 ファミリーのモデルが Bedrock で使えるようになっただけでなく、その新しい 3.5 Sonnet v2 で利用できる新機能の一つ「Computer use」がいま話題になっています。

Computer use とは?

今回、新しい機能として発表された「Computer use」は、いわば直接PCの操作を可能にする Tool とインタフェースを提供します。これによって、プロンプトを入力するとAIが自動的にブラウザを立ち上げて情報を収集したり、問題を解決するための操作をPC上で直接行ってくれるので、例えば Web 検索で言うとスクレイピングや E2E テストのスクリプトを書かなくても、大まかには意図した通りに動いてくれます。

まだ Public Beta とのことで正式バージョンではありませんが、以下のようにデモが公開されていますので、Docker 環境があれば比較的簡単に試すことができます。

公開デモでローカル環境を試す

こちらの GitHub リポジトリ(https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo)に、簡単なWeb UIを含め、AWS 認証情報をセットするだけで Bedrock と連携して実行可能なサンプルが公開されています。これをクローンして、Docker 環境で立ち上げることができます。

実際に立ち上げる前に、まずは Bedrock のコンソールから 3.5 Sonnet v2 モデルへのアクセスを有効にしておきます。

git clone して Computer use のディレクトリを開きます。

git clone git@github.com:anthropics/anthropic-quickstarts.git
cd anthropic-quickstarts/computer-use-demo

GitHub の README.md を見ると、Bedrock を利用するための AWS 認証情報を環境変数にセットして利用する方法(Option 2)が紹介されているので、今回はそれを利用します。

# AWS 認証情報のセットを忘れずに行ってください
export AWS_ACCESS_KEY_ID=%your_aws_access_key%
export AWS_SECRET_ACCESS_KEY=%your_aws_secret_access_key%
export AWS_SESSION_TOKEN=%your_aws_session_token%

# 実行
docker run \
    -e API_PROVIDER=bedrock \
    -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
    -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
    -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
    -e AWS_REGION=us-west-2 \
    -v $HOME/.anthropic:/home/computeruse/.anthropic \
    -p 5900:5900 \
    -p 8501:8501 \
    -p 6080:6080 \
    -p 8080:8080 \
    -it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest

しばらくすると、 http://localhost:8080 でアクセス可能になります。開いてみると、左右に streamlit と VNC で起動した Ubuntu の画面がそれぞれ iframe で表示されるようになっています。

ここからスタート?!と、少し戸惑ってしまいますが、あえて少し思考をゆるませて、「ブラウザを立ち上げて、AWSの最新ニュースを検索していくつかピックアップしてください」と、適当なプロンプトを打ってみます。

早速、まずは Firefox を立ち上げてくれます。まずは現時点でのスクリーンショットを撮って、そこからどのような操作を行うかを判断している様子です。

なんと、実際に Firefox が立ち上がり、アドレスバーにて検索を実行してくれます。

「AWS news 2024」と入力し、Google の検索結果から内容を見ている様子です。

検索結果から、AWS公式サイトへ移動しました。チャット履歴のスクショからは省略されていますが、「See all 2024 announcements」というボタンをクリックしていきます。

ついに結果が表示され、ニュースの一覧からおまかせでいくつかピックアップしてくれました。今までの動作がほんの十数秒でできてしまい、プロンプトを打ったあとは全く手をつけていないため、正直びっくりです。色々な可能性を感じつつ、まずはリスクのない場面で自動化タスクなど活用してみたくなりました。

注意事項

デモの README.md にも記載されているように、まだ Beta 版扱いのため、以下の内容を十分理解した上で試していただければと思います。

Caution

Computer use is a beta feature. Please be aware that computer use poses unique risks that are distinct from standard API features or chat interfaces. These risks are heightened when using computer use to interact with the internet. To minimize risks, consider taking precautions such as:

  1. Use a dedicated virtual machine or container with minimal privileges to prevent direct system attacks or accidents.
  2. Avoid giving the model access to sensitive data, such as account login information, to prevent information theft.
  3. Limit internet access to an allowlist of domains to reduce exposure to malicious content.
  4. Ask a human to confirm decisions that may result in meaningful real-world consequences as well as any tasks requiring affirmative consent, such as accepting cookies, executing financial transactions, or agreeing to terms of service.

In some circumstances, Claude will follow commands found in content even if it conflicts with the user's instructions. For example, instructions on webpages or contained in images may override user instructions or cause Claude to make mistakes. We suggest taking precautions to isolate Claude from sensitive data and actions to avoid risks related to prompt injection.

Finally, please inform end users of relevant risks and obtain their consent prior to enabling computer use in your own products.

(DeepL 翻訳)

コンピュータの使用はベータ機能です。コンピュータの使用には、標準的なAPI機能やチャット・インターフェースとは異なる独自のリスクがあることをご承知ください。これらのリスクは、コンピュータを使用してインターネットとやりとりする場合に高まります。リスクを最小限に抑えるために、以下のような予防策をご検討ください:

  1. システムに対する直接的な攻撃や事故を防ぐため、最小限の権限しか持たない専用の仮想マシンやコンテナを使用する。
  2. 情報窃盗を防ぐため、アカウントのログイン情報などの機密データへのアクセスをモデルに与えないようにする。
  3. 悪意のあるコンテンツにさらされるのを防ぐため、インターネットへのアクセスを許可リストのドメインに制限する。
  4. クッキーの受け入れ、金融取引の実行、利用規約への同意など、肯定的な同意を必要とするタスクだけでなく、実世界で意味のある結果をもたらす可能性のある決定についても、人間に確認を求める。

状況によっては、ユーザーの指示と矛盾する場合でも、クロードはコンテンツにあるコマンドに従います。例えば、ウェブページ上の指示や画像に含まれる指示は、ユーザの指示を上書きしたり、クロードに間違いを犯させたりする可能性があります。私たちは、プロンプトインジェクションに関連するリスクを避けるために、クロードを機密データやアクションから隔離するための予防措置を取ることを推奨します。

最後に、自社の製品でコンピュータの使用を可能にする前に、関連するリスクをエンドユーザに知らせ、同意を得るようにしてください。

デモの修正やカスタマイズ方法

内容を編集したり、色々実装しながら試してみたい場合、クローンしたデモのリポジトリから直接ローカルで docker build して利用できます。ただし ./setup.sh の実行には Rust 環境を構築する必要があり、Linux 場合は以下のコマンドでワンラインでインストール可能です。

curl https://sh.rustup.rs -sSf | sh
# ワンラインと言いつつ、インストール完了後のメッセージを参考にパスを通す必要はあります

あとは、適宜修正を行ったあと、ローカル環境で build を実行します。

# configure venv, install development dependencies, and install pre-commit hooks
./setup.sh 

# manually build the docker image (optional)
docker build . -t computer-use-demo:local

# AWS 認証情報の設定
export AWS_ACCESS_KEY_ID=%your_aws_access_key%
export AWS_SECRET_ACCESS_KEY=%your_aws_secret_access_key%
export AWS_SESSION_TOKEN=%your_aws_session_token%

# 実行
docker run \
    -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
    -v $(pwd)/computer_use_demo:/home/computeruse/computer_use_demo/ `# mount local python module for development` \
    -v $HOME/.anthropic:/home/computeruse/.anthropic \
    -p 5900:5900 \
    -p 8501:8501 \
    -p 6080:6080 \
    -p 8080:8080 \
    -it computer-use-demo:local

EC2 などから試す場合

ローカル環境から Docker を利用することができず、EC2 などリモート環境で実行して遠隔から接続する場合は、WebUI・Streamlit・VNC Client を立ち上げる際のホスト名を 0.0.0.0 としてバインドする必要があります。具体的には以下のように修正していきます。

WebUI の設定

computer-use-demo/image/static_content.html から iframe 属性を編集します。

<iframe
    src="http://{外部からのIPアドレスやホスト名}:8501"
    class="left"
    allow="fullscreen"
></iframe>
<iframe
    id="vnc"
    src="http://{外部からのIPアドレスやホスト名}:6080/vnc.html?&resize=scale&autoconnect=1&view_only=1&reconnect=1&reconnect_delay=2000"
    class="right"
    allow="fullscreen"
></iframe>

また、HTTP Server の実装を含む computer-use-demo/image/entrypoint.sh 以下の部分を修正します。

#!/bin/bash
set -e

./start_all.sh
./novnc_startup.sh

# 「--b 0.0.0.0」を追加
python http_server.py --b 0.0.0.0 > /tmp/server_logs.txt 2>&1 &

Streamlit の設定

computer-use-demo/config.toml に以下のようなファイルを用意します。

[server]
fileWatcherType = "auto"
runOnSave = true

[browser]
gatherUsageStats = false
serverAddress = "0.0.0.0" # << デフォルトの設定からここの1行を追加します

computer-use-demo/Dockerfile に、このファイルをコピーするようにコマンドを追加します。

FROM docker.io/ubuntu:22.04

# ...

COPY config.toml $HOME/.streamlit/config.toml

ENTRYPOINT [ "./entrypoint.sh" ]

VNC Client の設定

computer-use-demo/image/nonvc_startup.sh から、以下の部分を修正します。

# Start noVNC with explicit websocket settings
/opt/noVNC/utils/novnc_proxy \
    --vnc 0.0.0.0:5900 \
    --listen 6080 \
    --web /opt/noVNC \
    > /tmp/novnc.log 2>&1 &

いかがだったでしょうか。私個人的には、自動化に関する様々な場面で活用できる機能として、いろんな可能性が感じられたアップデートとなりました。今回のアップデートをきっかけに、生成AIを使った様々なソリューションについて議論できるチャンスにもなると思いますので、ぜひ一度試してみていただければと思います。

この記事に関する内容、または、生成AIの活用と開発についてサポートが必要な方は、是非お問い合わせください。

Written by
COO

金 仙優

Sonu Kim

  • Facebook->
  • X->
  • GitHub->

Share

Facebook->X->
Back
to list
<-