プロンプトエンジニアリングのお勉強のため、OpenAIのドキュメントを読んで学んだことをメモ
プロンプトデザイン
大事なこと
-
Show and tell : 明確に。指示でも例でも。
- 目指すべき生成が明確か
-
provide quality data : 適切な例を与える。
- 十分な例があるか
- 例のミスはないか
-
check your settings : temperatureやtop_pの設定で決定論隔離を決める
- temperatureやtop_pの設定は適切か
嘘をつかないようにするためには
- プロンプトに正しい情報を与えてそこから答えさせるようにする
- わからなそうな回答には"わからない"と答えさせるようにpromptで指示する
ChatCompletionについて
- createCompletion() と ChatCompletionがある
- 基本ChatCompletionを使えばいい
-
gpt-4
はChatCompletionのみ対応 - gpt-3.5 も 安価な
gpt-3.5-turbo
はChatCompletionのみ対応
-
- roleがある
- system: asistantの挙動を決める
- asistant: userの問いかけに対して返答する
- user: 問いかけする人
- 出力JSON内のfinish_reason: 出力が終了した理由が記載される
- stop: シンプルに出力終了
- length: 出力トークンが上限に達したため. 再度リクエストする必要あり
- content_filter: 出力内容がフィルターに引っかかったため
- 使用したtokenは
response['usage']['total_tokens']
をみる
評価の話
- APIの出力を測定し、モデルを評価する軸を持つことが大事
- ただしLLMの評価は非常に難しい
- まずは手動で出力を確認してみることが一番シンプルな方法
リンク集
- プロンプトをより信頼性のあるものに改善するためのドキュメント
- OpenAIの例題集