Slide 1

Slide 1 text

ChatGPT for Application Engineer “Prompt is all you needed” 畠山 大有 | Daiyu Hatakeyama Architect && Software Engineer && Applied Data Scientist (目指している) Microsoft Japan /dahatake @dahatake /in/dahatake /dahatake /dahatake /dahatake https://speakerdeck.com/dahatake

Slide 2

Slide 2 text

毎日 Prompt してますか?

Slide 3

Slide 3 text

Microsoft のAIの保護 お客様のデータは お客様のもの お客様のデータはAIモデルのファインチューニングには利用されません お客様のデータとAIモデルは全ての段階で保護されます 新たな Copilot Copyright Commitment

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Prompt を業務で使うためのコツ

Slide 6

Slide 6 text

文章生成系 分類系 ChatGPT で出来るコトの例 要約 小学生にも分かるように 300文字程度で要約して 感情分析 喜び/怒り/悲しみの感情を 0~5で表現して エンティティ分析 場所/人物名/組織名を 抽出して キーフレーズ抽出 次の文章の重要なフレーズ を抽出して インサイト抽出 次のレビューから商品の 改善点を考えて 校正 誤字/脱字/タイプミスを 見つけて 添削/評価 〇〇の基準で10点満点で 評価して 翻訳 次の文章をフォーマルな 日本語に翻訳して 問題作成 次の文章から4択問題を 作成して コード作成 OpenAIのAPIを実行する コードを書いて アイデア創出 人気の出るブログの 内容案を提案して 記述アシスタント このメールの日程調整をする メールを書いて 情報検索 WEBアプリの要件定義に ついて教えて 情報抽出系 文脈理解系 チェック系 翻訳系 従来からできるタスク 新しくできるタスク テキスト分類 次のニュース記事の カテゴリを教えて 思考の壁打ち 〇〇という考えで抜けている 点を指摘して

Slide 7

Slide 7 text

仕事で ChatGPT を使うためのポイント 変換 抽出 参照データ

Slide 8

Slide 8 text

その場 (In-Context) で学習の例 日本の内閣総理大臣は誰ですか? 申し訳ありませんが、私の知識は2021年9月までで更新されておらず、その後の具体的な人物や事象 については情報を提供できません。最新の情報を知るためには、信頼できるニュースソースやウェブサイト をご確認ください。 参照データ

Slide 9

Slide 9 text

その場 (In-Context) で学習の例 日本の内閣総理大臣は誰ですか? 以下の情報を基にして教えてください。 情報:### 内閣総理大臣(ないかくそうりだいじん、英: Prime Minister[1])は、日本の内閣の首長たる国務大 臣[2]。文民である国会議員が就任し、その地位及び権限は日本国憲法や内閣法などに規定されてい る[3]。 現任は、第101代岸田文雄(在任: 2021年〈令和3年〉11月10日 - )。歴代の内閣総理大臣は内 閣総理大臣の一覧を参照。 ### あなたが提供した情報に基づくと、日本の内閣総理大臣は岸田文雄です。彼は2021年11月10日か らその職にあります。ただし、これは私の最新の知識更新が2021年9月までであること、そしてあなたが 提供した情報が現在(2023年6月22日)までに更新されていない可能性があることに注意してくださ い。そのため、最新の情報を確認するためには信頼性の高いニュースソースや公式ウェブサイトをチェック することをお勧めします。 Instruction と context は ### や “”“ を使って分離 context instruction 参照データ

Slide 10

Slide 10 text

