marimo-batch
スケジュール実行に備えてmarimoノートブックを整備するための、独自のポリシーに基づいたスキルです。定期実行に必要な設定や前処理を自動的に適用し、ノートブックをバッチ実行できる状態に整えます。
description の原文を見る
An opintionated skill to prepare a marimo notebook to make it ready for a scheduled run.
SKILL.md 本文
Pydantic は特に ML におけるバッチジョブの信頼できる情報源を宣言するのに優れた方法です。以下のように宣言することができます:
from pydantic import BaseModel, Field
class ModelParams(BaseModel):
sample_size: int = Field(
default=1024 * 4, description="Number of training samples per epoch."
)
learning_rate: float = Field(default=0.01, description="Learning rate for the optimizer.")
これらのモデルパラメータは 2 つの方法で設定できます。UI のフォームを想像してみてください。
el = mo.md("""
{sample_size}
{learning_rate}
""").batch(
sample_size=mo.ui.slider(1024, 1024 * 10, value=1024 * 4, step=1024, label="Sample size"),
learning_rate=mo.ui.slider(0.001, 0.1, value=0.01, step=0.001, label="Learning rate"),
).form()
el
また、marimo の CLI を使用することもできます。
if mo.app_meta().mode == "script":
if "help" in mo.cli_args() or len(cli_args) == 0:
print("Usage: uv run git_archaeology.py --repo <url> [--samples <n>]")
print()
for name, field in ModelParams.model_fields.items():
default = f" (default: {field.default})" if field.default is not None else " (required)"
print(f" --{name:12s} {field.description}{default}")
exit()
model_params = ModelParams(
**{k.replace("-", "_"): v for k, v in mo.cli_args().items()
})
else:
model_params = ModelParams(**el.value)
ユーザーは以下のようにコマンドラインからこれを実行できます:
uv run notebook.py --sample-size 4096 --learning-rate 0.005
これは両方の長所を兼ね備えています。UI を使ってテストと反復ができ、その後 CLI を使ってバッチジョブを実行できます。さらに、ノートブックに設定を適用して高速実行し、ノートブック内にバグがないかを確認することもできます。
ユーザーはこのパターンを使ってノートブックを実行したいので、CLI 経由で設定可能にしたいパラメータをユーザーに確認した上で、ノートブックに変更を加えるようにしてください。変更を加える前に、必ずユーザーと検証してください。
Weights and Biases
ユーザーが Weights and Biases のサポート追加に興味を持っている可能性があります。これが該当するかどうかを確認してください。該当する場合は、これらの ModelParams がログに記録されることを確認してください。また、ユーザーがこのルートを選択する場合は、wandb_project と wandb_run_name が ModelParams の一部であることを確認してください。
ユーザーが ML のトレーニングジョブを開始したい場合は、このスタートポイントを使用してください。このノートブックのカラムはそのまま保つようにしてください!
環境変数
ジョブのために環境変数を読む必要があるかもしれません。.env ファイルが存在する場合は python-dotenv を使って読み込みますが、ユーザーが UI からキーを手動で追加できるように EnvConfig を追加してください。
from wigglystuff import EnvConfig
# With validators
config = EnvConfig({
"OPENAI_API_KEY": lambda k: openai.Client(api_key=k).models.list(),
"WANDB_API_KEY": lambda k: wandb.login(key=k, verify=True)
})
# Block until valid, useful in cell that needs the key
config.require_valid()
# Access values
config["OPENAI_API_KEY"]
config.get("OPENAI_API_KEY", "some default")
この EnvConfig をノートブックの最初に追加するようにしてください。
カラム
より大きな marimo ノートブックではカラム機能を使ってナビゲーションを簡単にすることが一般的です。その場合、これらのカラムはそのまま保つ必要があります!
@app.cell(column=0, hide_code=True)
def _(mo):
mo.md(r"""demo""")
コンピュートプラットフォーム
ジョブが本格的なコンピュート能力を必要とする場合、ベストプラクティスを心がけることが重要です。データセットのバッチサイズを考慮し、ユーザーが問題の発生を検出できるように十分なログを用意してください。
グリッドサーチ
ユーザーがハイパーパラメータスイープを実行したい場合、このグリッドランチャーを指してください。これは references/starting-point.py のノートブックと連携して機能します。ノートブックの ModelParams フィールドに一致する検索空間からランダムな組み合わせをサンプリングし、それぞれを別々のジョブとして起動します。
デフォルトではスクリプトはドライラン (uv run grid.py) を実行するため、ユーザーはコンピュートを消費する前に組み合わせを検査できます。実際にジョブを送信するには --launch を渡してください。--count と --seed フラグは、サンプリングする組み合わせの数と RNG シードを制御します。
このリファレンスはコンピュートプロバイダーとして Hugging Face Jobs を使用していますが、これは 1 つのオプションに過ぎません。ユーザーは Modal、RunPod、または uv スクリプトを実行できる他のプロバイダーに置き換えることができます。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- marimo-team
- リポジトリ
- marimo-team/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/marimo-team/skills / ライセンス: Apache-2.0
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。