Category

Engineering

3 articles

Engineering11 min read

インジェストパイプラインとcontent-hashキャッシュ — 再インデックスを差分だけにする

ドキュメントをRAGに載せる経路は「分割→埋め込み→格納」の3手に見えますが、運用で効くのは2回目以降の再インデックスです。Marianはチャンク内容のFNV-1aデュアルハッシュをembeddingsテーブルに併置し、変更のないチャンクの再埋め込みをスキップします。チャンクサイズの実定数(1400字/256トークン)、ファイル種別ごとの分割戦略、planReindexによる差分計画の実装を解説します。

Engineering12 min read

Postgresだけで作るジョブキュー — リース、冪等キー、指数バックオフの実装

埋め込み生成や音声転写のような長時間ジョブをWebリクエストの中で実行はできません。MarianはRedisもSQSも足さず、Postgresのテーブル1枚でジョブキューを実装しました。状態機械(queued→running→retrying→succeeded/dead)、30秒リースによるクラッシュ回復、部分ユニークインデックスによる冪等性、1s→5分capの指数バックオフまで、スキーマと実装をそのまま解説します。

Engineering11 min read

RAG評価をCIに入れる — 決定的シンセティックコーパスとrecall@kゲート

検索パイプラインに量子化やRAPTORのような変更を入れるとき、「壊れていないこと」をどう保証するか。LLM-as-a-judgeは遅く高くフレーキーで、CIゲートには不向きです。Marianはシード固定のシンセティックコーパス(24トピック×10チャンク、120クエリ)に対してrecall@k / MRR / nDCG / MAPを計算し、recall@10 >= 0.6を満たさなければCIを落とす決定的な評価ハーネスを実装しました。指標の実装からコーパス生成、ゲート設計までを解説します。