その場 (In-Context) で学習の例 日本の内閣総理大臣は誰ですか? 以下の情報を基にして教えてください。 情報:### 内閣総理大臣(ないかくそうりだいじん、英: Prime Minister[1])は、日本の内閣の首長たる国務大 臣[2]。文民である国会議員が就任し、その地位及び権限は日本国憲法や内閣法などに規定されてい る[3]。 現任は、第101代岸田文雄(在任: 2021年〈令和3年〉11月10日 - )。歴代の内閣総理大臣は内 閣総理大臣の一覧を参照。 ### あなたが提供した情報に基づくと、日本の内閣総理大臣は岸田文雄です。彼は2021年11月10日か らその職にあります。ただし、これは私の最新の知識更新が2021年9月までであること、そしてあなたが 提供した情報が現在(2023年6月22日)までに更新されていない可能性があることに注意してくださ い。そのため、最新の情報を確認するためには信頼性の高いニュースソースや公式ウェブサイトをチェック することをお勧めします。 context instruction どこかから、 データを取ってきて 埋めてくれればいい! 参照データ

Slide 11

Slide 11 text

その場 (In-Context) で学習の例 日本の内閣総理大臣は誰ですか? 以下の情報を基にして教えてください。 情報:### 内閣総理大臣(ないかくそうりだいじん、英: Prime Minister[1])は、日本の内閣の首長たる国務大 臣[2]。文民である国会議員が就任し、その地位及び権限は日本国憲法や内閣法などに規定されてい る[3]。 現任は、第101代岸田文雄(在任: 2021年〈令和3年〉11月10日 - )。歴代の内閣総理大臣は内 閣総理大臣の一覧を参照。 ### あなたが提供した情報に基づくと、日本の内閣総理大臣は岸田文雄です。彼は2021年11月10日か らその職にあります。ただし、これは私の最新の知識更新が2021年9月までであること、そしてあなたが 提供した情報が現在(2023年6月22日)までに更新されていない可能性があることに注意してくださ い。そのため、最新の情報を確認するためには信頼性の高いニュースソースや公式ウェブサイトをチェック することをお勧めします。 context instruction どこかから、 データを取ってきて 埋めてくれればいい! 参照データ RAG = Retrieval Augmented Generation

Slide 12

Slide 12 text

仕事で ChatGPT を使うためのポイント 変換 抽出 参照データ

Slide 13

Slide 13 text

丁寧な謝罪文章の添削 変換

Slide 14

Slide 14 text

英文の向上! 変換

Slide 15

Slide 15 text

あらゆる変換を試みてくれる 畠山さん。先日は飛行機の遅延があったとはいえ、 15分も会議に遅れてすいませんでした。今後は気を付けます カジュアルな日本語 畠山様 まず初めに、先日の会議に遅刻したことにつきまして、心より深 くお詫び申し上げます。私の不手際が原因で、貴重なお時間 を無駄にしてしまい、大変申し訳ございませんでした。 … ビジネスで通用する日本語 Dear Mr. Hatakeyama, I am writing to express my deepest apologies for arriving 15 minutes late to our meeting the other day. Despite the fact that my delay was due to an unforeseen and regrettable plane delay, I fully recognize that this is no excuse for disrupting our scheduled meeting time. ビジネスで通用する英語 Web画面 謝罪のメッセージ ... フォーマルに 英語で HTMLで 変換

Slide 16

Slide 16 text

仕事で ChatGPT を使うためのポイント 変換 抽出 参照データ

Slide 17

Slide 17 text

メールから案件情報を抽出 抽出

Slide 18

Slide 18 text

メールから案件情報を抽出 抽出 ご自身の会社・組織の アプリケーションの 入力画面の項目ともいえる

Slide 19

Slide 19 text

データ にしておけば、 ChatGPT 君で何とか出来る メール 会議 チャット 予定表 文書 音声 動画 コード ChatGPT Microsoft Copilot (Bing Chat) 調査+ファイル生成エンジン 議事録 議事録 変換 抽出 参照データ 要約 小学生にも分かるように 300文字程度で要約して 校正 誤字/脱字/タイプミスを 見つけて コード作成 OpenAIのAPIを実行する コードを書いて 翻訳 次の文章をフォーマルな 日本語に翻訳して 参照データ 参照データ 参照データ 参照データ

Slide 20

Slide 20 text

データ がどこにあるかで どのアプリが使えるかを考えればいい 音声 動画 コード Microsoft Copilot (Bing Chat) 調査+ファイル生成エンジン 議事録 議事録 追加データ 文書 メール 会議 チャット 予定表 Microsoft 365 変換 抽出 要約 小学生にも分かるように 300文字程度で要約して 校正 誤字/脱字/タイプミスを 見つけて コード作成 OpenAIのAPIを実行する コードを書いて 翻訳 次の文章をフォーマルな 日本語に翻訳して 参照データ 参照データ 参照データ 参照データ ChatGPT

Slide 21

Slide 21 text

アプリの違い OpenAI ChatGPT Microsoft Copilot (Bing Chat) Microsoft Copilot Enterprise (M365 Chat) Copilot for Microsoft 365 OpenAI ChatGPT API Azure OpenAI Service Application API Function Internet as Data Source Internet as Data Source Internet as Data Source Microsoft Graph Microsoft Graph Model GPT-4 GPT-4 GPT-4 GPT-4 GPT-4 GPT-4 無料版は3.5 Toubro のみ GPTs Your Data Your Data Plugins Plugins Web版 のみ Code Interpreter Code Interpreter Code Interpreter Function Calling Function Calling Responsible AI Code Interpreter 近日中 適用 適用 適用 適用 Function Calling + Code Interpreter (内部で) Office API 呼び出し 参照データ

Slide 22

Slide 22 text

自動化できているタスク 自動化が難しかったタスク 生成AIの業務利用では 新たに出来そうなコトも考える • 業務の全ての定義が困難なケースへの対応の可能性 • 生成結果の揺らぎに価値がある • 数値演算がとても苦手 • 業務の全ての定義が可能 • 定義通りに動作する • 数値演算処理 要約 小学生にも分かるように 300文字程度で要約して 校正 誤字/脱字/タイプミスを 見つけて コード作成 OpenAIのAPIを実行する コードを書いて 翻訳 次の文章をフォーマルな 日本語に翻訳して 参照データ 参照データ 参照データ 参照データ 業務の範囲 完全な自動化 人と協調する半自動化 生成AIを使わない方 がいい場合が多い

Slide 23

Slide 23 text

自動化が難しかったタスク | 議事録作成 業務の範囲 議事録に必要な項目 自動化できているタスク 生成AIの業務利用では 新たに出来そうなコトも考える 要約・抽出 誰がどんな発言 をしたのか、リス トアップしてくだ さい 会議 音声 録音 トランスクリ プト作成 トランスクリプト 精度:95%? 精度:85%? 要約・抽出 アクションアイテ ムをリストアップ してください 要約・抽出 xxxについて、ど んな議論がされ ていたか要約を してください 参照データ 発言記録 発話要旨 アクション アイテム xxx議論 要約 他… 人 力 補 正 人と協調する半自動化 ドラフト ドラフト ドラフト ドラフト ある程度の精度なら、要約用の参照 データとして十二分に機能します

Slide 24

Slide 24 text

後から プロジェクトやチームに 参加しても 自分の知りたい項目だけ 自分で確認が出来るように なった!

Slide 25

Slide 25 text

