『目と手を持ったAI』の衝撃🤩『computer use』が示すのは人工知能の新たなステージ❓️

先日、ClaudeというLLMを開発しているAnthropic社からニュースリリースがありました。新しいLLMの公開と既存モデルのアップデートに加え、特筆すべきは「computer use」という新機能です。この機能は、LLMがPCを操作できるようになるというものです。現状はベータ版とのことですが、LLMが「会話するだけのアシスタント(?)」から「実際に行動できるアシスタント」へと変貌を遂げるのではないかと感じました。 今後は、RPA(ロボティック・プロセス・オートメーションヘルプデスク業務といった分野で大きな変革が予想されます。私たちはAIとの協業における新しいステージに立ち会っているのかもしれません。技術の進化を注意深く見守りながら、その可能性を探っていきたいと思います。

www.anthropic.com

ニュースリリースの内容の要約

  1. 既存のLLMであるClaude 3.5 Sonnetの性能アップグレード🌟
  2. 新モデルClaude 3.5 Haikuの登場🌟
  3. 新機能computer use(コンピューター操作)の追加🌟

💪Claude 3.5 Sonnetがパワーアップ!

コーディング能力が向上したとのこと。

記事では - コード関連のベンチマークテストで、他の有名なAIモデルを上回る成績を達成 - 複数のステップが必要なソフトウェア開発タスクが得意に - 料金や処理速度は据え置き

私見)使ってみないと差がわからないかもしれません。というか、リリース直後からWebでも新しいモデルが使用できていますので、普通に使ってみて違いを感じてくださいってことですかね。

🚀新モデルClaude 3.5 Haikuとは?

新しいLLMモデルであるHaikuは、速度重視。以前のClaude 3 Haikuと同じくらいの速さと料金で提供されているようです。

  • 高速な応答が必要なサービス向け
  • 大量のデータ(購入履歴や価格情報など)を扱う作業に適している
  • コーディング能力も予想以上に高い

💻新機能computer use(コンピューター操作)の追加🌟

新機能computer use。は簡単に言うと、Claude(LLM)が人間のように画面状態を確認しながら、マウスを動かし、クリックしたり、文字を入力することが可能です。

例えば - スプレッドシートのデータを確認 - ウェブブラウザを開いて情報を検索 - フォームに必要な情報を入力

現時点ではベータ版なので過度な期待はできませんが、かなり攻めた機能です。

ここまでで要約は終了(全然要約してないかも🙄)

computer useがめちゃ気になる

そんな中でも、computer useがひときわキニナル存在です。実際のところ、LLMのモデルのアップデートについては差異はそこまで明確はわかるものでもないのですが、少し異質なcomputer useに関してはかなり興味をそそられます。

以下にcomputer useのドキュメントがありました。

docs.anthropic.com

これに基づいて実験をしていこうと思いますが、ベータ版の機能なので自己責任の範疇で行いましょう。サイト内には以下のような注意書きがあります。

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.

リスク予防策としては以下のものがあるようです。

システムに対する直接的な攻撃や事故を防ぐため、最小限の権限しか持たない専用の仮想マシンやコンテナを使用する。

 情報窃盗を防ぐため、アカウントのログイン情報などの機密データへのアクセスをモデルに与えないようにする。悪意のあるコンテンツにさらされるのを防ぐため、インターネットへのアクセスを許可リストのドメインに制限する。

クッキーの受け入れ、金融取引の実行、利用規約への同意など、肯定的な同意を必要とするタスクだけでなく、実世界で意味のある結果をもたらす可能性のある決定についても、人間に確認を求める。

状況によっては、Claudeはユーザの指示と矛盾していてもコンテンツにあるコマンドに従います。例えば、ウェブページ上のClaudeの指示や画像に含まれるClaudeの指示は、Claudeの指示を上書きしたり、Claudeのミスを引き起こす可能性があります。プロンプトインジェクションに関連するリスクを回避するために、Claudeを機密データやアクションから隔離するための予防策を講じることをお勧めします。

この機能は悪用も可能なものなので、注意は必要以上に行う必要あると思います。

以下ではGitHubを見ながら作業をしていくことになります。

github.com

このリポジトリのドキュメントには、使用するにあたっての必要な機能を持つDockerコンテナの作り方を説明しています。また、computer useは以下の方法でのLLM(Claude 3.5 Sonnet)からのアクセスが可能です。これらの情報が必要になるので、持ってない方はご準備ください。

  • Anthropic API
  • Bedrock(AWS)
  • Vertex(Google)

動作の環境

  • LLMへのアクセス … Anthropic APIからLLMにアクセスします。API_KEYは事前に準備しておいてください(登録時に付与される無料のAPIクレジットではエラーがでたので、もしかしたら使用できないかもしれません)

  • OS … Ubuntu 24.04 LTS

  • Docker ... Docker version 27.3.1, build ce12230

余裕があればWindows11のWSL上でも動作させてみたいです。(環境変数のセット以外の違いはないように感じます)

【参考・Windowsで動作させる場合】

zenn.dev

PS1> set ANTHROPIC_API_KEY=your_api_key
PS1> docker run -e ANTHROPIC_API_KEY=%ANTHROPIC_API_KEY% -v %USERPROFILE%/.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

Dockerでイメージ構築・起動を行う

ターミナルで以下のように実行すればDockerのコンテナが起動します。イメージファイルをpullしていない場合でも実行時に取得してくれます。個人的にはこのあたりはshファイルにしておくと便利かなと思うのと、docker runコマンドで作成したイメージも一時的なので、--rmオプションで終了したら消す運用にしたほうが良いかもってところです。ベータ版ですのですぐに環境も変わるでしょうし。

$ export ANTHROPIC_API_KEY=%ここは事前に準備したapi_keyをいれてください%
$ docker run \
    -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
    -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

自分が使用しているshファイル … claude_computer_use.sh

#!/usr/bin/env bash

export ANTHROPIC_API_KEY=%ここは事前に準備したapi_keyをいれてください%

# --rmオプションを使用することで終了時にコンテナが削除されます(次回起動もこのシェルで可能)
docker run --rm\
    -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
    -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

以下のように起動が完了したら、表示されているURLへブラウザからアクセスします。

http://localhost:8080

ブラウザからURLにアクセスするとプロンプト入力とともにDockerコンテナでのテスト用OS(Linux)が起動します。

では、プロンプトを使って指示をだしてみましょう。

プロンプト例(1)

以下のようにプロンプトを入力して実行してみました。

"https://uepon.hatenadiary.com/entry/2024/10/22/010143"にアクセスしてアクセスして記事を400字程度に要約したものをスプレッドシートにペーストしてください。

1)プロンプトの入力(プロンプトエリアの【紙飛行機】アイコンをクリック)

無事、LLMがプロンプトの内容を認識してくれました。

以降の操作はcomputer useが自動的に動作を行います。

2)ブラウザ(Firefoxの起動)

3)URLを入力し、該当のページの表示

4)スプレッドシートを使うためにLibreOfficeを起動

初回起動なのでガイドのダイアログも表示されますが、それも認識して消してくれます。

5)リンク先の要約した内容をスプレッドシートにペーストして、ファイルの保存を行う

プロンプトで指示しないとGUIアプリは終了しないようです。

プロンプトの実行が完了すると以下のような表示が行われます。

ちゃんとファイルも保存されていました。以下のターミナルは手動操作で開いていますのでcomputer useの機能ではありません。

順次作業の様子がプロンプト側でも確認で切るようになっているので、どこで間違ったかなども確認出来ます。

プロンプト例(2)

続いては以下のようなプロンプトを試してみました。

FizzBuzzのPythonのコードを作成し、名前をfizzbuzz.pyという名前で保存してください。作業終了後はターミナル、エディタは終了させてください。

先程よりはアプリを使用しないものですが、ソースコードを考えてもらって、エディタを開いてファイルにセーブするというものです。

こちらはサクッと終了しました。というかGUI側からは全く実くエディタが開く様子はわからなかったです。実際にファイルはちゃんと出来ています。

おわりに

computer use機能の試用を通じて、AIの可能性が大きく広がったことを実感しました。単純なテキスト入力やブラウザ操作でさえ、人間のような自然な動きでコンピュータを操作する様子は近未来っぽくも感じます。

まだベータ版ですし、制限や課題もあります。また、セキュリティの観点からも制限された環境での動作に限るべきでしょう。また、複雑な操作になると人間がやったほうがいい場面はかなりあります。(今回の例はうまく行ったものを出しています)

とはいえ、この機能の可能性はかなり世界を変えてしまうかも。特に、反復的な業務の自動化やヘルプデスク業務など、具体的なユースケースが見えている分野では、大きな変革をもたらす可能性は十分にあると思います。

/* -----codeの行番号----- */