AIFlow は、ユーザーがストリーミング タスクとバッチ タスクを組み合わせたワークフローをプログラムで作成およびスケジュールできるようにする、イベント ベースのワークフロー オーケストレーション プラットフォームです。
ほとんどの既存のワークフロー オーケストレーション プラットフォーム (Apache AirFlow、KubeFlow など) は、上流のタスク実行のステータス変化に基づいてタスクの実行をスケジュールします。このアプローチは、終了が保証されているバッチ タスクにはうまく機能しますが、ステータスが変化せずに無限に実行される可能性があるストリーミング タスクにはうまく機能しません。 AIFlow は、ストリーミング タスクを含むワークフローのオーケストレーションを容易にするために提案されています。
たとえば、ユーザーは、Flink ストリーミング ジョブを継続的に実行してトレーニング データを収集し、Flink ジョブが過去 1 時間のすべてのアップストリーム データを処理するたびに機械学習トレーニング ジョブを開始したい場合があります。非イベントベースのワークフロー オーケストレーション プラットフォームを使用してこのワークフローをスケジュールするには、ユーザーは実時間に基づいてトレーニング ジョブを定期的にスケジュールする必要があります。トラフィックの急増やアップストリーム ジョブの失敗がある場合、Flink ジョブは TensorFlow ジョブの開始時までに予想される量のアップストリーム データを処理できていない可能性があります。上流のジョブは待機し続けるか、高速に失敗するか、部分的なデータを処理する必要がありますが、どれも理想的ではありません。比較すると、AIFlow は、イベントベースのウォーターマークが 1 時間ずつ増加するたびにイベントを発行する Flink ジョブ用の API を提供し、これにより、上記の問題に悩まされることなく、ユーザー指定のトレーニング ジョブの実行がトリガーされます。
AIFlow の詳細については、https://ai-flow.readthedocs.io をご覧ください。
イベント駆動型: AIFlow は、イベントに基づいてワークフローとジョブをスケジュールします。これはステータス主導のスケジューリングよりも効率的で、ストリーム ジョブを含むワークフローをスケジュールできます。
拡張可能: ユーザーは、独自のオペレーターとエグゼキューターを簡単に定義して、さまざまなタイプのタスクをさまざまなプラットフォームに送信できます。
1 回限り: AIFlow は、1 回限りのセマンティクスを備えたイベント処理メカニズムを提供します。これは、フェイルオーバーが発生した場合でも、タスクが欠落したり繰り返されることがないことを意味します。
B ステーションは、批流融合度における AIFlow+Flink の実践に基づいています
問題の報告、機能のドラフト、コード変更の貢献など、あらゆる方法での AIFlow への貢献を喜んで歓迎します。 GitHub の問題で問題を報告し、機能をリクエストできます。コードの変更に貢献したい場合は、貢献ドキュメントを確認してください。
詳細については、Google グループのAIFlow コミュニティ グループに参加して、 [email protected]までお問い合わせいただくことをお勧めします。
DingTalk のグループに参加することもできます。 DingTalk グループの番号は35876083
で、以下の QR コードをスキャンしてグループに参加することもできます。