タスク 利用ツール Copilot -丸投げは出来ないけど マーケティング・フィールド支援 プレゼンテーション シナリオ作成 類似事例検索。リスト作成。文書作成 サーチ Bing Chat 人に相談 Yes! (Bing Chat も) アイディア整理 リスト作成 OneNote Yes! プレゼン資料作成 文書作成。図版作成。 Power Point Yes! プレゼン共有 OneDrive for Busines (SpeakerDeck / SlideShare) デモアプリ開発 デモシナリオ作成 文書作成。リスト作成 OneNote Yes! 人に相談 Yes! (Bing Chat も) デモアプリ開発 コーデイング Visual Studio Code Yes! 動作環境作成 Microsoft Azure 案件相談 コミュニケーション メール 文書作成。リスト作成 Outlook Yes! チャット | 雑談 文書作成 対面 文書作成 Teams Yes! 文書作成 Slack 文書作成 ソーシャルネットワーク ドキュメント アーキテクチャ図など 図版作成 PowerPoint Yes! 概算見積もり 表計算 データ分析。グラフ作成 Excel Yes! 打ち合わせ 対面 Web Meeting 議事録作成。タスク作成 Teams Yes! タスク管理 日程調整 スケジュール管理 リスト(候補日)作成。 Outlook Yes! タスク管理 タスク作成 Microsoft To-Do データ分析 データ理解・加工・分析 Power BI Yes! 経費精算 データ入力 Dynamics 365 Yes! 申請 出張申請 メール 文書作成 Outlook Yes! 自分のタスクの棚卸のススメ Priority-1: Core Priority-2: Operations

Slide 26

Slide 26 text

アプリ作成 ドキュメント作成 要件定義 Markdown 設計書 クラス図 Mermaid Live Editor ER図 Mermaid Live Editor シーケンス図 Mermaid Live Editor アプリケーション 画面 HTML コード JavaScript 展開 Azure BiCep 概算見積もり 明細 CSV 1度のPromptで タスクの全てが出来るとは限らないない Prompt のデザイン 他にもあると思います… ChatGPT?

Slide 27

Slide 27 text

Prompt のサンプル dahatake - Qiita dahatake/ChatGPT-Prompt-Sample-Japanese: ChatGPT の Prompt のサンプルです。 (github.com) https://github.com/dahatake/ChatGPT-Prompt-Sample-Japanese https://qiita.com/dahatake

Slide 28

Slide 28 text

Engineering への 適用

Slide 29

Slide 29 text

ドラフトを作ってくれる

Slide 30

Slide 30 text

とある Software Engineer の一日 9:00 – 9:15 メール・チャットなど返信。長いもの 9:15 – 9:30 Team Meeting 設計書などのドキュメント作成 9:30 – 10:30 コーディング・テスト 10:30 – 11:30 ランチ 11:30 – 13:30 Customer Meeting 13:00 – 14:00 コーディング・テスト 14:00 – 16:00 Blog Post もしくは 登壇用スライド作成 16:00 – 17:00 Communication Documentation Engineering SNS 探索

Slide 31

Slide 31 text

コーディングは ほんの一部

Slide 32

Slide 32 text

Prompt だけでどこまで出来るのか?

Slide 33

Slide 33 text

想定シナリオ 福島県郡山市の 観光者アプリ https://fukuprogram.connpass.com/

Slide 34

Slide 34 text

自分で調べてみた 企画

Slide 35

Slide 35 text

自分で調べてみた データ化 自分の OneDriveの中 企画

Slide 36

Slide 36 text

ユースケースの 洗い出し 企画

Slide 37

Slide 37 text

要件定義 : 機能要件 要件定義

Slide 38

Slide 38 text

要件定義 : 非機能要件 要件定義

Slide 39

Slide 39 text

アーキテクチャ図 設計

Slide 40

Slide 40 text

画像ファイルからの Azure サービス作成を試してみた 設計

Slide 41

Slide 41 text

画面遷移図 設計

Slide 42

Slide 42 text

実装計画 設計

Slide 43

Slide 43 text

データモデル 設計

Slide 44

Slide 44 text

サンプルデータ作成 実装

Slide 45

Slide 45 text

Azure SQL Database のテーブル作成 実装

Slide 46

Slide 46 text

Azure SQL Database にデータ登録 実装

Slide 47

Slide 47 text

Azure Cosmos DB の作成 実装 [残念!] Resource Group を Cosmos DB アカウントの作成前に、作成する必要あり

Slide 48

Slide 48 text

登録用の変数作成 実装

Slide 49

Slide 49 text

CLI スクリプトを変数を使ったものに 実装

Slide 50

Slide 50 text

