lotus-data/lotus

Optimized Agentic and LLM Bulk Processing Over Your Data

LOTUS – 最適化されたエージェントおよびLLMバルク処理

概要 – LOTUSは、大規模なテキストデータセットに対して「セマンティック演算子」(LLM駆動の map、filter、reduce、join など)を実行できるPythonライブラリ(PyPIでは lotus-ai として公開)です。このライブラリには、呼び出しのバッチ処理、モデルのカスケード、パイプラインの遅延計画を行うオプティマイザーが組み込まれており、APIコストを抑えつつ高い精度を実現します。

主な概念

  • セマンティック演算子 – 「各論文からタイトルを抽出する」といった、やりたいことを記述する高レベルで宣言的なプリミティブであり、LLMに変換を任せることができます。
  • エージェント演算子 – 各シャード上でツールを使用するエージェント(サンドボックス化されたPython REPL付き)を実行する特殊なクラスで、コード実行や多段階の推論が必要な複雑または曖昧なタスクに役立ちます。
  • オプティマイザー – LLM呼び出しのバッチ処理、カスケード、スケジューリングを自動的に決定し、コストを削減して結果の品質を向上させます。

典型的なユースケース

  • コードベース分析やセキュリティスキャン(すべてのファイルでエージェントを実行し、バグレポートに集約する)。
  • 大規模な研究の統合(コーパスを検索し、要点を抽出し、要約を生成する)。
  • エージェントログからの障害モードのマイニング。
  • 非構造化ドキュメントからの構造化抽出。
  • モデル出力の行ごとのLLM-as-a-judge評価。
  • プライベートデータに対する検索拡張生成 (RAG)。

使用方法(READMEより)

import lotus
from lotus.models import LM
from lotus.tools import PythonREPLTool

lotus.settings.configure(lm=LM(model="gpt-5", reasoning_effort="low"))

snippets = [
    "def average(nums): return sum(nums) / (len(nums) - 1)",
    "def word_count(s): return len(s.split())",
    "def percent(part, whole): return part / whole",
    "def reverse(s): return s[::-1]",
]
corpus = lotus.Corpus.from_documents(snippets)

result = corpus.agent(
    task="Test each function on example inputs and report which ones are buggy, with a counterexample for each bug.",
    ops=["map", "reduce"],
    tools=[PythonREPLTool()],
)
print(result.output)

このコードスニペットは、Corpus の作成、タスクの記述、セマンティック演算子のリストとオプションのツールを指定した agent の呼び出しという3つのステップを示しています。

インストール

  • pip install lotus-ai (または uv add lotus-ai)。
  • 最新のコード: pip install git+https://github.com/lotus-data/lotus.git@main。

ドキュメントとコミュニティ

  • 完全なドキュメント: https://lotus-ai.readthedocs.io。
  • Colabデモ、Discordサーバー、examples/ 配下のサンプルスクリプトセット。
  • このプロジェクトはスタンフォード大学とカリフォルニア大学バークレー校の研究者によって支援されており、3つの査読済み論文(arXiv 2407.11418, VLDB 2025, IEEE Data Engineering 2026)で引用されています。

対象ユーザー データサイエンティスト、MLエンジニア、または研究チーム。API呼び出しごとにカスタムループを書くことなく、数千から数百万のテキストレコードに対してLLM推論を適用する必要がある場合に適しています。LOTUSはオーケストレーションを抽象化し、ジョブの「セマンティック」な記述に集中できるようにし、コストを意識した実行を内部で処理します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト