Metaのコーディングに最適化されたオープンウェイト(open-weight)モデルであるMuse Spark Openが、Amazon SageMaker AIの機械学習(ML)ハブであるAmazon SageMaker JumpStartで利用可能になりました。このモデルはコンテキストウィンドウが100万トークンであり、サービング用インフラを自分で管理することなく、数ステップで自身のAWSアカウント内のSageMaker AIエンドポイントにデプロイできます。

モデルの構成と入力形式の概要

Muse Spark Openは推論モデル(reasoning model)であり、テキスト、画像、ドキュメント、音声、音声付き動画を入力として受け付け、テキストを返します。Metaは、Muse Spark Openをエージェント型コーディング(agentic coding)ワークフロー向けに学習されたコーディング最適化モデルであると説明しています。このモデルは初回試行での正確さ、ツール呼び出し(tool calling)、および大規模コードベースの理解に重点を置いています。MetaのMuse Spark Openは、混合エキスパート(MoE)アーキテクチャを採用した推論モデルで、パラメータ数は合計8160億、アクティブなパラメータ数は420億です。コンテキスト長は100万トークンであり、SageMaker JumpStartにおけるバリアントには16ビット形式のBF16と、4ビット量子化形式のNVFP4があります。ライセンスはMuse Spark Usage Policyを含むMuse Model Licenseが適用されます。

元記事の表
属性Muse Spark Open
プロバイダーMeta
アーキテクチャMixture of experts (MoE), reasoning model
パラメータ数816B total, 42B active
コンテキスト長1M tokens
入力モダリティText, image, document, audio, audio-video
出力モダリティText
SageMaker JumpStartにおけるバリアントBF16 and NVFP4
ライセンスMuse Model License, including the Muse Spark Usage Policy

元記事の表を転載しています(見出しは日本語にしています。値は原文のままです)。出典: 元記事

Muse Spark Openは、複数ファイルにまたがるリファクタリングや長いデバッグセッションといった実際の開発者のワークフローで学習されています。100万トークンのコンテキストウィンドウに対応しており、依存関係、レガシーコード、数千のファイルを含むプロジェクト全体を取り込むことが可能です。コンテキストに収めるためにタスクを小さく分割する必要はありません。

Metaのコーディングに最適化されたオープンウェイトモデルであるMuse Spark Openは、mixture-of-experts(MoE)アーキテクチャを採用した推論モデルです。Metaは、Muse Spark Usage Policyを含むMuse Model Licenseの下で、Muse Spark Openのウェイト(weights)を公開しています。Muse Spark Openはmixture-of-experts(MoE)アーキテクチャを採用しており、総パラメータ数は8160億で、トークンごとに有効になるのは420億です。非常に大きなネットワークの容量を持ちつつ、トークンごとの計算量ははるかに小さい密(dense)モデルに近いものとなっています。

Metaによると、このモデルはコード以外にも、画像、ドキュメント、音声、動画をまたいで推論します。Amazon SageMaker JumpStartにおけるバリアントは、BF16とNVFP4があります。

エージェント機能と学習内容

Metaによると、Muse Spark Openは単発のツール呼び出しではなく、長い時間軸にわたって計画し、行動し、結果を観察し、自己修正します。Metaは最初からこのモデルをエージェント型モデルとして設計しました。Muse Spark Openは推論モデルであり、行動する前にタスクを考え抜きます。SageMaker AIエンドポイントは回答とともにその推論を返すため、エージェントが何をなぜ行っているかを追うことが可能です。

Metaは Muse Spark Open を、コード生成、デバッグ、複数ファイルにまたがるリファクタリング、および長時間実行されるタスクといった、開発者が実際のリポジトリで作業する方法に合わせて訓練しました。Muse Spark Open は、ウェブの閲覧、分割可能な作業のためのサブエージェントの調整、そしてデスクトップ・モバイル・ブラウザ環境にまたがるcomputer useができるように訓練されています。これらの機能はモデル自体の能力です。SageMaker AI上では、アプリケーションまたはエージェントフレームワークが、モデルが呼び出すツール、ブラウザ、およびcomputer useの環境を提供します。

Amazon SageMaker JumpStartでは、Metaのコーディング向けオープンウェイトモデルであるMuse Spark Openが利用可能です。提供されているのは、BF16版の`Muse-Spark-Open-816B-A42B`と、NVFP4量子化版の`Muse-Spark-Open-816B-A42B-NVFP4`という2つのバリアントです。SageMaker JumpStartでは、各バリアントをモデルIDで識別します。BF16版のモデルIDは「meta-vlm-muse-spark-open-816b-a42b」であり、NVFP4版のモデルIDは「meta-vlm-muse-spark-open-816b-a42b-nvfp4」です。

