Temporalの履歴リプレイを捨て、継続をチェックポイントする新しい耐久実行モデル

Durable execution without history replay

Temporalの履歴リプレイを捨て、継続をチェックポイントする新しい耐久実行モデル

耐久実行システムは通常、失敗後に履歴をリプレイして現在位置を再構築する。しかし長時間動くAIエージェントでは、蓄積された履歴が回復経路の負担になる。筆者は、コンパイラとランタイムがライブ継続を直接チェックポイントするTCC(Transparent Continuation Checkpointing)を提案。予備評価では、ライブ状態を約4KBに固定しつつ境界深度を10から1,000へ増やしたとき、TCCの回復は約0.6〜0.9ミリ秒でほぼ一定だったのに対し、Temporalのリプレイ再構築は約61ミリ秒から1.7秒に増加した。ただしこれは特定条件下での回復スケーリングの違いを示すもので、一般的な高速化を主張するものではない。

履歴リプレイは現在位置を再構築する。TCCはコミットされた継続をロードして実行状態を復元し、再開する。
  1. mfateev

    面白い事実:AWS Simple Workflowでの最初のDurable ExecutionのPOCはスナップショットを使っていた。ワークフローは完全に非同期のJavaアプリケーションとして実装され、スナップショットはリフレクションを使ってオブジェクトグラフ全体をダンプしたものだった。状態遷移のたびにスナップショットを生成する必要があったため、パフォーマンスは最悪だった。

    そこで私たちはリプレイに切り替えた。リプレイの最大の利点は、複雑なランタイムなしで、任意の言語でライブラリとしてDurable Executionを実装できることだ。また、ワークフローが実行中でもコード変更をサポートする(Temporalではこれをパッチングと呼ぶ)。任意のコード状態のスナップショットをコード変更に対して後方互換にするのは現実的ではない。

    個人的には、長期的にはDurable Executionはスナップショットと決定性の両方をサポートするランタイムを使うようになると思う。そうすれば、スナップショットは頻繁に取る必要がなく、リプレイでワークフローコードを最新状態に持っていける。データベースがWALから復旧するのと似ている。これを実現する最も有望な技術はWASMだ。

  2. weitendorf

    良いモデルだ。実際にモデルをトレーニングしたり、エージェントシステムを設計したりすることに興味がある人は、これをやるべきだ。

    私の会社はこの問題に取り組むことから始まった。なぜなら、これがプログラミングモデルをトレーニングしたり、LLMを特定のタスクに確実にデプロイしたりするための基盤だからだ。これのおかげで、LLMについてずっと良いメンタルモデルを築けた。なぜなら、LLMが「チャット」の外では、一貫したペルソナや一貫した知識・能力を持っているように感じられる場とは裏腹に、実際にはどれほど奇妙に気まぐれで、一貫性がなく、選り好みが激しいかを目の当たりにしたからだ。

    当初は、特定のタスクを完了する能力に関するプロンプトの探索だと考えていたが、今では速度・信頼性、そして運用面(例えば、パフォーマンスを落とさずにモデルを切り替えられるか?)のメリットの方が、ほとんどのユーザーにとってはさらに大きいと思う。

    ちょっとした「秘密」を共有すると、ラボがこうした方法でモデルを使うことさえ難しくしているので、もっと広く理解されることが重要だ:分布を考慮したリプレイ/再サンプリングは、LLMのポストトレーニングにおける重要なテクニックだ。しかし、それはまた、タスクの一部のサブセットに対して最適なモデルを自動的に特定できるようにするものでもあり、多くのコストを節約できる。

  3. orbital-decay

    Durable executionは全体的にちょっとしたバズワードのように見える。もし状態が実行グラフ内で定義されているなら、それは既存のアルゴリズムやパターンのグループを指す包括的な用語にすぎない。もし定義されていないなら、何に復帰しているというのか?クラッシュ直前のスナップショットはおそらく再び未定義状態につながり、その場合、クラッシュを永続的に自動化していることになる(あるいはもっと悪いことに、捕捉されない不正な動作を)。

  4. alex_hirner

    プログラムのスナップショットは、https://github.com/pydantic/monty が可能にし、目指しているものでもある。

    ちなみに、AI対応のインタプリタが増えていくと思う。ある意味、それが従来のマイクロサービスアーキテクチャに挑戦するのは面白いと思う。

  5. iand675

    私はほぼ同じメカニズムで耐久実行フレームワークを構築している。Temporalのようなシステムから削り落とそうとする、かなり論理的な粗削りな部分だ。

この日のほかの記事

2026-09-13