Engineering11 min read ドキュメントをRAGに載せる経路は「分割→埋め込み→格納」の3手に見えますが、運用で効くのは2回目以降の再インデックスです。Marianはチャンク内容のFNV-1aデュアルハッシュをembeddingsテーブルに併置し、変更のないチャンクの再埋め込みをスキップします。チャンクサイズの実定数(1400字/256トークン)、ファイル種別ごとの分割戦略、planReindexによる差分計画の実装を解説します。
Engineering12 min read 埋め込み生成や音声転写のような長時間ジョブをWebリクエストの中で実行はできません。MarianはRedisもSQSも足さず、Postgresのテーブル1枚でジョブキューを実装しました。状態機械(queued→running→retrying→succeeded/dead)、30秒リースによるクラッシュ回復、部分ユニークインデックスによる冪等性、1s→5分capの指数バックオフまで、スキーマと実装をそのまま解説します。
Engineering11 min read 検索パイプラインに量子化やRAPTORのような変更を入れるとき、「壊れていないこと」をどう保証するか。LLM-as-a-judgeは遅く高くフレーキーで、CIゲートには不向きです。Marianはシード固定のシンセティックコーパス(24トピック×10チャンク、120クエリ)に対してrecall@k / MRR / nDCG / MAPを計算し、recall@10 >= 0.6を満たさなければCIを落とす決定的な評価ハーネスを実装しました。指標の実装からコーパス生成、ゲート設計までを解説します。