SageMaker AIにおいて、Muse Spark OpenのNVFP4版は`ml.p5e.48xlarge`で動作し、BF16版は`ml.p6-b300.48xlarge`で動作します。コストを見据えてサイズを決めるなら、NVFP4版を最初に試すべきです。ただし、品質がユースケースに合うかは、自身のワークロードで評価して確認する必要があります。

SageMaker AIでオープンウェイトを使うと、デプロイを自分で制御できます。エンドポイントは自分のAWSアカウントで動作し、ソースコードとプロンプトは自分が構成・制御するインフラ上で処理されます。さらに、自身のAmazon Virtual Private Cloud(Amazon VPC)に接続でき、ストレージボリュームをAWS Key Management Service(AWS KMS)のキーで暗号化でき、コンテナのネットワーク分離を有効にできます。また、インスタンスタイプとスケーリングの上限を自分で選び、モデルバージョンを固定するため、モデルは再デプロイしたときにだけ変わります。

Muse Spark Openはさまざまなアプリケーションに使えます。Metaがコーディングとエージェント型ワークフローに注力していることから、Muse Spark Openはプライベートリポジトリ上のコーディングアシスタント、長時間動くコーディングエージェント、およびマルチモーダルなエンジニアリングワークフローに向いています。ユースケースの一つは、プライベートリポジトリ上のコーディングアシスタントです。プロジェクト全体をコンテキストに入れて、大規模コードベースについての質問への回答、リファクタリング、デバッグを行い、コードは自分のアカウントのエンドポイントで処理されます。もう一つのユースケースは、長時間動くコーディングエージェントです。変更を計画し、複数ファイルにまたがって編集し、自前のサンドボックスでテストを実行し、その結果に基づいて軌道修正するエージェントを動かせます。マルチモーダルなエンジニアリングワークフローというユースケースの一つでは、スクリーンショット、設計ドキュメント、または音声と動画つきのバグ報告の録画を、再現計画やドラフト修正に変換できます。

SageMaker Studioでのデプロイ設定では、Endpoint nameに自動生成された名前を使用するか、独自の名前を入力します。Initial instance countには1を入力します。Instance typeは、NVFP4版なら`ml.p5e.48xlarge`を、BF16版なら`ml.p6-b300.48xlarge`を選択します。SageMaker Studioには、モデルがサポートするインスタンスタイプのみが表示されます。

デプロイ前の準備と必要な条件

Muse Spark OpenをAmazon SageMaker JumpStartでデプロイするための前提条件として、SageMaker AIのモデルとエンドポイントを作成する権限を持つAWSアカウントが必要です。また、SageMaker AI用のAWS Identity and Access Management (IAM) 実行ロールも必要です。このウォークスルーでは `AmazonSageMakerFullAccess` マネージドポリシーで足りますが、本番環境では、デプロイに必要なアクションとリソースにロールの範囲を絞ります。IAM実行ロールの詳細については、ドキュメント「How to use SageMaker AI execution roles」を参照してください。

Muse Spark Openは、SageMaker StudioとSageMaker Python SDKのどちらからでもデプロイでき、どちらの方法でも自身のAWSアカウント内にリアルタイムのSageMaker AIエンドポイントが作成されます。SDK経由でデプロイする場合は、Python 3.10以降とSageMaker Python SDK v3が必要であり、`pip install --upgrade sagemaker`によってインストールします。

デプロイの際には、エンドポイント用インスタンスタイプのサービスクォータが必要です。NVFP4版では`ml.p5e.48xlarge`、BF16版では`ml.p6-b300.48xlarge`の、エンドポイント利用向けのサービスクォータが必要です。クォータの引き上げについては「Requesting a quota increase」を参照してください。

SageMaker Studio経由でデプロイするには、SageMaker StudioにアクセスできるSageMaker AIドメインが必要です。SageMaker Studioでのデプロイは最初の評価に向いています。1つのモデル詳細カードから、モデルを見つけ、ライセンスを確認し、デプロイできます。

