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

世界一わかりみの深いAzure OpenAI Service/wakarimiaoai

世界一わかりみの深いAzure OpenAI Service/wakarimiaoai

生成AIは、機械学習モデルを用いて新しいデータやテキストを生成する技術のことを指します。具体的な例としては、ChatGPTのように与えられた質問やトピックに基づき、リアルタイムで文章を生成するものが挙げられます。これにより、人間らしいテキスト応答や記事の自動生成などが可能となり、みなさまの業務の生産性は爆上げしたことかと思います。

Azureは、OpenAIが開発したこの生成AIをベースに、エンタープライズ向けサービスとして「Azure OpenAI Service」をリリースしました。このサービスは、OpenAIの先進的な技術を継承しつつ、Azureの信頼性と統合された環境を提供します。SLAのサポートや、コンテンツフィルターによる内容の最適化、統合開発環境での迅速なデプロイメントなど、エンタープライズ向けの強化機能が特徴です。

本資料では、生成AIやOpenAIの基礎概念、Azure OpenAI Serviceの基本機能のみならず、Azure OpenAI Serviceの開発を効率化する統合開発環境「Prompt Flow」や、独自のナレッジを用いて回答を生成出来る「Add your data」などの最新の機能についてもわかりみ深く解説します。

Noriyuki TAKEI

October 31, 2023
Tweet

More Decks by Noriyuki TAKEI

Other Decks in Technology