Azure Cosmos DB にデータ登録 実装 [残念!] DB、Container作成までは出来ます。 CLIから、データ登録は出来ません

Slide 51

Slide 51 text

Azure Cosmos DB SQL API 実装 論理モデル (データモデル) さえあれば、 もはや実装用のコードは どれでもいい 勿論、最適化にはエンジニアリングが必須ですけど

Slide 52

Slide 52 text

Vue.js 作成 (1) 実装

Slide 53

Slide 53 text

Vue.js 作成 (2) 実装

Slide 54

Slide 54 text

Azure Functions で API 実装 実装

Slide 55

Slide 55 text

Vue.js と Azure Functions API 融合 実装

Slide 56

Slide 56 text

Azure Functions と Azure Cosmos DB 融合 実装

Slide 57

Slide 57 text

デプロイも (1) 実装

Slide 58

Slide 58 text

デプロイも (2) 実装

Slide 59

Slide 59 text

GTP-4 with Vision で システム構成図 から IaC 作成も GPT4-Vで構成図からIaCコードを生成させる #OpenAI - Qiita

Slide 60

Slide 60 text

レポーティング用のSQL文作成 実装

Slide 61

Slide 61 text

Microsoft Azure のサービス選定 実装

Slide 62

Slide 62 text

作成したファイルのダウンロード Code Interpreter は常に神 実装

Slide 63

Slide 63 text

案件の相談から ここまで 30分/1人で なんどもやり直せる短さ 殆どはPrompt 出力の待ち時間

Slide 64

Slide 64 text

肌感覚ですが。 95%以上の 図、スクリプト、コードは そのまま動きました

Slide 65

Slide 65 text

生産性と品質を上げるための 戦略

Slide 66

Slide 66 text

戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

Slide 67

Slide 67 text

でも、その残り 5%が動かなくて。 半日費やすこともある 100%にならない問題

Slide 68

Slide 68 text

テンプレート or 公式サンプルコード の活用は、常に正義 100%にならない問題 Visual Studio Code の Azure Functions Extensions で作成 ChatGPT で作成したコード 適時利用 要件(利用関数、データモデルなど)は 入っていない 要件あり (利用関数、データモデル など)

Slide 69

Slide 69 text

GitHub Copilot Chat もすげぇ! 実は殆どの Prompt が動く! Engineering からかけ離れると… 感動! VS Code内でのファイル作成! 100%にならない問題

Slide 70

Slide 70 text

戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

Slide 71

Slide 71 text

実際の入力#2のトークン: 128,000 LLMのトークン制限は Chat 前提 Token の Input - Output Azure OpenAI Service モデル - Azure OpenAI | Microsoft Learn 入力#1 出力#1: 4,096 入力#2 出力#2: 4,096 一度に大量の出力はできない トークン数が増えると、精度が落ちやすい。ノイズになる トークン数は増加傾向 対話の継続 = 入力トークン のデータ追加

Slide 72

Slide 72 text

戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

Slide 73

Slide 73 text

管理すべきは 論理モデル for ChatGPT 論理モデルと実装の 疎結合 論理データモデル RDBMS: Azure SQL Database Document: Azure Cosmos DB SQL API Optimize Optimize Technology Neutral

Slide 74

Slide 74 text

管理すべきは 論理モデル for ChatGPT 論理モデルと実装の 疎結合 論理データモデル RDBMS: Azure SQL Database Document: Azure Cosmos DB SQL API Technology Neutral 各サービス・テクノロジーへの 最適化こそ Engineer の 腕の見せ所! Optimize Optimize

Slide 75

Slide 75 text

戦略 既存開発環境との融合 Token の Input - Output 論理モデルと実装の疎結合 100%にならない問題

Slide 76

Slide 76 text

