Novita AIでMINDcraftを使う: 包括的ガイド

Novita AIでMINDcraftを使う: 包括的ガイド

MINDcraft は、大規模言語モデル(LLM)を統合してMinecraftのボットを制御する画期的なオープンソースプロジェクトであり、ゲーム内でのインタラクションと創造性に新たな次元をもたらします。Mineflayerライブラリを活用し、ボットが複雑なタスクを高レベルコードの生成によって実行できるようにします。このプロジェクトは、ゲームにおけるAIの可能性を示すだけでなく、仮想環境での言語モデルの限界を押し広げます。Novita AI は、プロジェクトが推奨するAPIプロバイダーの1つです。

MINDcraftのプロジェクト概要

MINDcraftは、LLMを統合してMinecraftのボットをガイドし、さまざまなタスクを実行させるNode.jsアプリケーションです。メインボットのAndyは、プレイヤーとコミュニケーションを取り、資源の収集や建造物の建設などの目標を自律的に設定できます。この機能により、Andyは人間の介入なしにゲームを独立してプレイし、継続的に適応して新しい目標を設定できます。プロジェクトのアーキテクチャにより、Andyは効率的にコマンドを実行し、ゲーム環境と有意義な方法で対話できます。

https://www.youtube.com/embed/IeXadWbvDiE

主な機能

  • 言語モデルの統合: MINDcraftはLLMを使用して、Minecraft内でボットの行動を指示するコードを生成します。この統合により、Andyは自然言語の指示を解釈し、実行可能なゲームコマンドに変換することで、複雑なタスクを効率的に実行できます。
  • 自律的なゲームプレイ: Andyは独立して目標を設定し、ゲーム世界をナビゲートできるため、プレイヤーの直接入力なしでタスクを実行する能力が向上します。この自律性により、Andyは新しい戦略を探求し、環境からのフィードバックに基づいて行動を適応させることができます。
  • パラメータ化コマンド: このプロジェクトはToolformerと同様のコマンドを採用しており、Andyが資源収集などのタスクをより確実に実行できるようにします。これらのパラメータ化コマンドは、特定の要件に基づいてカスタマイズ可能な事前定義アクションを提供することで、タスク実行を簡素化します。

MINDcraftの開発と実装

開発

着想と初期作業

MINDcraftの開発は、Voyagerに関する注目すべき論文が発表された後に始まりました。この論文では、Minecraftボットを作成するためのMineflayerライブラリが紹介されました。従来のAI研究が画像入力と低レベルの出力を使用していたのに対し、MineflayerはAIシステムが高レベルコードを使用してMinecraftと対話することを可能にし、強化学習を必要とせずにナビゲーションや資源獲得などのタスクを簡素化します。

LLMを活用した指示追従

最新のLLMはコード生成と指示追従に優れており、人間の指示に基づいてMineflayerコードを生成するようにLLMを条件付けることが容易で、Andyの作成に至りました。Andyが一般的なスキルを実行する際の信頼性を高めるために、パラメータ化コマンドが実装されました。例えば、Andyは複雑なコードを生成する代わりに !collectBlocks("oak_log", 1) を出力できます。

改善と今後の方向性

時間とともに、Andyのコマンドセットは拡張され、攻撃的なモブを回避するなどの自動行動が追加されました。最近では、Andyは自然言語の目標(例:「家を建てるための材料を集める」)を設定することで、Minecraftを独立してプレイできるようになりました。今後の計画には、コードの再利用、経験の振り返り、空間認識の改善、視覚入力、マルチエージェントインタラクションが含まれます。

実装

MINDcraftの実装

Agentクラスとメインロジックループ

MINDcraftのメインクラスはAgentクラスで、Andyがログインしていないときにインスタンス化されます。メインロジックループは handleMessage 内で実行され、プレイヤーがAndyにメッセージを送信したときに動作します:

handleMessage(message):
    history.add(message)
    while true:
        hist = history.getHistory()
        response = prompter.promptConvo(hist)
        if containsCommand(response):
            cleanChat(response)
            history.add(response)
            result = executeCommand(this, response)
            history.add(result)
        else:
            cleanChat(response)
            history.add(response)
            break

