論文処理用のNerveパイプラインを開発する

先日は、下の図の青矢印の部分を実装しましたが、今日は緑矢印の部分を実装しました。

Discordで論文検索をすると、LLMを使って論文エントリに変換してから、Giteaにプッシュします。

- Title: "Lindstrom theorems for fragments of first-order logic"
  Id: arXiv-0905.3668
  Year: 2009
  Authors: ["Johan van Benthem", "Balder ten Cate", "Jouko Vaananen"]
  Source: http://arxiv.org/abs/0905.3668v2
  Tags: ["Lindström theorem", "first-order logic", "k-variable logic", "Tarski's relation algebra", "graded modal logic", "binary guarded fragment", "compactness", "Löwenheim‑Skolem", "bisimulation", "tree unraveling", "semantic preservation"]
  Summary:
    - "1階述語論理の部分言語に対するLindström定理を提示"
    - "k>2 の k-変数論理、Tarski の関係代数、グレード付きモーダル論理、2-元保護フラグメントを対象にした結果"
    - "2 つの証明手法:従来のLindström証明の改変と、双対性・木展開・有限深度を用いたモーダル手法"
    - "これらの結果は意味的保存定理を含意"
  Thought_Extract:
    - "既存のLindström手法がフラグメントに適用できない問題を解決"
    - "モーダル概念を用いることで、フラグメントの証明が簡潔化される可能性を示唆"
    - "研究は計算機科学における論理の表現力とモデル理論的性質の橋渡しを強化"
  ZIKUU_Interpretation: ""
  Quote: ""

Giteaは、新たな論文エントリがプッシュされると GitActionsを実行して、NerveにEntryイベントを送信します。ここまでが先日実装した機能。

Entryイベントを受信すると、今日実装したパイプラインが動作して、LLMを使ってCommentaryに変換し、NerveにCommentaryイベントとして送信します。これが、冒頭の図の緑矢印の部分。
下が、その送信されたイベントです。

{
  "version": "1.0",
  "source": "nerve.pipelines",
  "event_type": "knowledge.zrl.commentary",
  "sub_type": "derived_from_entry",
  "meta": {
    "event_id": "18bdc302-3287-4e27-8050-9a742dc44733",
    "trace_id": "t-zrl-04"
  },
  "source_event_id": "test-0001",
  "entry_paths": [
    "entries/arXiv-0905.3668.yaml"
  ],
  "commentary": [
    "Title: Lindstrom theorems for fragments of first-order logic",
    "Ref: arXiv-0905.3668 (2009)",
    "Thesis: 1階述語論理の部分言語に対してLindström定理を提示し、k-変数論理やTarski関係代数、グレード付きモーダル論理、2-元保護フラグメントを対象にする",
    "Points1: k>2 の k-変数論理・Tarskiの関係代数・グレード付きモーダル論理・2-元保護フラグメントを網羅",
    "Points2: 2つの証明手法を提示し、双対性・木展開・有限深度を利用したモーダル手法を含む",
    "Tags: Lindström theorem, first-order logic, k-variable logic, Tarski's relation algebra, graded modal logic, binary guarded fragment, compactness, Löwenheim–Skolem, bisimulation, tree unraveling, semantic preservation",
    "Link: http://arxiv.org/abs/0905.3668v2"
  ]
}

NerveにはイベントのDispatcherがあって、イベントに対応したパイプラインを見つけて、そのパイプラインにイベントを投げます。パイプラインの役割はデータ処理。処理が終わったら終了でもいいし、また別のイベントをNerveに送信してもいい。同じイベントに対して複数のパイプラインが並列で動く場合もあります。

次の実装では、赤矢印の前段部分、Commentaryイベントを処理するパイプラインを作り、データをQdrantベクターデータベースに保存できるようにします。

そこまで行けば、AI塾長の開発を少し進めて、ベクターデータベースを使ったRAG機能を実装することになり、すべての矢印が繋がります。

その後は、同じ手法で、情報源を増やして行くだけです。

これは、ユーザーの日常的な調べる・考えるという行為の結果で、意味空間を整えるシステムと言うことができます。ユーザーが使うのはDiscordだけ、あるいは簡単なWebアプリだけ。DiscordがSlackやNotionに置き換わっても仕組みは同じです。ややこしいことは、いい感じにシステムがやってくれる。

モノづくりの現場では、機械や道具をいつでも使えるように整備・整頓しておきますが、それと同じことを、意味空間でもやろうというわけです。AIが人間の変わりに思考や判断をするのではなく、人間が思考や判断をする場を整えます。

「論文処理用のNerveパイプラインを開発する」への1件のフィードバック

コメントする