Project Manager | Architect Developer | Data Engineer UX Designer チームでの Prompt 実行と Output 共有例 Prompt Prompt Prompt メール・チャット・議事録など Prompt Prompt Prompt Prompt GitHub などに Project の ドキュメント 機能要件 Cosmos DB MySQL Mongo DB HTML Image Java C# 非機能要件 画面遷移図 アーキテクチャ図 メッセージ図 プロジェクト スケジュール データモデル Python JavaScript SQL Database IaC CSS Prompt Prompt Prompt Copilot for Microsoft 365 GitHub Copilot GitHub Copilot Prompt GitHub Copilot 既存開発環境との 融合 .docx, .pptx など .md など .ts, .js など .csharp, .java, .py, .sql など

Slide 77

Slide 77 text

Project Manager | Architect Developer | Data Engineer UX Designer チームでの Prompt 実行と Output 共有例 Prompt Prompt Prompt メール・チャット・議事録など Prompt Prompt Prompt Prompt GitHub などに Prompt Prompt Prompt Copilot for Microsoft 365 GitHub Copilot GitHub Copilot Prompt GitHub Copilot 既存開発環境との 融合 ほとんどが テキスト Project の ドキュメント 機能要件 Cosmos DB MySQL Mongo DB HTML Image Java C# 非機能要件 画面遷移図 アーキテクチャ図 メッセージ図 プロジェクト スケジュール データモデル Python JavaScript SQL Database IaC CSS

Slide 78

Slide 78 text

Mermaid Live Editor の Visual Studio Code プラグインがあって、良かったー ```mermaid graph TD subgraph Frontend mobileApp[スマートフォンアプリ] webApp[ウェブアプリケーション] end ```mermaid を付与するのをお忘れなく

Slide 79

Slide 79 text

既存コードから図的なものの作成 Azure OpenAI アシスタント コード インタープリターを使用する方法 - Azure OpenAI | Microsoft Learn GitHub Copilot Chat ChatGPT

Slide 80

Slide 80 text

Prompt 環境のチームで共有 – わかる Introducing ChatGPT Team (openai.com)

Slide 81

Slide 81 text

更なる自動化への ツールの登場も近いでしょう

Slide 82

Slide 82 text

さいごに

Slide 83

Slide 83 text

LLM は進化の途中 2024 2025 2026 2027 ? ? Parameter数の 増加? Parameter数が少なくても 能力が向上? Computing の進化 | 社会への貢献

Slide 84

Slide 84 text

Prompt Engineering は補助にすぎない! ### 指示 ### 次の文章の内容を変更せずに、 CEFRのC1レベルに添削してください。 添削した文章は英語で作成してください。 なぜ、その改善をしたのかの理由は 日本語で作成してください。 ステップバイステップで考えてください。 文章: ### I found the technical issue at our cloud services. The almost of behavior of issue looks like come from storage layer. I guess disk IO is near peak. How can I check this? ### 具体的に何をしてもらいたいのか? 何かをしてもらうための 追加のデータや情報 Prompt Engineering のテクニック: Delimiter Prompt Engineering のテクニック: Delimiter Prompt Engineering のテクニック: Chain of Thought Prompt Engineering のテクニック: Delimiter

Slide 85

Slide 85 text

“Prompt” 所詮は、 言葉

Slide 86

Slide 86 text

PCを使う→キーボードの練習 スマホを使う→フリック入力など の練習 ChatGPTを使う→Promptの練習 これが「今」

Slide 87

Slide 87 text

毎日 Prompt してね

Slide 88

Slide 88 text

ChatGPT のより深い理解 • ⿊橋教授(京都大学)- ChatGPT の仕組みと社 会へのインパクト / NII 教育機関 DX シンポ (2023) • https://www.nii.ac.jp/event/upload/20230303-04_Kurohashi.pdf • 話題爆発中のAI「ChatGPT」の仕組みにせまる! - Qiita • https://qiita.com/omiita/items/c355bc4c26eca2817324

Slide 89

Slide 89 text

© Copyright Microsoft Corporation. All rights reserved. Invent with purpose.