レスポンスとコマンドの処理

Andyは単一の会話応答を返すか、クエリまたはアクションコマンドを反復的に呼び出すことができます。クエリはワールド状態情報(例:!inventory!nearbyBlocks )を提供し、アクションはゲーム内の動作(例:!followPlayer(name)!collectBlocks(block) )を引き起こします。すべてのアクションは Coder クラスの execute メソッドを使用して実行されます。

カスタムコード生成

建築のような複雑な動作の場合、Andyは newAction コマンドを出力してコーディングモードに入ることで、カスタムコードを作成できます。Coder クラスの generateCode メソッドを使用して、AndyはMineflayerと便利な関数のライブラリにアクセスできるカスタムJavaScriptコードを記述します。このメソッドには、複数回のデバッグ試行のループが含まれています。

コンテキスト内例の役割

コンテキスト内の例は、Andyの応答の品質に不可欠です。埋め込みモデルが現在の履歴に類似した例を見つけ、それらをLLMコンテキストに追加することで、Andyがコマンドを正しく使用し、タスクを完了する前に情報を照会することを保証します。

MINDcraftの実行方法

必要条件

  • Minecraft Java Edition(v1.21.1まで対応、推奨 v1.20.4)
  • Node.js がインストールされていること(少なくとも v14)
  • 以下のいずれか:OpenAI APIキー、Gemini APIキー、Anthropic APIキー、Replicate APIキー、Hugging Face APIキー、Groq APIキー、Ollamaがインストールされていること、Qwen APIキー、Novita AI APIキー

インストールと実行

上記の条件を満たしていることを確認してください。

  1. このリポジトリをクローンまたはダウンロードします(大きな緑色のボタン)
  2. keys.example.jsonkeys.json にリネームし、APIキーを入力します(1つだけで十分です)。使用するモデルは andy.json または他のプロファイルで設定します。他のモデルについては以下の表を参照してください。
  3. ターミナル/コマンドプロンプトで、インストールしたディレクトリから npm install を実行します
  4. Minecraftワールドを起動し、ローカルホストのポート55916でLANに公開します
  5. インストールしたディレクトリから node main.js を実行します

カスタマイズ

プロジェクトの詳細は settings.js で設定できます。ファイルを参照してください。エージェントの名前、モデル、プロンプトは、andy.json のようなプロファイルで設定できます。

API 設定変数 モデル名例
Novita AI NOVITA_API_KEY gryphe/mythomax-l2-13b

Novita AI APIキーの取得方法

ステップ 1: novita.ai にアクセスしてログイン

Novita AI でGoogleまたはGitHubアカウントを使ってログインできます。初回ログイン時に新しいアカウントが作成されます。または、メールアドレスを使用して登録することもできます。

ステップ 2: Novita AI LLM APIキーの管理

Novita AIは、リクエストヘッダーにAPIキーを含めることでBearer認証によるAPIアクセスを保護しています。例:「Authorization: Bearer {API Key}」。キーを管理するには、設定の「Key Management」に移動してください。初回ログイン時にデフォルトのキーが自動生成されます。「+ Add New Key」をクリックして追加のキーを作成できます。

novita key management page

ステップ 3: クレジットのチャージ

Novita AIは新規ユーザーに製品を試すためのバウチャー(一部クレジット)を提供しています。さらにクレジットを追加するには、Billing and Payments にアクセスし、Payment Methods のガイドに従ってください。

便利なリンクとリソース

結論

MINDcraftは、ゲーム環境におけるAI研究の重要な一歩を表しています。LLMの力を活用することで、Minecraftにおける創造性とインタラクションの新たな可能性を開きます。プロジェクトが進化し続ける中で、コミュニティの参加とフィードバックは将来の開発を形作る上で重要な役割を果たすでしょう。このプロジェクトのオープンソース性は、AIとゲームの交差点を探求することに興味がある開発者や研究者の間でのコラボレーションを促進します。

Originally published at Novita AI

Novita AI は、開発者がシンプルなAPIを使用してAIモデルを簡単にデプロイできるAIクラウドプラットフォームであり、手頃で信頼性の高いGPUクラウドを提供して拡張を支援します。