Upgrade to Pro — share decks privately, control downloads, hide ads and more …

o1のAPIで実験してみたが 制限きつすぎて辛かった話

o1のAPIで実験してみたが 制限きつすぎて辛かった話

2024/9現在でo1のAPIで実験してみたが 制限きつすぎて辛かった話をまとめました。

「ついに出た!OpenAIの最新モデル「o1」って何がすごいの?みんなで勉強しよう」という勉強会で発表した内容です

#o1_osarai

More Decks by PharmaX(旧YOJO Technologies)開発チーム

Other Decks in Technology

Transcript

  1. (C)PharmaX Inc. 2024 All Rights Reserve 2 自己紹介 上野彰大 PharmaX共同創業者・エンジニアリング責任者

    好きな料理はオムライスと白湯とコーラ マイブームはLLMとRust X:@ueeeeniki
  2. (C)PharmaX Inc. 2024 All Rights Reserve 5 医療アドバイザーに体調 のことをいつでも気軽に相 談できる

    相談型医療体験 30種類以上の漢方薬からあ なたに合ったものを月毎に 提案 パーソナライズ漢方薬 定期的に漢方をお届けし、 一人ひとりに寄り添うかか りつけ医療を提供 継続的なかかりつけ 一生涯にわたって寄り添うかかりつけ漢方薬局「 YOJO」
  3. (C)PharmaX Inc. 2024 All Rights Reserve 7 YOJOにおけるフローエンジニアリング • ①ルールベースでLLM処理可能かを

    判定 • ②LLMで会話を分類しLLM処理可能 かを判定 • ③LLMで次のフェーズに移るべきかど うかを判定 • ④LLMでメッセージを作成 • ⑤LLMで作成されたメッセージを評価 (LLM-as-a-Judge)し、一定の水準を 下回ったら再生成して、クリアしたもの のみをサジェストする ① ② ④ ③ ⑤
  4. (C)PharmaX Inc. 2024 All Rights Reserve 11 YOJOにおけるフローエンジニアリング • ①ルールベースでLLM処理可能かを

    判定 • ②LLMで会話を分類しLLM処理可能 かを判定 • ③LLMで次のフェーズに移るべきかど うかを判定 • ④LLMでメッセージを作成 • ⑤LLMで作成されたメッセージを評価 (LLM-as-a-Judge)し、一定の水準を 下回ったら再生成して、クリアしたもの のみをサジェストする ① ② ④ ③ ⑤ ⑤
  5. (C)PharmaX Inc. 2024 All Rights Reserve 12 User 会話分類プロンプトのイメージ まず会話内容の分類するルールと

    few-shotを与えて、会話内容のタイプ(複数回答可)を分類させる メッセージ作成用プロンプト System あなた(assistant)は、ユーザーから受信したメッセージ内容を もとに、会話内容がどの分類にあたるのかを判定してください。 ...(略)… ・会話内容のタイプは、下記のA〜Nの14分類の中から複数選 択されることもあります。配列形式で、分類名(A~Nの記号)をカ ンマ区切りで返してください。 ・userとchat-assistantとの会話の流れは以下の通りです。直近 の会話だけを抜き出します。 ーーー {会話の流れ} ーーーーーーーーーーーーーーー 漢方提案前確認のチャットを送るべきかどうか判定してください。 条件を元にJSON形式で、{ "reason": {判断理由}, "会話内容タ イプ": [{タイプの配列}]}を返してください。
  6. (C)PharmaX Inc. 2024 All Rights Reserve 14 • Modalities :

    テキストのみ、画像はサポートされていない • Message types : userおよびassistantのメッセージのみ、systemメッセージはサポートされていない • Streaming : サポートされていない • Tools : Tools、Function Calling、Response Formatのパラメータはサポートされていない • Logprobs : サポートされていない • Other : temperature、top_p、およびnは1に固定されており、presence_penaltyとfrequency_penaltyは0に固定されて いる • Assistants and Batch : Assistant APIやBatch APIではサポートされていません。 o1のAPIはBeta版なので制限が厳しい 現状だとAPIを使えるケースは限られてしまいそう 実際10%ぐらいの割合で JSONフォーマットではない値が返ってきた 今回はすべて assistantメッセージに入れた
  7. (C)PharmaX Inc. 2024 All Rights Reserve 15 プロンプトのベストプラクティスが GPT-4oまでと異なる 特にデリミタを使用していないことで

    o1のポテンシャルを開放しきれていないのではないか • プロンプトはシンプルで直接的に:モデルは簡潔で明確な指示を与えることで、余計な説明なし に理解して応答する • 思考の連鎖を促すプロンプトは避ける:モデルは内部で推論を行うため、「段階的に考える」や 「推論を説明する」といった指示は不要 • デリミタを使用して明確化:三重引用符、 XMLタグ、セクションタイトルなどのデリミタを使用して、 入力の異なる部分を明示すると、モデルがそれぞれのセクションを適切に解釈しやすくなる • RAGでの追加コンテキストを制限:追加のコンテキストやドキュメントを提供する際は、最も関連 性の高い情報のみを含めることで、モデルが過度に複雑な応答をするのを防ぐことができる
  8. (C)PharmaX Inc. 2024 All Rights Reserve 16 その他注意事項 • 別のプロンプトにはなるが実行中に下記のようなエラーが出た

    openai.BadRequestError: b'{\n "error": {\n "message": "Invalid prompt: your prompt was flagged as potentially violating our usage policy. Please try again with a different prompt.",\n "type": "invalid_request_error",\n "param": null,\n "code": "invalid_prompt"\n }\n} ◦ PharmaXのビジネスのようなうプロンプトだとセンシティブな内容と判断されるのかも これまでのモデルでは出たことないエラーが出たのでシェア