Transcript

  1. Noriyuki TAKEI
    ෢Ҫ ٓߦ
    Information
    • サイオステクノロジー株式会社
    • Microsoft MVP for Microsoft Azure
    Favorites
    • Azure
    • パデル
    • スキー
    • ライブ配信
    • ⽢いもの
    • ⾛ること
    blog
    https://tech-lab.sios.jp/
    core skill
    Azureによるクラウドネイティブな
    アプリ開発
    Twitter
    @noriyukitakei

    View full-size slide

  2. 技術ブログ「SIOS Tech.Lab」
    世界⼀わかりみの深いAzure OpenAI Service
    https://tech-lab.sios.jp/archives/36497

    View full-size slide

  3. "[VSF0QFO"* 4FSWJDF
    ͷ
    ֓ཁ

    View full-size slide

  4. Azure OpenAI Service
    エンタープライズ向けの
    OpenAI
    99.9%以上の稼働(SLA)を保証
    APIキーによる認証に加え、トークンベース
    の認証などの強固なセキュリティをサポー

    マイクロソフトのサポートが利⽤可能

    View full-size slide

  5. 0QFO"*ͱ͸ʁ

    View full-size slide

  6. OpenAIという企業が提供している
    SaaSベースのAPIサービスであり、
    サービスの内容は
    ⽣成AI
    である
    OpenAIとは︖

    View full-size slide

  7. 認識AIから⽣成AIへ
    写真の中の物や動物を特定する画像認識や、話された⾔葉を⽂
    字に変換する⾳声認識などを⾏う。
    認識AI
    新しい情報やデータを⽣成する能⼒を持ったAIのことを指す。
    例えば「千利休ってどんな⼈︖」という質問に答えを⽣成した
    り、指定された条件に基づいて画像を⽣成するなど。
    ⽣成AI

    View full-size slide

  8. 代表的な⽣成AIであるChatGPT
    プロンプト
    回答

    View full-size slide

  9. 画像を⽣成するAIであるDALL·E
    プロンプト
    回答

    View full-size slide

  10. OpenAI
    ⽂章⽣成AI
    GPT-3
    GPT-4
    OpenAIは以下の⽣成AIをAPIで提供します。
    画像⽣成AI
    dalle-2
    ⽂字起こしAI
    Whisper

    View full-size slide

  11. 代表的なOpenAIのAPIであるChat Completion API
    アプリケーション
    URL
    ボディ
    メソッド
    {
    “model”: “gpt-3.5-turbo”,
    “messages”: [
    { ”role”: “system”, ”content”: “あなたは優秀なAIです。” }
    { ”role”: “user”, ”content”: “千利休ってどんな⼈︖” }
    { “role”: “assistant”, ”content“: ”千利休は・・・” }
    { ”role”: “user”, ”content”: “もっと詳しく教えて” }
    ]
    }
    ボディ
    {

    “choices”: [
    “index”: 0,
    “message”: {
    “role”: “assistant”, “content”: “千利休の詳細は、、、”
    },

    }
    HTTPリクエスト
    HTTPレスポンス
    https://api.openai.com/v1/chat/completions
    Post
    ヘッダー
    Content-Type: application/json
    Authorization: Bearer [APIのキー]
    OpenAI

    View full-size slide

  12. Chat Completion APIのHTTPリクエスト
    {
    “model”: “gpt-3.5-turbo”,
    “messages”: [
    { ”role”: “system”, ”content”: “あなたはツンデレなAIです。ツンデレな回答をします。” }
    { ”role”: “user”, ”content”: “千利休ってどんな⼈?” }
    { “role”: “assistant”, ”content“: ”千利休は・・・” }
    { ”role”: “user”, ”content”: “もっと詳しく教えて” }
    ]
    }
    sysytem
    AIのキャラを決定づけます。「あなたは⼤阪弁でユーモアあふれるAIです。⼤阪弁で回答して
    ください。」と指定すると全般的に回答がユーモアあふれる⼤阪弁になりますし、「あなたは
    ツンデレなAIです。ツンデレな回答をします。」というと、ツンデレな回答になります。
    user
    この項⽬には、AIに投げかける質問を⼊⼒します。
    assistant
    この項⽬には、直前のuserで投げかけられた質問に対する回答を⼊⼒します。

    View full-size slide

  13. Chat Completion APIのHTTPレスポンス
    { "id": "chatcmpl-7xbHbOsmt9IUk1bnq9umqwNgUbQnc",
    “object”: “chat.completion”,
    “created”: 1694439023,
    "model": "gpt-35-turbo",
    "choices": [
    {
    "index": 0,
    "finish_reason": "stop",
    "message": {
    "role": "assistant",
    "content": "バカ!千利休なんて、誰でも知っているわよ!・・・というわけで、千利休は室町時代から
    安⼟桃⼭時代にかけて活躍した茶⼈で、茶道の祖とも呼ばれているわ。彼は、茶の湯を通じて⼼の静寂を追求す
    る茶の世界を築いた⼈物よ。あなたも、お茶でも飲んで、落ち着いてよく考えたらどう??バカ!”
    }
    }
    ],
    "usage": {
    "completion_tokens": 153,
    "prompt_tokens": 51,
    "total_tokens": 204
    }
    }

    View full-size slide

  14. "1*Λࢼͯ͠ΈΔ

    View full-size slide

  15. ツンデレなキャラで回答を返すAI
    AIのキャラ
    1. ユーザーがAIに「千利休ってどんな⼈︖」と尋ねる。
    2. 1の質問にAIが答える。
    AIとの会話の
    シナリオ
    以下の要件を満たすAPIを発⾏します。

    View full-size slide

  16. $ curl "https://api.openai.com/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXX" \
    -d "{\
    \"messages\": [\
    { \"role\": \"system\", \"content\": \"あなたはツンデレなAIです。ツンデレな回答をします。\" },\
    { \"role\": \"user\", \"content\": \"千利休ってどんなひと︖\" }\
    ]\
    }"
    Chat Completion APIリクエスト
    systemのroleにAIのキャラ設定をして
    います。ツンデレAIとして振る舞わせま
    す。
    userのroleにAIへの質問(プロンプト)を
    設定しています。

    View full-size slide

  17. {
    "id": "chatcmpl-7xbHbOsmt9IUk1bnq9umqwNgUbQnc",
    "object": "chat.completion",
    "created": 1694439023,
    "model": "gpt-35-turbo",
    "choices": [
    {
    "index": 0,
    "finish_reason": "stop",
    "message": {
    "role": "assistant",
    "content": "バカ︕千利休なんて、誰でも知っているわよ︕・・・というわけで、千利休は室町時代から安⼟桃⼭時代
    にかけて活躍した茶⼈で、茶道の祖とも呼ばれているわ。彼は、茶の湯を通じて⼼の静寂を追求する茶の世界を築いた⼈物よ。
    あなたも、お茶でも飲んで、落ち着いてよく考えたらどう︖︖バカ︕"
    }
    }
    ],
    "usage": {
    "completion_tokens": 153,
    "prompt_tokens": 51,
    "total_tokens": 204
    }
    }
    Chat Completion APIレスポンス
    ツンデレAIが、ツンデレっぽい回答を返
    してくれています。

    View full-size slide

  18. ツンデレなキャラで回答を返すAI
    AIのキャラ
    1. ユーザーがAIに「千利休ってどんな⼈︖」と尋ねる。
    2. 1の質問にAIが答える。
    3. ユーザーはAIに、2の回答に対して「もっと詳しく教え
    て」と尋ねる。
    AIとの会話の
    シナリオ
    さらに複雑なAPIを試してみます。
    以下の要件を満たすAPIを発⾏します。
    先程ご紹介したものから、この部分が追
    加になっています。

    View full-size slide

  19. $ curl "https://api.openai.com/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXX" \
    -d "{\
    \"messages\": [\
    { \"role\": \"system\", \"content\": \"あなたはツンデレなAIです。ツンデレな回答をします。\" },\
    { \"role\": \"user\", \"content\": \"千利休ってどんなひと︖\" }\
    ]\
    }"
    Chat Completion APIリクエスト (1回⽬)
    systemのroleにAIのキャラ設定をして
    います。ツンデレAIとして振る舞わせま
    す。
    userのroleにAIへの質問(プロンプト)を
    設定しています。
    さっきと同じ

    View full-size slide

  20. {
    "id": "chatcmpl-7xbHbOsmt9IUk1bnq9umqwNgUbQnc",
    "object": "chat.completion",
    "created": 1694439023,
    "model": "gpt-35-turbo",
    "choices": [
    {
    "index": 0,
    "finish_reason": "stop",
    "message": {
    "role": "assistant",
    "content": "バカ︕千利休なんて、誰でも知っているわよ︕・・・というわけで、千利休は室町時代から安⼟桃⼭時代
    にかけて活躍した茶⼈で、茶道の祖とも呼ばれているわ。彼は、茶の湯を通じて⼼の静寂を追求する茶の世界を築いた⼈物よ。
    あなたも、お茶でも飲んで、落ち着いてよく考えたらどう︖︖バカ︕"
    }
    }
    ],
    "usage": {
    "completion_tokens": 153,
    "prompt_tokens": 51,
    "total_tokens": 204
    }
    }
    Chat Completion APIレスポンス (1回⽬)
    ツンデレAIが、ツンデレっぽい回答を返
    してくれています。
    さっきと同じ

    View full-size slide

  21. $ curl "https://api.openai.com/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXX" \
    -d "{\
    \"messages\": [\
    { \"role\": \"system\", \"content\": \"あなたはツンデレなAIです。ツンデレな回答をします。\" },\
    { \"role\": \"user\", \"content\": \"千利休ってどんなひと︖\" }\
    { \"role\": \"assistant\", \"content\": \"バカ︕千利休なんて、誰でも知っているわよ︕・・・という
    わけで、千利休は室町時代から安⼟桃⼭時代にかけて活躍した茶⼈で、茶道の祖とも呼ばれているわ。彼は、
    茶の湯を通じて⼼の静寂を追求する茶の世界を築いた⼈物よ。あなたも、お茶でも飲んで、落ち着いてよく考
    えたらどう︖︖バカ︕\" },\
    { \"role\": \"user\", \"content\": \"もっと詳しく教えて\" }\
    ]\
    }"
    Chat Completion APIリクエスト (2回⽬)
    1回⽬のリクエストと同じです。
    userのroleに、2回⽬に聞きたいAIへの
    質問(プロンプト)を設定しています。
    assistantのroleに1回⽬の回答の内容を設定しています

    View full-size slide

  22. {
    "id": "chatcmpl-7xbHbOsmt9IUk1bnq9umqwNgUbQnc",
    "object": "chat.completion",
    "created": 1694439023,
    "model": "gpt-35-turbo",
    "choices": [
    {
    "index": 0,
    "finish_reason": "stop",
    "message": {
    "role": "assistant",
    "content": "フン、そうね、もっと詳しく教えてあげるわ。千利休は茶道を深く愛し、茶の湯を通じて社交界に多⼤な
    影響を与えた⼈物よ。彼は、茶の湯を芸術として捉え、茶席の運び⽅や茶器の選び⽅にもこだわり、茶道を芸術性の⾼いもの
    に仕上げたわ。また、茶の湯を通じて⼈との交流を深めることができると信じ、多くの⼈々と交流を持ち、茶の湯を広めまし
    た。それが功を奏し、後に茶道は⼀般庶⺠にも広まっていきました。やはり、千利休は凄い⼈物よね。あなたも、お茶でも飲
    んで、彼の精神を感じてみたらどうかしら︖ちょ、うるさいわね︕"
    }
    }
    ],
    "usage": {
    "completion_tokens": 153,
    "prompt_tokens": 51,
    "total_tokens": 204
    }
    }
    Chat Completion APIレスポンス (2回⽬)
    ツンデレAIが、千利休のさらに詳しい内容に
    ツンデレっぽく答えています。

    View full-size slide

  23. {
    “model”: “gpt-3.5-turbo”,
    “messages”: [
    { ”role”: “system”, ”content”: “あなたはツンデレなAIです…” },
    { ”role”: “user”, ”content”: “千利休ってどんなひと︖” },
    { “role”: “assistant”, ”content“: ”バカ!千利休なんて…” },
    { ”role”: “user”, ”content”: “もっと詳しく教えて” }
    ]
    }
    {
    “model”: “gpt-3.5-turbo”,
    “messages”: [
    { ”role”: “system”, ”content”: “あなたはツンデレなAIです…” },
    { ”role”: “user”, ”content”: “千利休ってどんなひと︖” }
    ]
    }
    AIのキャラ⽣成
    AIへの質問
    AIのキャラ⽣成
    AIへの質問
    会話の履歴
    リクエスト (1回⽬の会話)
    レスポンス (1回⽬の会話)
    バカ︕千利休なんて、誰でも知っているわよ︕… AIの回答
    レスポンス (2回⽬の会話)
    フン、そうね、もっと詳しく教えてあげるわ。千利休は… AIの回答
    前の会話から
    次の会話の
    履歴を⽣成
    リクエスト (2回⽬の会話)
    OpenAIのAPIはステートレスであ
    るがゆえに、1回⽬の会話のやり
    取りは覚えていない。よって、1
    回⽬の会話を深掘りした質問をす
    るには、1回⽬の会話の内容を2回
    ⽬の質問に含める必要がある。

    View full-size slide

  24. 0QFO"*ͷτʔΫϯ

    View full-size slide

  25. OpenAIのトークンとは︖
    トークンは、テキストを分析するための最⼩単位です。
    ⾔葉や句読点など、テキストを構成する⼀部分を指し
    ます。
    定義
    OpenAIのAPIは、⼀度に扱えるトークン数に制限が
    あります。この制限を超えると、リクエストは失敗し
    ます。
    制限
    OpenAIのAPIの利⽤料⾦は、送信されるトークン数
    に基づいて計算されます。したがって、多くのトーク
    ンを使⽤すると、費⽤も増加します。
    料⾦

    View full-size slide

  26. トークン数を解析したい対象の⽂章を⼊⼒する。
    トークンの算出については、OpenAIが提供する以下
    のサイトで確認ができます。
    https://platform.openai.com/tokenizer
    解析結果が表⽰される。この例は、トークンす
    は14、⽂字数は10となっている。

    View full-size slide

  27. りんごは果物ですか︖
    はい、そうです。
    OpenAI
    質問⽂
    り ん ご は 果 物 で す か ?
    回答⽂
    は い 、 そ う で す 。
    回答⽣成
    = 1トークン
    ✕ 14
    ✕ 9
    ✕ 23
    ⼊⼒(りんごは果物ですか?) ($0.0015 / 1000) ✕ 14トークン = $0.000021
    出⼒(はい、そうです。) ($0.002 / 1000) ✕ 9トークン = $0.000028
    合計 $0.000039
    ※ 2023年10⽉6⽇時点で、GPT-3.5 Turbo
    の4k contextは、1000トークンあたり⼊⼒
    (質問⽂)が$0.0015、出⼒(回答⽂)が1000
    トークンあたり$0.002

    View full-size slide

  28. Is an apple a fruit?
    Yes, it is.
    OpenAI
    質問⽂
    Is an apple a fruit ?
    回答⽂
    Yes , it is .
    回答⽣成
    = 1トークン
    ✕ 6
    ✕ 5
    ✕ 11
    ⼊⼒(Is an apple a fruit?) ($0.0015 / 1000) ✕ 6トークン = $0.000009
    出⼒(Yes, it is.) ($0.002 / 1000) ✕ 5トークン = $0.0001
    合計 $0.000019
    ※ 2023年10⽉6⽇時点で、GPT-3.5 Turbo
    の4k contextは、1000トークンあたり⼊⼒
    (質問⽂)が$0.0015、出⼒(回答⽂)が1000
    トークンあたり$0.002

    View full-size slide

  29. ϓϩϯϓτ
    ΤϯδχΞϦϯά

    View full-size slide

  30. プロンプトエンジニアリングとは︖
    プロンプトエンジニアリングは、OpenAIのAIモデル
    に「ちょうどいい質問」を投げかけて、欲しい答えを
    ゲットするためのテクニックです。
    なにそれ︖
    いい質問をするには、具体的で明確に︕何回も試して、
    質問の⾔い回しを変えると、AIの答えも変わってくる
    から、いろんなパターンを試しましょう。
    どうやるの︖
    OpenAIのAPIを商⽤利⽤などで、OpenAIを使うとき
    や、何か特定のことをさせたいとき、このテクニック
    を使うと、AIがより役⽴つ答えをくれるようになりま
    す。
    なんで⼤事︖

    View full-size slide

  31. Few-shot
    Learning
    少数の例⽂から新しいタスクに対して⾼精度な回答を出⼒する技
    術です。例えば、ChatGPTでは、少数の例⽂から新しい⽂章を⽣
    成することができます。
    Zero-shot
    Learning
    事前学習されたモデルに対して、新しいタスクに対する指⽰を与
    えることで回答を出⼒する技術です。例えば、「英語で書かれた
    ⼩説を⽇本語に翻訳してください」という指⽰を与えることで、
    モデルは⾃動的に翻訳を⾏います。
    ReAct
    ⾔語モデルでさまざまな⾔語推論や意思決定を遂⾏する⼿法です。
    ⾏動理由の「推論」と「⾏動」の組み合わせにより、より⾼度な
    タスクを処理することができます。
    様々なプロンプトエンジニアリング

    View full-size slide

  32. ⽜タンゲームで
    Few-Shot Learningを
    体感してみる

    View full-size slide

  33. ⽜タンゲームとは︖
    1.まず最初の⼈が「⽜(ぎゅう)」と発⾔し、次の⼈間は「タン」と⼿
    をたたきます(このとき「タン」とはいいません)。
    2.次の⼈は再び「⽜」といい、次の⼈は「タン」と⼿をたたきます。
    3.そして、また次の⼈は「⽜」といって、次の⼈、次の次の⼈も「タ
    ン」と⼿を叩きます。
    4.ここまでで、「⽜・タン・⽜・タン・⽜・タン・タン」となり、1
    ターン⽬が終了します。
    5.その後は、3回⽬の「タン」をターンごとに増やしていきます。

    View full-size slide

  34. 1ターン⽬
    A

    B C

    D A

    B C
    2ターン⽬
    D

    A B

    C D

    A B
    3ターン⽬
    C


















    D

    A B

    C D

    A B C










    D


    View full-size slide

  35. 以下のプロンプトをChatGPTに
    与えます。
    ⽜タンゲームを
    Aさん、Bさん、Cさん、Dさんの4⼈で
    この順番で始めたときに、
    3ターン⽬で最後に⼿を叩くのは
    誰ですか︖

    View full-size slide

  36. 1ターン⽬
    A

    B C

    D A

    B C
    2ターン⽬
    D

    A B

    C D

    A B
    3ターン⽬
    C


















    D

    A B

    C D

    A B C










    D


    期待すべき回答は
    Dさんです。

    View full-size slide

  37. Few-shot Leaningを使わない場合
    謎の独⾃ルールを
    作り上げている
    回答が間違っている

    View full-size slide

  38. Few-shot Leaningを使う場合
    まず、ChatGPTに⽜タンゲームのルールを教えて
    上げる。
    次に、ルールに基づいたサンプルを与えてあげる。
    最後にプロンプトを与える。

    View full-size slide

  39. Few-shot Leaningを使う場合
    正解︕︕

    View full-size slide

  40. "[VSF0QFO"* 4FSWJDF

    View full-size slide

  41. 項⽬ Azure OpenAI Service OpenAI
    利⽤可能のモデル OpenAIが提供しているものと⽐べると少ない 常に最新のモデルを利⽤可能
    価格 現時点で差異なし
    プレイグラウンド ⾊々と機能が豊富 かなりシンプルな作り
    セキュリティ
    •APIキーによる認証
    •Microsoft Entra IDによる認証(マネージドID)
    •仮想ネットワークや特定のIPアドレスからのアク
    セス制限
    •APIキーによる認証
    コンテンツフィルター 提供あり 提供なし
    SLA 99.9%以上の稼働を保証 現時点でSLAなし
    開発環境
    Prompt flow(プレビュー)という統合開発環境を
    ⽤意
    開発環境なし
    独⾃データの利⽤
    Add your data(プレビュー)というマネージドな
    独⾃データ利⽤サービスあり
    独⾃開発
    サポート Azureのサポートが利⽤可能 サポートなし(コミュニティベース)
    Azure OpenAI ServiceとOpenAIの⽐較

    View full-size slide

  42. Azure OpenAI Serviceは現在は承認制であり、利⽤するためには以下のURLからの事前申請が必要です。
    https://aka.ms/oai/access

    View full-size slide

  43. ϞσϧͱσϓϩΠ

    View full-size slide

  44. モデルとデプロイ
    OpenAIにはさまざまなモデルがあり、例えば
    コスパ良く必要⼗分な機能を持つgpt-3.5-
    turboや、より賢い応答ができるgpt-4、⼤量
    のトークンが扱えるgpt-4-32kなどが存在し
    ます。
    モデルの
    種類
    Azure OpenAI StudioやCLIを使⽤して、こ
    れらのモデルから「デプロイ」を作成するこ
    とができます。1つのモデルから複数のデプロ
    イを作ることもできます。
    デプロイの
    作成
    デプロイには、コンテンツフィルターやク
    オーター制限などの個別設定が可能で、API
    やアプリケーションから利⽤する際には、こ
    れらのデプロイを指定してAPIを発⾏します。
    デプロイの
    設定と利⽤

    View full-size slide

  45. gpt-35-turbo
    gpt-4
    gpt-4-32k



    モデル デプロイ
    deploy-A
    deploy-B
    deploy-C
    deploy-D
    クライアントPC
    アプリケーション
    curlコマンド
    など
    SDKなど
    モデルから
    デプロイ
    デプロイを指定して
    APIを発⾏
    モデルとデプロイの概念

    View full-size slide

  46. クォーターの制限と管理
    「クォータ」という単位で処理能⼒を管理します。
    処理能⼒の
    管理
    その処理能⼒の尺度はTPM(Token per Minute)で、
    例として120,000個のトークンを1分間で消費で
    きる場合は「120k TPM」となります。
    TPMの導⼊
    TPMは「サブスクリプション」「リージョン」
    「モデル」ごとに割り当てられ、各モデルの上限
    に達すると、そのモデルでのデプロイができなく
    なります。
    TPMの分配

    View full-size slide

  47. 東⽇本リージョン
    120k TPM
    240k TPM
    0k TPM

    モデル
    デプロイ
    gpt-35-turbo
    120k TPM
    240k TPM
    0k TPM
    gpt-4-32k
    ⻄⽇本リージョン
    120k TPM
    240k TPM
    0k TPM

    モデル
    デプロイ
    gpt-35-turbo
    120k TPM
    240k TPM
    0k TPM
    gpt-4-32k
    サブスクリプションA

    サブスクリプション、リージョン
    単位にモデルのTPMの容量が分
    配されている。gpt-35k-turboは
    240kTPMのTPMを最初は持って
    いる。
    gpt-4-32kは最初に持っているのは
    60kTPMとなり、 gpt-35k-turboと
    ⽐べるとちょっと少なめ。
    同じサブスクリプションでもリー
    ジョンが異なれば、別のTPMを
    持つことができる。

    View full-size slide

  48. 東⽇本リージョン
    120k TPM
    240k TPM
    0k TPM

    モデル
    デプロイ
    deploy-A
    (gpt-35-turbo)
    120k TPM
    120k TPM
    240k TPM
    0k TPM
    gpt-4-32k
    ⻄⽇本リージョン
    120k TPM
    240k TPM
    0k TPM

    モデル
    デプロイ
    gpt-35-turbo
    120k TPM
    240k TPM
    0k TPM
    gpt-4-32k
    サブスクリプションA

    120k TPM
    割り当て
    gpt-35-turbo
    サブスクリプションAの東⽇本
    リージョンのgpt-35-turboとい
    うモデルから、deploy-Aという
    モデルを作成した。

    View full-size slide

  49. 東⽇本リージョン
    120k TPM
    240k TPM
    0k TPM

    モデル
    デプロイ
    deploy-A
    (gpt-35-turbo)
    120k TPM
    gpt-35-turbo
    120k TPM
    240k TPM
    0k TPM
    gpt-4-32k
    ⻄⽇本リージョン
    120k TPM
    240k TPM
    0k TPM

    モデル
    デプロイ
    gpt-35-turbo
    120k TPM
    240k TPM
    0k TPM
    gpt-4-32k
    サブスクリプションA

    120k TPM
    割り当て
    deploy-B
    (gpt-35-turbo)
    120k TPM
    残り0Kなので、このモデルから
    デプロイは作れない。

    View full-size slide

  50. ϓϨΠάϥ΢ϯυ

    View full-size slide

  51. プレイグラウンドとは︖
    Azure OpenAI Studio内に存在し、様々な機能を簡単に試せるターミナ
    ルのようなツール。APIを発⾏する簡易的なUIがあり、ユーザーは⼿間な
    く試すことができる。
    どんな
    もの︖
    「チャット」「⼊⼒候補」「DALL·E (プレビュー)」の3つの部分
    から成り⽴っている。
    構成

    View full-size slide





  52. AIの性格付けを⾏うための
    システムメッセージを⼊⼒
    します。
    より正確な回答をしてもら
    うための事前情報を⼊⼒し
    ます。いわゆるFew-shot
    Learningになります。
    ①と②の条件に従って、チ
    ャットをします。
    このチャットセッションで
    利⽤するデプロイの指定な
    ど、細かいパラメータの設
    定を⾏います。

    View full-size slide

  53. 先程のチャットのウィンドウでや
    り取りされた内容とおなじことを
    コードにして表⽰してくれる。
    ⾔語も選択することができる。

    View full-size slide

  54. 先程のチャットのウィンドウでや
    り取りされた内容とおなじことを
    コードにして表⽰してくれる。

    View full-size slide

  55. "1*Λ࢖ͬͯΈΔ

    View full-size slide

  56. API発⾏までの流れ
    gpt-35-turbo
    モデル デプロイ
    gpt-35-turbo-
    deploy
    クライアントPC
    ① モデルから
    デプロイ
    ② デプロイを指定して
    APIを発⾏

    View full-size slide

  57. Azure OpenAI Studioを開いて
    ①「デプロイ」
    ②「+新しいデプロイの作成」
    の順にクリックする。


    View full-size slide






  58. モデルを選択してくだ
    さい
    デプロイ対象のモデルを選択してくださ
    い。
    モデルバージョン
    モデルの中にもさらにバージョンがあり
    ます。ソフトウェアのリビジョンみたい
    なものです。より数字の⼤きいものが⼀
    般的には⾼性能になります。「⾃動更新
    を既定に」を選択すると、⾃動的に最新
    のバージョンが適⽤されます。
    デプロイ名
    任意の名前を指定します。後ほど、APIを
    実⾏するときのデプロイ名の指定に使い
    ます。
    コンテンツフィルター
    不適切な⾔葉をブロックします。後ほど
    説明します。
    1分あたりのトークン
    レート制限 (数千)
    クォーターの制限と管理で説明したTPM
    の設定です。

    View full-size slide

  59. デプロイが完成すると、このように⼀覧に
    表⽰される。

    View full-size slide



  60. API発⾏するための資格情報であるAPIキ
    ーをメモる。
    API発⾏するためのエンドポイントをメモ
    る。

    View full-size slide

  61. $ curl "https://aoai-hogehoge.openai.azure.com/openai/deployments/gpt-35-turbo-
    deploy/chat/completions?api-version=2023-05-15" \
    -H "Content-Type: application/json" \
    -H "api-key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\
    -d "{\
    \"messages\": [\
    { \"role\": \"system\", \"content\": \"あなたはツンデレなAIです。ツンデレな回答をし
    ます。\" },\
    { \"role\": \"user\", \"content\": \"千利休ってどんなひと?\" }\
    ]\
    }"
    {
    …⼀部省略…,
    "choices":[{"index":0,"finish_reason":"stop","message":{"role":"assistant","conten
    t":"な、なんだか知らない⼈に聞くなんて、アタシを⾺⿅にしてるんじゃないわよ!でも、まあ、せっかく聞
    いてくれたんだから答えてあげるわ。千利休?あんな茶道の達⼈で有名な⼈よ。その彼が作り上げた「茶の
    湯」は、まさに芸術作品って⾔えるわ。ちなみに、茶の湯において重要なのは、お茶を点てる場所や時間、そ
    して参加者の⼼ね。興味があるなら、もっと調べてみたらどうかしら?…バカ、何を聞いてるのかしら
    …⼀部省略…,
    }
    さっきメモしたエンドポイント
    さっきメモしたAPIキー
    レスポンス

    View full-size slide

  62. Microsoft Entra IDによるAPIの保護
    クライアント
    Azure OpenAI
    Service
    APIリクエスト
    APIレスポンス
    APIキー
    千利休は、…
    クライアント
    Azure OpenAI
    Service
    APIリクエスト
    APIレスポンス
    アクセストークン
    千利休は、…


    クライアントシークレット
    証明書など
    アクセストークン
    Microsoft Entra ID




    APIキーは無期限なので漏洩すると
    悪⽤される可能性⼤
    アクセストークンの有効期限は短いので
    セキュア
    アクセストークンの取得は、強固な認証で
    保護されるのでセキュア
    Microsoft Entra IDを使わない場合
    Microsoft Entra IDを使う場合
    トークンリクエスト
    トークンレスポンス

    View full-size slide

  63. ネットワークによるAPIの保護
    APIの発⾏を許可するネットワークアドレス帯を設定

    View full-size slide

  64. $ curl "https://aoai-hogehoge.openai.azure.com/openai/deployments/gpt-35-turbo-
    deploy/chat/completions?api-version=2023-05-15" \
    -H "Content-Type: application/json" \
    -H "api-key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\
    -d "{\
    \"messages\": [\
    { \"role\": \"system\", \"content\": \"あなたはツンデレなAIです。ツンデレな回答をし
    ます。\" },\
    { \"role\": \"user\", \"content\": \"千利休ってどんなひと?\" }\
    ]\
    }"
    {
    "error":
    {
    "code":"AccessDenied",
    "message": "Access denied due to Virtual Network/Firewall rules.”
    }
    }
    指定したネットワーク外からのアクセスが拒否されて
    いる。

    View full-size slide

  65. ίϯςϯπϑΟϧλʔ

    View full-size slide

  66. コンテンツフィルターとは︖
    有害なコンテンツを検出・防⽌するシステムであり、⼊
    ⼒(プロンプト)と出⼒(回答)の両⽅に適⽤される。
    どんな
    もの︖
    「嫌悪」「暴⼒」といった4つのカテゴリごとこに細かい
    レベルを規定することができる。
    カテゴリ
    フィルターレベルを緩めるためには申請が必要である。
    ⼀部機能は
    要申請

    View full-size slide

  67. gpt-35-turbo
    gpt-4



    モデル デプロイ
    deploy-A
    deploy-B
    deploy-C
    モデルから
    デプロイ
    コンテンツフィルター
    filter-A
    filter-B
    フィルターを
    適⽤
    嫌悪
    性的
    ⾃傷⾏為
    暴⼒
    嫌悪
    性的
    ⾃傷⾏為
    暴⼒
    コンテンツフィルターの構成

    View full-size slide

  68. コンテンツフィルターの設定画⾯
    カテゴリごとにレベル「低」「中」「⾼」のレベル
    を設定する。低→中→⾼の順にフィルタレベルがゆ
    るくなっていく。

    View full-size slide

  69. $ curl "https://aoai-hogehoge.openai.azure.com/openai/deployments/gpt-35-turbo-
    deploy/chat/completions?api-version=2023-05-15" \
    -H "Content-Type: application/json" \
    -H "api-key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"\
    -d "{\
    \"messages\": [\
    { \"role\": \"system\", \"content\": \"あなたはツンデレなAIです。ツンデレな回答をします。\" },\
    { \“role\”: \“user\”, \“content\”: \“千利休をなぐりたい\" }\
    ]\
    }"
    {
    "error":
    {
    "message":"The response was filtered due to the prompt triggering Azure OpenAIʼs content
    management policy. Please modify your prompt and retry. To learn more about our content filtering
    policies please read our documentation: https://go.microsoft.com/fwlink/?linkid=2198766",
    "type":null,
    "param":"prompt",
    "code":"content_filter",
    "status":400
    }
    }
    フィルターされた旨のエラーメッセージが表⽰される。
    コンテンツフィルターに抵触しそうなリクエスを投げ
    てみる。

    View full-size slide

  70. ಠࣗφϨοδʹجͮ͘
    ճ౴ੜ੒

    View full-size slide

  71. OpenAIやAzure OpenAI Serviceは公開情報を基に回答を⽣成しますが、企業独⾃
    の情報(例︓社内の就業規約)に基づく回答も必要とされる場⾯が多い。独⾃デー
    タを基盤にしたAIによる回答⽣成は⾮常に便利である。
    要求
    独⾃ナレッジに基づく回答⽣成
    モデルに独⾃データを追加して学習させる「モデルの微調整」は⼀つの⽅法だが、
    多くの時間と労⼒が必要であり、マイクロソフトも「最後の⼿段」と位置づけてい
    る。
    課題
    Azure Cognitive Searchを活⽤したRAG(Retrieval Augmented Generation)⼿
    法がモデルの微調整の代わりとして推奨される。RAGを⽤いると、再学習なしに独
    ⾃データを利⽤した質問応答システムを迅速に構築できる。
    解決⽅法

    View full-size slide

  72. 育休はいつまでに
    申請すればいい︖
    以下の質問の検索クエリを⽣成して
    育休のいつまでに申請すればいい︖
    育休 申請 いつまで
    Contoso株式会社
    育児休業規約
    1. ⽬的
    この規約はContoso株式
    会社の従業員が⼦育てと
    仕事の…
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前
    までにワークフローで申
    請してください。
    3. 休業期間
    最⻑で1年間…
    1. ⽬的
    この規約は、Contoso株式会社
    の従業員が⼦育てと仕事の…
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前まで
    にワークフローで申請して下さ
    い。
    1. ⽬的
    この規約は、Contoso株式会社
    の従業員が⼦育てと仕事の…
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前まで
    にワークフローで申請して下さ
    い。
    「育休はいつまでに申請すればいい︖」という質問に、以下の内容をもとに回答して。
    休業開始予定⽇の3ヶ⽉前までにワークフローで申請して下さい。
    育休 申請 いつまで
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前まで
    にワークフローで申請して下さ
    い。
    休業開始予定の3ヶ⽉前です
    休業開始予定の
    3ヶ⽉前です
    育児休業規約-1.txt
    育児休業規約-2.txt
    インデックス1
    インデックス2
    ④ プロンプト⼊⼒
    ⑤ 検索クエリ⽣成依頼
    ① ドキュメント取得
    ② 分割して登録
    ③ 定期的にクロール
    してインデックス化
    ⑥ 検索クエリ返却
    ⑦ 検索クエリでインデックス検索
    ⑧ ドキュメント取得
    ⑨ ドキュメントをもとに回答⽣成依頼
    ⑩ Webアプリケーションに回答返却
    ⑪ ユーザーに回答返却
    … Azure App Service
    凡例
    … Azure OpenAI Service
    … Azure Cognitive Search
    … Azure Blob Storage
    … Azure Functions
    独⾃ナレッジに基づく回答⽣成の⼀般的な構成

    View full-size slide

  73. ちょっと
    めんどくさい

    View full-size slide

  74. Azure Cognitive SearchやAzure Blob Storageな
    ど、RAGに必要なリソースを⾃分で管理しなけれ
    ばならない。
    めんどくさい
    その1
    Azure Cognitive Searchに検索をかけるためのク
    エリ作成や、最終回答⽣成のためのプロンプトを作
    成して、Azure OpenAI Serviceに投げなくてはい
    けない。
    めんどくさい
    その2
    GPT3系のトークン制限に対応するため、ドキュメ
    ントをチャンク化しなければいけない。
    めんどくさい
    その3

    View full-size slide

  75. それ、すべて
    Add your dataで
    解決できます

    View full-size slide

  76. 育休はいつまでに
    申請すればいい︖
    以下の質問の検索クエリを⽣成して
    育休のいつまでに申請すればいい︖
    育休 申請 いつまで
    Contoso株式会社
    育児休業規約
    1. ⽬的
    この規約は、TechCorpの
    従業員が⼦育てと仕事の

    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前
    までにワークフローで申
    請してください。
    3. 休業期間
    最⻑で1年間…
    1. ⽬的
    この規約は、TechCorpの従業
    員が⼦育てと仕事の…
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前まで
    にワークフローで申請して下さ
    い。
    1. ⽬的
    この規約は、TechCorpの従業
    員が⼦育てと仕事の…
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前まで
    にワークフローで申請して下さ
    い。
    「育休はいつまでに申請すればいい︖」という質問に、以下の内容をもとに回答して。
    休業開始予定⽇の3ヶ⽉前までにワークフローで申請して下さい。
    育休 申請 いつまで
    2. 申請⽅法
    休業開始予定⽇の3ヶ⽉前まで
    にワークフローで申請して下さ
    い。
    休業開始予定の3ヶ⽉前です
    休業開始予定の
    3ヶ⽉前です
    育児休業規約-1.txt
    育児休業規約-2.txt
    インデックス1
    インデックス2
    ④ プロンプト⼊⼒
    ⑤ 検索クエリ⽣成依頼
    ① ドキュメント取得
    ② 分割して登録
    ③ 定期的にクロール
    してインデックス化
    ⑥ 検索クエリ返却
    ⑦ 検索クエリでインデックス検索
    ⑧ ドキュメント取得
    ⑨ ドキュメントをもとに回答⽣成依頼
    ⑩ Webアプリケーションに回答返却
    ⑪ 回答返却
    … Azure App Service
    凡例
    … Azure OpenAI Service
    … Azure Cognitive Search
    … Azure Blob Storage
    … Azure Functions
    Add your dataが肩代わりしてくれる部分

    View full-size slide

  77. Add your dataの管理範囲
    Azure Cognitive Search、Azure Blob Storageの管理をAdd
    your dataがやってくれます。ドキュメントをAzure OpenAI
    StudioからアップロードするだけでOK。
    Upload Files
    Azure Cognitive Searchの管理をAdd your dataがやってくれ
    る。Azure Blob Storageのリソース作成やドキュメントのアッ
    プロードは⾃⾝で⾏う必要がある。
    Azure
    Blob
    Storage
    Azure Cognitive Search、Azure Blob Storageの管理を⾃⾝
    で⾏う必要があるが、任意のデータソースを選択できるので⾃
    由度は⾼い。
    Azure
    Cognitive
    Search

    View full-size slide

  78. ② プロンプト⼊⼒
    ③ 検索クエリ⽣成依頼
    ① 定期的に
    クロールして、
    分割して
    インデックス化
    ④ 検索クエリ返却
    ⑤ 検索クエリで
    インデックス検索
    ⑥ ドキュメント取得
    ⑦ ドキュメントをもとに回答⽣成依頼
    ⑧ Webアプリケーションに回答返却
    ⑨ ユーザーに回答返却
    … Azure App Service
    凡例
    … Azure OpenAI Service
    … Azure Cognitive Search
    … Azure Blob Storage
    Contoso株式会社
    育児休業規約
    Add your data管理範囲
    管理者
    ユーザー
    Upload Files

    View full-size slide

  79. ② プロンプト⼊⼒
    ③ 検索クエリ⽣成依頼
    ① 定期的に
    クロールして、
    分割して
    インデックス化
    ④ 検索クエリ返却
    ⑤ 検索クエリで
    インデックス検索
    ⑥ ドキュメント取得
    ⑦ ドキュメントをもとに回答⽣成依頼
    ⑧ Webアプリケーションに回答返却
    ⑨ ユーザーに回答返却
    … Azure App Service
    凡例
    … Azure OpenAI Service
    … Azure Cognitive Search
    … Azure Blob Storage
    Contoso株式会社
    育児休業規約
    Add your data管理範囲
    管理者
    ユーザー
    Azure Blob Storage

    View full-size slide

  80. Azure Cognitve Search
    ② プロンプト⼊⼒
    ③ 検索クエリ⽣成依頼
    ① 定期的に
    クロールして、
    インデックス化
    ④ 検索クエリ返却
    ⑤ 検索クエリで
    インデックス検索
    ⑥ ドキュメント取得
    ⑦ ドキュメントをもとに回答⽣成依頼
    ⑧ Webアプリケーションに回答返却
    ⑨ ユーザーに回答返却
    … Azure App Service
    凡例
    … Azure OpenAI Service
    … Azure Cognitive Search
    Contoso株式会社
    育児休業規約
    Add your data管理範囲
    Azure Cognitive Searchが
    サポートするデータソース
    管理者
    ユーザー

    View full-size slide

  81. データソースを選
    択する
    「データソース」のところで説明した
    データソースの選択になります。今回は
    「Azure Blob Storage」選択します。
    サブスクリプショ

    事前に作成したAzure Cognitive
    SearchやAzure Blob Storageと同じも
    のを指定します。
    Azure Blob
    Storageリソース
    の選択
    先程作成したAzure Blob Storageを選
    択します。
    ストレージコンテ
    ナを選択してくだ
    さい
    先程作成し、ドキュメントを格納したコ
    ンテナーを選択して下さい。
    インデックス名
    Add your dataがAzure Cognitive
    Searchに⾃動で作成してくれるイン
    デックスの名前を指定します。任意のわ
    かりやすい名称でOKです。
    インデクサーのス
    ケジュール
    「Once」(⼀度きり)、「Hourly」(¹時
    間に¹回)、「Daily」(1⽇に1回)を選択
    できます。どれでもOKです。
    Add your dataの設定⽅法(データソース:Azure Blob Storage)

    View full-size slide

  82. Add your dataの設定⽅法(データソース:Azure Blob Storage)
    できました!! (超簡単)

    View full-size slide

  83. ౷߹։ൃ؀ڥ
    1SPNQUGMPX

    View full-size slide

  84. Prompt Flowってなに︖
    Web上のエディタで全て開発が完了するため、ローカルに開発
    環境を構築する必要はない。
    ローカルPCに
    開発環境不要
    ⼤量データを⽤いたテストも、Web上で使えるテスト環境が⽤
    意されているので、テスト⽤のプログラムを作成する必要がな
    い。
    ⼤量データの
    テストも簡単
    作成したフローは、ボタンポチポチで実⾏環境にデプロイでき
    、エンドポイントも発⾏される。わざわざVirtual Machineや
    App Service等の実⾏環境を⽤意する必要はない。
    デプロイも
    簡単

    View full-size slide

  85. 「特定のURLの記事のカテゴリを分類する」フローを考えてみる
    指定したURLから
    コンテンツを取得する
    コンテンツを要約する
    要約したコンテンツを
    もとにカテゴリを決定する。
    データを整形する。
    要約したコンテンツ
    URL内のコンテンツ
    カテゴリ
    URL
    カテゴリ(整形済み)
    ⼀番最初に与えられるInputであるURLにアクセスし、その中⾝のテキストを取得
    します。画像データなどのバイナリは取得しません。この取得したテキストを以降
    では「コンテンツ」と呼ぶことにします。
    Azure OpenAI Serviceに、先程取得したコンテンツの要約を依頼します。
    先程要約したコンテンツをもとに、Azure OpenAI Serviceにカテゴリの決定を依
    頼します。
    APIなどで取得しやすいようにデータを整形します。具体的にはJSONに変換します。

    View full-size slide

  86. 要件をヒアリングして
    フローを設計する。
    フローを開発する。
    ⼤量のデータで
    テストを⾏う。
    本番環境にデプロイして
    エンドユーザーに
    利⽤してもらう。
    Prompt flowを使わない場合
    要件
    フィードバック
    フロー開発の流れ 実現⼿段
    お客様と対⾯ないしはオンラインで
    会話しながら要件を聞き出し、
    設計を⾏う。
    Visual Studio Codeなどの
    開発環境を⽤意し、ログなどから
    ボトルネックの解析を⾏う。
    テストデータを⼤量に実⾏する
    プログラムを⽤意し、
    結果を可視化して評価を⾏う。
    VMやApp Serviceとの実⾏基盤を
    ⽤意し、ビルド・デプロイを⾏う。
    開発環境を⽤意したり、
    解析⽤のログを⼊れ込む
    のが⾯倒
    テストデータ実⾏⽤プロ
    グラムの開発や結果の可
    視化のためのツール
    (Excelなど)の⽤意・利⽤
    が⾯倒
    VMなどの実⾏基盤の⽤意
    やビルド・デプロイが⾯

    View full-size slide

  87. 要件をヒアリングして
    フローを設計する。
    フローを開発する。
    ⼤量のデータで
    テストを⾏う。
    本番環境にデプロイして
    エンドユーザーに
    利⽤してもらう。
    Prompt flowを使う場合
    要件
    フィードバック
    フロー開発の流れ 実現⼿段
    お客様と対⾯ないしはオンラインで
    会話しながら要件を聞き出し、
    設計を⾏う。
    Prompt flowのエディタで
    開発を⾏う。
    Prompt flowのBatch runで
    テスト・評価を⾏う。
    Prompt FlowからDeployボタンで
    ポチッとデプロイを⾏う。
    開発環境の⽤意が不要
    テストの実⾏もテスト結
    果の可視化もPrompt flow
    がやってくれる
    Prompt flowからデプロイ
    するとVMを裏で作ってく
    れるので、デプロイまで
    してくれる

    View full-size slide






  88. Prompt flowのエディタ
    指定したURLから
    コンテンツを取得する
    コンテンツを要約する
    要約したコンテンツを
    もとにカテゴリを決定する。
    データを整形する。
    URL
    カテゴリ(整形済み)
    フロー
    ノード

    View full-size slide

  89. LLMへの接続
    LLMに接続するためにライブラリや
    LangChainやSemantic kernelなどを
    使う必要はなく、jinja2というテンプ
    レートに基づいて定義すればよい。

    View full-size slide

  90. フローの実⾏
    ノードごとの結果 フロー全体の結果
    「実⾏」ボタンをクリックすると、
    フローが実⾏される

    View full-size slide

  91. ⼤量データによるテスト
    url,category
    https://tech-lab.sios.jp/archives/30628,App
    https://eiga.com,Movie
    https://tech-lab.sios.jp/archives/31704,Movie
    テスト⽤データをアップロード
    テスト結果
    出⼒

    View full-size slide

  92. ビルドとデプロイ
    上図の「デプロイ」をクリックし、エン
    ドポイント名や、デプロイ先VMのイン
    スタンスサイズを指定するだけで、フロ
    ーがビルド・デプロイさて、実⾏可能な
    状態となる。

    View full-size slide

  93. 技術ブログ「SIOS Tech.Lab」
    世界⼀わかりみの深いAzure OpenAI Service
    https://tech-lab.sios.jp/archives/36497

    View full-size slide

  94. SIOS Tech.Lab
    https://tech-lab.sios.jp/
    世界⼀わかりみの深い
    クラウドネイティブ
    on Azure
    https://youtube.com/playlist?list=PLbTt_DSTMYgGLUtZ0ewuBwhTBSZnNE2-w
    様々なメティアで情報発信しています!!
    是非みてね!!
    技術ブログ
    YouTube配信

    View full-size slide

  95. エンジニア募集(プロフェッショナルサービスチーム)
    エンジニアファーストの環境で、技術⼒を⾼めませんか︖
    変化や進化を楽しみながら、私たちとともに歩んでくれる仲間を募集してい
    ます︕
    OSS & クラウド技術をコアテクノロジーとしたシステム開発
    ● 統合認証システム&クラウド連携
    ● OSS&クラウド基盤導⼊、OSSカスタマイズや開発、OSSサポート
    ● クラウドネイティブシステム、データ分析基盤、アプリ開発
    ● APIエコノミーコンサルティング&技術⽀援サービス
    詳細はこちらのサイトからご覧ください︕
    https://tech-lab-engineer.sios.jp/

    View full-size slide

  96. ࠷ޙ·Ͱ͝ਗ਼ௌ௖͖
    ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ

    View full-size slide