オンプレLLMでログ一次切り分け:Llama 3.3 70Bでやってみた(根拠引用を強制)¶
このページの狙い
LLMに「障害の原因を当てさせる」よりも、
(1) ログから根拠を抜き出す → (2) 可能性を整理 → (3) 次に打つコマンドを提案
までを“オンプレで”完結させる例です。
入力ログ(3行)¶
今回は、よくあるパターンの短いログ断片で試しました(抜粋)。
NVRM: Xid (PCI:0000:3b:00): 31, pid=1234, Ch 00000010, MMU Fault
CUDA error: out of memory
slurmstepd: error: Detected 1 oom_kill event(s) in step
AIの出力(実際のJSONから抜粋)¶
LLM(Llama 3.3 70B)に「JSONで返す」よう指示し、さらに根拠は入力ログからの引用のみに制約しました。
(出力の要点だけ読みやすく抜粋しています)
- カテゴリ:GPU / Memory / Slurm
- 重大度:High
根拠(ログからの引用)
L1: NVRM: Xid ... 31 ... MMU Fault
L2: CUDA error: out of memory
L3: slurmstepd: ... oom_kill event(s) ...
原因候補(確信度つき) - Insufficient GPU memory(confidence: 0.8) - Memory leak in the application(confidence: 0.1) - GPU driver issue(confidence: 0.1)
次にやること(コピペ可能なコマンド)
※安全性と再現性を重視して、環境依存・危険操作(サービス再起動等)は避けています。
nvidia-smi
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv
nvidia-smi -q -d ECC,ERROR,POWER,TEMPERATURE
dmesg -T | tail -n 200
journalctl -k -b | tail -n 200
sacct -j <JOBID> --format=JobID,State,ExitCode,Elapsed,MaxRSS,AllocTRES%60
scontrol show job <JOBID>
ps -p <PID> -o pid,etime,cmd --sort=pid
追加で欲しい情報(不足しているもの) - GPU model and driver version - System memory configuration - Application code and configuration - Slurm cluster configuration - Detailed system logs
なぜ信頼できる?(根拠引用を強制する工夫)¶
LLMは親切に補完してしまい、入力に無いログ行を混ぜることがあります。
そこで今回は、次の2つの工夫を入れて 「根拠はログ引用のみ」に寄せました。
- ログに行番号を付けて渡す(抜粋の追跡がしやすい)
- evidenceは入力ログからの完全一致引用のみにする(捏造を抑える)
「原因を断定するAI」ではなく、根拠を示して次の確認に進める一次切り分けとして現実的です。
PoC(オンプレ)相談¶
オンプレ環境(H100/H200 NVL等)で、ログを社外に出さずに
- ログのマスク(ホスト名/IP/パス等)
- 根拠引用を強制した構造化JSON
- あなたのRunbook/FAQを参照して「次のコマンド」を提示(RAG)
- 監査・保存ポリシーに合わせた設計
まで含めて短期PoCが可能です。