米Metaは10月4日(現地時間)、テキストから高画質の動画と音声を生成する動画生成AIモデル「Movie Gen」を発表した。具体的なリリース時期、ライセンス、開発者向けの利用可能性については言及していないが、多数のサンプル動画を公開している。
Metaは、Movie Genは複数のタスクで業界の類似モデルを凌駕していると説明している。テキストから動画を生成するタスクでは、Runwayの「Gen-3」、Luma Labsの「Dream Machine」、OpenAIの「Sora」を上回るパフォーマンスを示すとしている。
クリス・コックスCPO(最高製品責任者)はThreadsのポストで、まだコストが掛かるし生成に時間が掛かりすぎるので、すぐに製品としてリリースする準備はできていないと語った。
Movie Genは、アーティストやアニメーターの仕事を奪うのではなく、クリエイターの創造性を高めるためのツールとして機能することを目指しているとMetaは説明する。「将来的には、誰もが自分の芸術的ビジョンを現実のものとする可能性がある」。
⇧ 生成に時間がかかり過ぎるのに、パフォーマンスは類似モデルを上回るって、パフォーマンスの解釈がよく分からんですな...
「CM(Commercial Message)」の動画制作とかで、「PoC(Proof of Concept)」が捗る感じになるんかね?
GitHub Appのベストプラクティスが回答になっていない気はするが...
公式のドキュメントによると、
⇧ とあるのだけど、リスクは残りますと。
「Azure Key Vault」などを利用してくださいとあるのだが、「Azure Key Vault」で管理されてる「秘密キー」を取得するための情報は、環境変数などに格納せざるを得ないので、漏洩する可能性を残したままですと。
例えば、オンプレミス環境から「Azure Key Vault」を利用せざるを得ない場合、シェルスクリプトでは、
■Azure Key Vaultで管理している情報を取得するための情報
export AZURE_CLIENT_ID="your_client_id" export AZURE_CLIENT_SECRET="your_client_secret" export AZURE_TENANT_ID="your_tenant_id"
■Azure Key Vaultで管理している情報を取得する
#!/bin/bash # プロキシの設定 export HTTP_PROXY="http://your_proxy:port" export HTTPS_PROXY="https://your_proxy:port" # 設定ファイルを読み込む source ./config # Azure Key Vaultの情報 KEY_VAULT_NAME="your_key_vault_name" SECRET_NAME="your_secret_name" # トークン取得関数 get_token() { TOKEN=$( curl -s \ -x "${HTTPS_PROXY}" \ -X POST \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials\ &client_id=${AZURE_CLIENT_ID}\ &client_secret=${AZURE_CLIENT_SECRET}\ &resource=https://vault.azure.net" \ https://login.microsoftonline.com/${AZURE_TENANT_ID}/oauth2/token) # トークン取得結果の確認 if echo "${TOKEN}" | grep -q '"access_token"'; then echo "${TOKEN}" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4 else echo "" fi } # 秘密鍵取得関数 get_secret() { local token=${1} SECRET_VALUE=$( curl -s \ -x "${HTTPS_PROXY}" \ -H "Authorization: Bearer ${token}" \ "https://${KEY_VAULT_NAME}.vault.azure.net/secrets/${SECRET_NAME}?api-version=7.2") # 秘密鍵取得結果の確認 if echo "${SECRET_VALUE}" | grep -q '"value"'; then echo "${SECRET_VALUE}" | grep -o '"value":"[^"]*' | cut -d'"' -f4 else echo "" fi } # リトライ設定 RETRIES=5 DELAY=3 for (( i=0; i<${RETRIES}; i++ )); do TOKEN=$(get_token) if [ -n "${TOKEN}" ]; then SECRET=$(get_secret "${TOKEN}") if [ -n "${SECRET}" ]; then echo "Secret Value: ${SECRET}" export SECRET # SECRETを環境変数としてエクスポート echo "Secret exported as environment variable." exit 0 else echo "Failed to retrieve the secret. Retrying..." fi else echo "Failed to obtain token. Retrying..." fi sleep ${DELAY} done echo "Exceeded maximum retries. Exiting." exit 1
■Azure Key Vaultで管理してる情報取得後の処理⇧
#!/bin/bash # fetch_secret.shを実行してSECRETを取得 source ./fetch_secret.sh # 環境変数SECRETを使用 if [ -n "${SECRET}" ]; then echo "Using Secret: ${SECRET}" # TODO: else echo "Secret is not set. Make sure to run fetch_secret.sh successfully." fi
⇧ といった感じになりそうなんだが(動作確認はしていないので)、「Azure Key Vault」で管理している情報を取得するための情報は、
- 環境変数
- ファイル
などを利用せざるを得ないと。
結局のところ、「GitHub App」のベストプラクティスで言っているのは、
- Azure環境内
- 非Azure環境内
- Azure以外のクラウドサービス
- オンプレミス環境
⇧「1. Azure環境内」での「Azure Key Vault」を利用した場合の話になるってことなんかな?
具体的に、どうするのが正解なのかをハッキリ示してくれれば、アンチパターンに陥るのを抑制できる気がするんだが...
試行錯誤させておいて、後出しじゃんけんで、駄目だしする感じはストレス溜まるだけなので、勘弁して欲しいですな...
毎度モヤモヤ感が半端ない…
今回はこのへんで。