今週学んだ5つのこと
私はAIディレクトリサイトの運営と、YouTubeオートメーションのパイプラインを運用しています。今週、いくつかの摩擦(問題点)に直面しました。それらの調整から得られた5つの教訓を紹介します。
1. CIコストを管理する
Blueskyへの投稿スクリプトが、GitHub Actionsの実行時間を浪費していました。投稿のたびに、3つのサイト全体で大規模なビルドプロセスがトリガーされていました。単なるステータス更新のために、週に120分も費やしていたのです。
私は2つの変更を行いました:
- 1日3回のトリガーから、1日1回のトリガーに変更しました。
- テキストの編集がサイト全体の再ビルドをトリガーしないよう、パスフィルターを追加しました。
些細なタスクでオートメーションの割り当てを使い果たさないようにしましょう。プロジェクトが拡大する前に、こうした習慣を改善しておくべきです。
2. オートメーションに品質管理(QC)を追加する
キューの中に、ボットが書いたような投稿が17件見つかりました。「自動生成されました」といったフレーズが使われており、自分のパーソナルブランドにはそぐわないと感じました。
パイプラインにQCゲート(品質管理工程)を追加しました。このステップでは、投稿に対して以下のチェックを行います:
- リンク切れ
- 古くなったニュース
- ロボットのような、あるいはスパムのようなトーン
投稿がチェックに失敗した場合、手動レビューのためにキューに残ります。投稿頻度は下がりましたが、質は向上しました。
3. シンプルさは最適化に勝ることがある
AIモデルのルーティングを廃止してみました。以前は、簡単なタスクには安価なモデルを、難しいタスクには高価なモデルを割り当てていました。
ルーターを削除した結果、以下のことが分かりました:
- レイテンシは変わらなかった。
- コストは8%上昇した。
- コードが大幅にシンプルになった。
ルーティングエラーのデバッグを避けるためなら、8%のコスト増は許容範囲です。小規模な運用では、複雑さによるコストの方が、APIの節約分よりも大きくなります。
4. ライセンスに注意する
YouTubeツールにOpenverseを使用した画像スライドを追加しました。デフォルトの検索結果には、多くのCreative Commonsタイプが含まれています。
CC0やPDMライセンスでフィルタリングしないと、画面上でのクレジット表記が必要な画像を使用してしまう可能性があります。収益化しているチャンネルにとって、これは法的リスクになります。不注意な著作権トラブルを避けるため、APIリクエストの段階(アップストリーム)で常にフィルタリングを行うようにしましょう。
5. モニタリングツールは使いやすさに依存する
Netdata、SigNoz、OpenObserveをテストしました。
- Netdataは簡単で、すぐに使い始められます。
- SigNozは、OpenTelemetryを使用してコードにインストルメンテーションを行う必要があります。
- OpenObserveはログ管理には優れていますが、学習コストが高いです。
現在の私のセットアップでは、これらのツールはオーバースペックに感じられました。代わりに、シンプルなエラー通知の統合を選択しました。最も複雑なツールではなく、現在のインフラに最適なツールを選びましょう。
ソース: https://dev.to/morinaga/5-things-i-noticed-this-week-ci-cost-bluesky-qc-and-cc0-licensing-49ig
