LLM アプリごった煮
読んで良かった資料
LlamaIndex(旧GPT Index)
日本語のPDFをデータを使う場合
chain の種類に関して書いてある
試してみたいやつ
ドキュメント要約系のタスクに関して
ドキュメントの章を特定して分割して、章毎の要約をしなくいとあまり意味がない。
Sequential Chain
embedding はこのあたりが役立った
回答できるようにchunkを作る。
書きたい記事を書かせるには embeddingによる元文章の取得 + チェーン で積み上げる感じになると思っています。
MLやプロンプトエンジニアリング領域よりは、アプリ寄りの努力が必要だと思っています。
ex. 会社の強みをアピールする記事を書いてください。
- 会社の強みを教えてください -> embeddingによる強み文章の取得 + question に沿った整形
- 1 を具体的に説明してください。 -> チェーン + embeddingによる強み文章の取得 + question に沿った整形
- 1 によって、サクセスした事例を教えてください。 -> チェーン + embeddingによるサクセスした事例の文章の取得
- 1 ~ 3 を踏まえて、アピールする記事を書いてください。 -> チェーン + question に沿った整形
説明ジェネレーター
機能
- サービスの機能を書いた文章をアップロードしたら以下を生成する
- 機能によってどんなメリットがもたらされるか
- どんな人にぴったりなのか
- ユースケース
- 使ってみた体験談
- 生成した説明文から説明動画を生成する
監査機能の実装
-
API マネジメントと監査ログの両方の実装の必要がある
-
質問(LLM)の token 数
-
embedding 利用料金
参考:
オプトアウト
- 無印OpenAIのAPIを使って送った情報に関してはデフォルトで学習されない
MS の監視
- 「マイクロソフトが監視していないという証明」が出してもらえるのか -> ない
faiss で id 付与 (できたけれど、その先に問題がある。)
faiss から id 削除 (langchain) できるけれど、idがずれてしまうらしい。
既存のidがずれてしまったら、削除できないのでアプリで担保。
they support removal with remove. Note that this shrinks the index and changes the numbering.
https://github.com/facebookresearch/faiss/wiki/Faiss-indexes
chat 機能の実装
Function Calling
何となく使っているので理解したいやつ
function calling と stream
Agent実装
token数・推薦数
- 上から回答5つを使えば良い
loop する function call を止める
function calling の引数を nest する
指示に従わせる
蒸留
RecursiveRetriever
評価
Agent
ReAct実装
- https://note.com/npaka/n/n99153644e550
- https://logmi.jp/tech/articles/329010
- https://qiita.com/sakue_103/items/49d894f1edaa7e995b8c#応用編react
- https://qiita.com/kash203/items/91e1cd45f5b0ef41b3d0
- thought, action, action_input, observation, result から変にカスタムすると action してくれなくなった
- observation を action_result とかに変更したら...
- question に対しての result が安定した
- observation に嘘つかれることが多い
ReActとCoT-SCを状況に応じて切り替えることが最も望ましい
内部知識と外部知識を組み合わせる:
CoT-SCには内部知識によって誤りを犯してしまうため、ReActとCoT-SCの組み合わせを提案する。
ReActで所定のステップ以内に回答を返せなかった場合はReAct→CoT-SCに切り替えて、CoT-SCが所定の回数以下で過半数の回答にならなかった場合、CoT-SC→ReActに切り替える、といった方法で組み合わせる。
CoT-SCをpromptとして与えたLLMとReActをpromptとして与えたLLMを用意しておいて、上記の条件に応じて制御していたのではないでしょうか。
debate
同じLLM を使ったり、異なるLLMを使ったりする方法がある。
function calling の実行結果の型がPydanticModelであることににこだわる理由:
- json 化して結果をmessageの中に入れることができる
- テキスト化された状態からparseできる
- 関数1つでjson化できることを保証できる
プロンプト評価
RAG
プロンプト
Azure Seach AI の RAG
OpenAI ポリシー
OpenAI API | Azure OpenAI | Azure OpenAI 乱用モニタリング申請 | |
---|---|---|---|
モデルの改善に用いられる | いいえ ※1 | いいえ ※4 | いいえ ※4 |
監査用途に30日保持される | はい ※2 | はい ※5 | いいえ ※5 |
監査用途で確認される可能性 | あり得る ※2 | あり得る ※5 | ない ※5 |
安全性のためのフィルタリングが用いられる | ある ※3 | ある ※5 | ある ※5 |
※1
API_privacy_1.png
API_privacy_2.png
API_privacy_3.png
※2
API_privacy_4.png
※3
API_privacy_5.png
※4
AOAI_privacy_1.png
※5
AOAI_privacy_2.png
OpenAI ポリシー 公式以外の参考
vision のtoken
プロンプト組み立て
評価: