LLM+RAG_AWS

<LLM+RAGの利用方法>
1.学習データを S3 に置く(JSONL形式)
2.Bedrockでモデルカスタマイズジョブを作成
3.出来上がったカスタムモデルを Bedrock経由で呼び出し
---
<流れ>
[評価実行リクエスト]
↓
[Bedrock]
├─ Knowledge Base(RAG)
│ ├ 資料(作成/参照)
│ ├ メール内容
│ ├ 人事評価コメント
│
└─ Fine-tuned Model
├ 評価基準
├ 重み付けロジック
└ ランク定義
↓
[評価結果(理由付き)]
<実装の最小構成(AWS)>
入力:S3(PDF/テキスト/メールエクスポート)
変換:Lambda もしくは Step Functions
Chunk化:Bedrock InvokeModel(Claude/Nova等)
保存:S3(chunk jsonl) or OpenSearch
取り込み:Bedrock Knowledge Base
【Knowledge Base(RAG)設計】
投入するデータ種別
・資料系(設計書、手順書、方針資料など)
・メール/テキストコミュニケーション
・人事評価コメント
➡上記情報をChunk化する
※Chunk化のOutputはJSON
※指示はプロンプトで以下のような感じ
---
あなたは社内文書を評価用Chunkに変換する役です。
次のルールを守り、JSONのみで出力してください。
ルール:
- 1 chunk = 1行動 or 1判断
- 推測は禁止。本文に書かれた事実だけ
- chunkは100〜300文字程度
- それぞれに title, employee_id, date, type, skill_domain, impact, content を付与
入力:
<<<本文>>>
----
【Fine-tuned Modelに投入するJSONデータ】
--Level1--
{
"messages": [
{
"role": "user",
"content": "以下の情報を基に評価してください。\n\n【評価材料】\n- 資料内で◯◯という用語を使用しているが説明はない\n- メールでは作業完了報告が中心\n- 人事コメント:指示があれば対応可能"
},
{
"role": "assistant",
"content": "{ \"level\": \"level1\", \"reason\": \"用語の使用は確認できるが、判断理由や応用の記述がなく、指示ベースでの対応に留まっているため\", \"evidence\": [\"資料で用語使用のみ\", \"報告中心のメール\", \"人事コメント\"], \"missing_info\": [\"判断理由の記述\", \"自律的な改善提案\"], \"confidence\": \"中\" }"
}
]
}
--Level2--
{
"messages": [
{
"role": "user",
"content": "【評価材料】\n- 参照資料はあるが本人の関与度が不明\n- メール履歴が少ない\n- 人事コメントなし"
},
{
"role": "assistant",
"content": "{ \"level\": \"暫定:level2\", \"reason\": \"本人の判断やアウトプットを示す証拠が不足しているため\", \"evidence\": [\"関与度不明の資料\"], \"missing_info\": [\"本人が作成または判断した記録\", \"メールやレビュー履歴\"], \"confidence\": \"低\" }"
}
]
}
