Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Azure OpenAI Serviceのプロンプトエンジニアリング入門
Search
tomokusaba
April 18, 2024
Programming
3
1.9k
Azure OpenAI Serviceのプロンプトエンジニアリング入門
Azure OpenAI Serviceのプロンプトエンジニアリング入門
Global Azure 2024
https://jazug.connpass.com/event/311408/
tomokusaba
April 18, 2024
Tweet
Share
More Decks by tomokusaba
See All by tomokusaba
Cloud Adoption Framework(導入戦略)
tomokusaba
0
26
.NET開発者のためのAzureの概要
tomokusaba
0
240
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
440
Cloud Adoption Framework入門
tomokusaba
1
38
GitHub Copilot の概要
tomokusaba
1
180
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
540
Azure AI Foundry Agent Serviceを使用してコードファースト アプリを構築する
tomokusaba
1
330
Part1 GitHubってなんだろう?その1
tomokusaba
3
1k
Part1 GitHubってなんだろう?その2
tomokusaba
2
980
Other Decks in Programming
See All in Programming
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
230
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
0
220
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
110
Updates on MLS on Ruby (and maybe more)
sylph01
1
170
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
100
私の後悔をAWS DMSで解決した話
hiramax
4
180
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
260
Trem on Rails - Prompt Engineering com Ruby
elainenaomi
1
100
AIコーディングAgentとの向き合い方
eycjur
0
250
コンテキストエンジニアリング Cursor編
kinopeee
1
740
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
130
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
A Tale of Four Properties
chriscoyier
160
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
KATA
mclloyd
32
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
What's in a price? How to price your products and services
michaelherold
246
12k
Transcript
Azure OpenAI Serviceの プロンプトエンジニアリング入門 株式会社SAKURUG プロダクトDiv 草場 友光 Global Azure
2024
自己紹介 • 普段は主にシステムをAzureにモダナ イズする仕事をしています。 • コミュニティ活動を通じて知識をアッ プデートしています。 • 2022/08-2024 Microsoft
MVP (Developer Technologies) • tomo_kusaba
宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。
注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。
今日の目的 • 生成AIを使う上で出力を改善する第一歩はプロンプトを改善する ことです。 • 本日はプロンプトを改善してよりよい出力を得るための技法を学 んでいきたいと思います。 • Azure OpenAI
Serviceのプレイグラウンドが使用可能な方は 一緒にやってみるとより理解が深まると思います。 • (参考) https://github.com/microsoft/generative-ai- for-beginners/tree/main/translations/ja-jp
プロンプトエンジニアリングとは? • 目的に合わせた初期プロンプトを「設計する」 • 回答品質を上げるために、反復・試行錯誤して「改善する」 • プロンプトエンジニアリングは机上で練り上げるのではなく実際 にLLMに質問を投げかけて何回も試行錯誤して最良のものを得 ていくことが重要
プロンプトエンジニアリングの必要性 • モデルの回答は確率的な性質を持っています。 たとえ、同じプロンプトだとしても実行するたびに異なる結果を得る場合があります。プロン プトエンジニアリングの手法でこのばらつきを軽減するのに役立ちます。 • モデルは回答をねつ造することがあります。 モデルは有限のデータで事前トレーニングされています。その結果、架空あるいは事実と異 なる回答を出力することがあります。 •
モデルの能力は異なります。 新しいモデルや新世代のモデルはより高度な機能を持つことが知られています。例えば、 GPT-35-TurboよりGPT-4の方がより精度の高い回答を得られる可能性があります。
ねつ造について • Microsoftでは責任あるAIガイドラインの枠組みにおいて一般 的に「幻覚」とか「ハルシネーション」と表現される用語について 「ねつ造」という用語を強く推奨しています。 • 機械が生み出した回答に対して人間の特性を誤って当てはめる擬 人化を避けるためで、これによって不快におもう方への配慮です。
生成AIの出力結果を改善する方法 プロンプトエンジニアリング Retrieval Augmented Generation(RAG) 知識拡張 ファインチューニング モデルトレーニング 簡単かつ安い 難しいかつ高い
プロンプトエンジニアリング Retrieval Augmented Generation(RAG) 知識拡張 ファインチューニング モデルトレーニング 高品質
演習のためのリポジトリ • https://github.com/tomokusaba/GlobalAzure2024
生成AIの活用方法① ー 指示 • 文章の要約 • 文章の翻訳 • 非構造化データからの整形 •
JSONで出力など
生成AIの活用方法② ー 質問 • 会話形式でAIの持っている知識を尋ねる
生成AIの活用方法③ ー プログラムコー ド • プログラムに関する説明やコード生成、コードの説明を求めるな ど
LLMに向かない質問①-1 例)今年のセリーグの優勝チームを教えてください 学習データにないので通常のGPT- 35-Turboだとねつ造された回答 がされる。 実際には2021年の優勝チームはヤ クルトスワローズです。(残念) Bingによって最 新のデータをRAG で取り込まれた
Copilotなら正確 な回答がされる。
LLMに向かない質問①-2 • システムメッセージにアウトメッセージを設定する 質問文にだしたメッセージに対してうまく答えられない場合にた いして逃げ道を与える指示を出してあげる。
LLMに向かない質問② 例)98765の平方根を求めてください。 数値計算ならコードで書いた方がよい。
LLMに向かない質問③ • LLMはアクションを実行することができません。 アクションを実行したい場合、Semantic KernelのPluginなど を利用してください。
明確な構文を追加する • プロンプトに明確な構文を(句読点、見出し、セクションマーカー) をしようするとよい • 異なる情報ソースの区切りに「---」を使うことができる。 • 使用する構文が分からない場合マークダウンまたはXMLを使う とAzure OpenAI
Serviceはいい感じに解釈してくれる可能 性が高い。 • 学習に大量のWebコンテンツが使用されているため
基本的なプロンプトー情報抽出 次の文章から名前と所属と受賞歴を抽出してく ださい。 --- では簡単に自己紹介をしたいと思います。私は 草場友光と言います。主にシステムのモダナイの 業務をしておりこうした登壇活動によって知識の アップデートをしています。 所属は株式会社SAKURUGというところで渋谷 に本社があり、最近では和歌山の白浜や仙台、福
岡という場所にもオフィスがあります。 2022年8月にMicrosoft MVPを Developer Technologiesの分野で受賞し ました。今後もよろしくお願いします。
キューを含むプロンプト • キューとは期待する回答フォーマットの一部をプロンプトに含めて モデルを正しい方向に誘導します。 • モデルはそのキューを受け取ってその文章の流れに沿って続けま す。
フューショットプロンプト EC2:AWS Cloud Run:Google Cloud Autonomous Database:OCI App Service: フューショットプロンプトを用いない場合
余計な出力がされる
サポートコンテンツ • プロンプトの内容は以下のように分類できると考えられます。 • 指示:なにをするのか? • 主要コンテンツ:指示をする内容 • セカンダリコンテンツ:何らかの形で出力に影響を与える追加情報 •
分類の例 • 指示:次の文章から名前と所属と受賞歴を抽出してください。 • 主要コンテンツ:文章の内容(長いので割愛) • セカンダリ:JSON形式にしてください。
Chain of thought • LLMはタスクを小さなステップに分割し世界に関する知識と推論 能力を使用します。
Chain of thought
Temperature • 0から1までの範囲があり0が最も決定的で、1が最も多様性があ ります。 • Temperature=0
Temperature • Temperature=1
ベストプラクティス • プロンプトを具体的に書く! • プロンプトに例示を含める! • 生成AIと繰り返し対話する! • プロンプトの順序も重要! •
モデルにOUT指定をする!
参考文献 • generative ai for beginners https://github.com/microsoft/generative-ai-for- beginners/tree/main/translations/ja-jp • Azure
OpenAI ServiceではじめるChatGPT/LLMシステム 構築入門(ドーナツ本) (ISBN:978-4-297-13929-2)
おしまい おしまい