Muse Spark Openはスパースアクティベーションによりトークンあたりの計算量が低く抑えられますが、サービングには8160億の全パラメータを保持できるだけのGPUメモリが必要なため、インスタンス選択はメモリ容量で決まります。Muse Spark Openをホストするインスタンスはマルチ GPU インスタンスです。本番用のインスタンスを選ぶ前に、Muse Spark Openの両方のバリアントを、自分のリポジトリでベンチマークするよう、AWSは勧めています。

Muse Spark Openは、提供開始時点でUS East (N. Virginia)とUS East (Ohio)のSageMaker JumpStartで利用可能です。他のリージョンでの提供状況を確認するには、そのリージョンでSageMaker JumpStartを開いてください。

デプロイ手順とエンドポイントの利用

SageMaker Studio で Muse Spark Open のモデル詳細カードを開くには、1. SageMaker Studio を開き、2. ナビゲーションペインで JumpStart を選び、3. 検索ボックスに Muse Spark Open と入力し、4. BF16版なら Muse-Spark-Open-816B-A42B、NVFP4版なら Muse-Spark-Open-816B-A42B-NVFP4 を選ぶという 4 つの手順が必要です。開いたモデル詳細カードには、モデルの説明、ライセンス、Deploy オプションが表示されます。

SageMaker Studioでのデプロイでは、任意でAdvanced optionsからVPCとAWS KMSキーを選択するか、ネットワーク分離をオンにできます。最後にDeployを選びます。

SageMaker AI がインスタンスをプロビジョニングし、ウェイトをロードする間、デプロイには通常15〜20分かかります。エンドポイントのステータスが InService に変わると、リクエストを受け付けられる状態になります。

SageMaker JumpStartでMuse Spark Openを利用できるAWSリージョンが必要です。モデルをデプロイする前に、SageMaker JumpStartがモデルのデプロイ時に表示するMuse Model Licenseを確認してください。本番デプロイの計画に関する支援が必要な場合は、AWSに問い合わせてください。

Muse Spark Openはゲート付きモデルであるため、デプロイにはエンドユーザーライセンス契約(EULA)への同意が必要です。SageMaker Studioでは、モデル詳細カードでDeployを選択し、表示されるエンドユーザーライセンス契約を確認して同意します。SDK経由でモデルをデプロイする場合には、`accept_eula=True`を設定する必要があります。SageMaker Python SDK v3でNVFP4版をデプロイするコードはSageMaker Studioのノートブックで実行でき、その場合はドメインの実行ロールが使われます。AWS認証情報のある他のPython環境では、`role_arn`パラメータでSageMaker AIの実行ロールを渡します。特定のモデルバージョンに固定するには、`JumpStartConfig`に`model_version`を追加します。

Muse Spark Openは推論モデルであるため、`max_tokens`には推論と最終回答の両方に足りるだけの余裕を残す必要があります。エンドポイントが稼働中になったら、`invoke`メソッドでリクエストを送ります。このエンドポイントは、`messages`リストを持つOpenAI互換のチャットペイロードを受け付け、チャット補完を返します。レスポンスでは、最終的な回答が`message.content`に、モデルの推論が`message.reasoning_content`に入り、推論に使われたトークン数は`usage.reasoning_tokens`で報告されます。また、エンドポイントはストリーミングにも対応しています。生成されたトークンを順次受け取るには、リクエストボディに`"stream": true`を追加し、`invoke`の代わりに`endpoint.invoke_with_response_stream`を呼び出します。

エンドポイントは、リクエストを処理しているかどうかにかかわらず、稼働している間は料金が発生します。課金を止めるには、不要になったらエンドポイントを削除する必要があります。SDKでデプロイした場合は、モデル、エンドポイント、およびエンドポイント設定を削除してください。SageMaker Studioからデプロイした場合は、SageMaker AIコンソールでエンドポイントを削除します。料金については、Amazon SageMaker AI pricingを参照してください。手順は、Inference、Endpointsの順に選び、エンドポイントを選択して、Actions、Deleteを選びます。

始めるには、SageMaker StudioのSageMaker JumpStartでMuse Spark Openを検索します。Metaのコーディング最適化オープンウェイトモデルであるMuse Spark Openは、SageMaker StudioまたはSageMaker Python SDKを使って自身のAWSアカウント内のエンドポイントにデプロイでき、そのモデルに最初の推論リクエストを送ることができます。推論コンポーネント(inference components)や最適化されたデプロイ設定などの追加のデプロイオプションについては、Amazon SageMaker AI Developer Guideの「JumpStart foundation model usage」を参照してください。