論文処理用のNerveパイプラインからQdrantへ

今日は、検索した論文の要約を生成してQdrantに投げ込む処理(上の図の緑色矢印の部分)を実装しました。「論文処理用のNerveパイプラインを開発する」という投稿の続きです。

実際の運用では、

① Discordの専用チャンネルで論文を検索

② ボットが検索したデータをGiteaにプッシュ(データソース)

③ Git Actionsが保存された論文データをイベントに変換してNerveに送信(Ingest行程)

④ Nerveは要約パイプラインにデータを送信(イベント配信行程)

⑤ 要約パイプラインがLLMを使って要約(Pipeline行程)

⑥ Qdrantに保存(最終処理)

が自動化されます。
概念的には、この流れ全体をパイプラインと呼んでいますが、プログラムコンポーネント的には⑤がパイプラインです。

①から⑤まで流れているデータは人間が読むもの、⑥はAIが読むもの。

人が介在するのは①だけ。

①、②の代わりに、人が論文データをGiteaにプッシュしても、③以降は自動的に流れる。

例えば、Giteaリポジトリに新エントリをプッシュすると・・・

Git Actionsが走って、Nerveにイベント送信し・・・

Nerveは届いたイベントを処理してから、要約イベントを自分自身に投入し・・・

要約パイプラインが選択されて、LLMを使って要約したデータをQdrantに登録する。

Qdrantに登録されたデータがこれ。

凄く面倒なことをやっているように見えるかもしれませんが、

  • パイプラインが分岐することもありえるから、イベントとパイプラインを1対多でマップできる
  • どの処理から始まっても、次が自動的に実行されるようにする
  • パイプラインを置き換えれば、ワークフローを変更できる
  • 分岐ロジックを書かずに、変更・拡張できる

などの理由でこうしています。

日々の生産活動や学習の背後で、こういう多種多様なパイプラインが静かに動くのがZIKUU v1.0というシステム(生態系)です。即時性を要求しない処理がほとんどなので、特別に速くて強いGPUが要らないし、大きな言語モデルも要らない。gpt-oss:20bで十分。

性能、規模、投資を競うゲームに、ZIKUUは乗らない。

コメントする