🚀

Z世代エンジニアがサンフランシスコで体感したAI革命【OpenAI Dev Day現地レポート】

2024/10/04に公開

はじめまして、ますみです!

株式会社Galirage(ガリレージ)という「生成AIに特化して、システム開発・アドバイザリー支援・研修支援をしているIT企業」で、代表をしております^^

自己紹介.png

本日は、Galirageの「CRO(Chief Research Officer)である越原さん」の現地レポートを紹介します!

越原さんは、かなり抽選確率の低い「OpenAI Dev Day 2024」へのチケットを獲得し、現地参加してきました!(彼は本当に何かを持っています笑)

それでは、越原さんが執筆してくださった貴重なレポートは、下記の通りです^^

執筆者の紹介

株式会社GalirageのCRO(Chief Research Officer)の「越原 崚」です。

普段は、大手企業への生成AIコンサルティングや、最新の生成AI研究を行っています(これまで20以上の生成AIプロジェクトに参画)。

さらに、直近では「Galirage Research」という研究部門を立ち上げ、約22名の仲間と共に、最新のLLMのR&Dを行っています。

私自身、2023年の春にGPT-4がリリースされた時は、寝食を忘れて研究していたほど、LLMの技術が大好きです。

今回、OpenAI Dev Day 2024のサンフランシスコの会場に参加したので、現地でのディスカッション内容も交えながら、新機能について解説していきます!

OpenAI Dev Day 2024とは?

OpenAI Dev Day 2024とは、「OpenAI社が開催する開発者向けのカンファレンス」です。

今年は、サンフランシスコ、ロンドン、シンガポールの3都市で開催されています。

現地の会場では、新しくリリースされた機能の発表だけでなく、「OpenAIのエンジニアの方々との交流の機会」もありました。

OpenAI Dev Day 2024で発表された新機能

  1. Realtime API
  2. Prompt Caching
  3. Model Distillation
  4. Vision Fine-tuning

現地で特に盛り上がったのは、Realtime APIの発表でした!

https://x.com/OpenAIDevs/status/1841175537060102396

1. Realtime API

Realtime APIとは、「リアルタイムでのSpeech-to-SpeechができるAPI」です。
Speech-to-Speechとは、GPT-4oなどのマルチモーダルAIが、音声を入力として受け取り、音声を出力するEnd-to-Endのモデルです。

Realtime APIでは、Speech-to-Speechの処理を一つのモデルの中で完結させることができる(いわゆるEnd-to-Endのモデルである)ため、応答速度が大幅に改善されました。

また、Realtime APIの特徴の一つとして、音声データに含まれる「感情」「アクセント」「トーン」などの情報を生成AIが直接処理できる点が挙げられます。

これにより、テキストデータでは伝わりにくい音声特有のニュアンスを反映した、より自然な対話が可能になります。

その他の機能としては、合成音声の話者を選択できたり、Function callingを用いて外部ツールと連携させることが可能です。

Realtime APIの内部処理について

内部の処理については、Websocketを使用して、リアルタイムでの音声データの送受信を行っています。

Websocketとは、「クライアントとサーバー間で双方向のリアルタイム通信」を可能にするプロトコルです。これにより、音声データの送受信をリアルタイムで行うことができます。

既存の技術との違い

既存の技術では、まず入力された音声(audio)をWhisperなどの音声認識モデルでテキストに変換します。その後、GPT-4oなどの言語モデルで応答を生成し、最後にText-to-Speechモデルで音声を合成するという手順を踏んでいました。

このような手法を採用していたツールとして、ChatGPTの「Voice Model」があります。

このような実装方法では、回答を読み上げるまでの応答速度が遅く、「ユーザーの待ち時間が長くなる」という課題がありました。

また、生成AIは、回答を生成している間は、ユーザーの新たな質問を処理することができないので、ユーザーはAIの回答を最後まで待つ必要がありました。

私自身、生成AIの「電話応対システム(ユーザーが電話をかけたら、音声の指示に対して、生成AIで回答文を生成して、機械音声で読み上げるシステム)」を案件でに参画したことがあるため、実際に全く同じ課題に直面したことがあります。

一方で、Realtime APIでは、先述した通り、Speech-to-Speechの処理を一つのモデルの中で完結させることができる(いわゆるEnd-to-Endのモデルである)ため、応答速度がかなり速い上、回答生成中であっても、処理を中断させて、指示を入り込ませることができる機能を実装可能です。

ここで、既存技術との違いをまとめると以下の通りです。

既存技術 Realtime API
応答速度 △ 遅い ◎ 速い
「感情・アクセント・トーン」の直接処理 × 不可 ◎ 可能
回答生成中での指示の入り込み × 不可 ◎ 可能

Realtime APIの実行方法

OpenAI Dev Dayの会場で紹介されていたようなデモができるソースコードが公開されていたので、ぜひ皆さんも試してみてください!

https://github.com/openai/openai-realtime-console

https://github.com/openai/openai-realtime-api-beta

2. Prompt Caching

Prompt Cachingとは、「GPT-4oなどの言語モデルにおいてプロンプトをキャッシュする機能(過去に指示された生成結果を再利用する機能)」です。

Prompt Cachingでは、過去に使用されたプロンプトであれば、回答結果を再利用することができ、「API利用料金の割引」や「リクエストの処理時間の短縮」につながります。

この機能では、1024トークン以上のプロンプトに自動的に適用され、キャッシュされた部分に対して50%の割引が適用されます。

この時、出力トークンには割引は効かず、入力トークンのみが割引対象となります。

現時点で対応しているモデルは、次の通りで、自動的に適応されるそうです(もしかしたらパッケージのアップデートなどが必要かもしれないため、念のため有効になっているか確認することを推奨します)。

  • gpt-4o
  • gpt-4o-mini
  • o1-preview
  • o1-mini

https://openai.com/index/api-prompt-caching/

https://www.anthropic.com/news/prompt-caching

Prompt Cachingの内部処理について

内部の処理については、主に3つのステップで構成されています。

  1. キャッシュの検索:入力されたプロンプトの冒頭部分(プレフィックス)がキャッシュに保存されているかを確認
  2. キャッシの一致:一致するプレフィックスが見つかった場合、キャッシュされた結果を使用
  3. キャッシュの不一致:一致するプレフィックスが見つからない場合、プロンプト全体を処理
  4. キャッシュの追加:キャッシュされていない1024トークン以上のプロンプトは、キャッシュに追加

https://platform.openai.com/docs/guides/prompt-caching

キャッシュの保持期間は、使用頻度と最後の使用時間に基づいて管理されています。キャッシュは5分から10分間使用されない状態が続くと自動的にクリアされます。

また、頻繁に使用されているキャッシュであっても、最後の使用から、1時間が経過すると必ず削除されます。

3. Model Distillation

Model Distillation(モデル蒸留)とは、「OpenAIのGPT-4oなどの高精度なモデルの出力を使って、GPT-4o-miniなどの小型のモデルをファインチューニングするプロセスを簡素化した機能」です。

この機能により、開発者はOpenAIプラットフォーム上でモデルの蒸留(Distillation)が可能になり、デプロイしたモデルを利用することができます。

Model Distillationの主要機能

Model Distillationの主な機能は、次の3つです。

3-1. Stored Completions

APIを通じて生成されたモデルの入出力ペアを自動的にキャプチャして、保存する機能です。
小型モデルの学習データに使用したい場合、Chat Completionsの、storeフラグをtrueに設定することで、Stored Completionsにデータを保存できます。

import OpenAI from "openai";
const openai = new OpenAI();

const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [
    { role: "system", content: "You are a corporate IT support expert." },
    { role: "user", content: "How can I hide the dock on my Mac?"},
  ],
+  store: true,
  metadata: {
    role: "manager",
    department: "accounting",
    source: "homepage"
  }
});

console.log(response.choices[0]);

これにより、開発者は本番データを使用してデータセットを簡単に構築し、モデルの評価やファインチューニングに利用できます。

3-2. Evals(ベータ版)

プラットフォーム上でカスタム評価を作成・実行し、特定のタスクにおけるモデルのパフォーマンスを測定する機能です。
Stored Completionsのデータや既存のデータセットを使用して評価が可能です。

評価メトリクスは、次の9つの評価指標から選択可能になります。

  1. Factuality:モデルの出力を専門家の回答と比較し、事実に基づいた正確さを評価する指標です。
  2. Semantic similarity:モデルの出力と参照回答の意味的な類似度を測定する指標です。文章の表現や構造が異なっていても、内容の類似性を1(全く異なる)から5(非常に似ている)のスケールで評価します。
  3. Sentiment:モデルの出力に含まれる感情的なトーンを識別し評価する指標です。回答の感情を「ネガティブ」「中立」「ポジティブ」の3段階で分類します。
  4. Contains string:モデルの出力に特定の文字列が含まれているかを確認する指標です。
  5. Valid JSON or XML:モデルの出力が有効なJSONまたはXML形式であるかを検証する指標です。
  6. Matches schema:モデルの出力が指定されたJSONスキーマに準拠しているかを確認する指標です。
  7. Criteria match:モデルの出力が設定された基準に合致しているかを評価する指標です。会話の履歴と回答を考慮し、指定された基準に基づいて出力を判断します。
  8. Text-quality:モデルの出力を参照テキストと比較し、テキストの品質を評価する指標です。Bleu(翻訳の質)、Rouge(要約や翻訳の質)、Cosine(ベクトル空間での類似度)などのアルゴリズムを使用して測定します。
  9. Custom prompt:ユーザーが独自のテスト基準を作成できる柔軟な評価指標です。

実際にサンプルの会話データを作成し、Evalsを使用してgpt-4o-miniの性能を評価してみました。

「Factuality」「Semantic similarity」を使用して、モデルの性能を評価しました。今回は、Factualityを使用すると、Scoreが0%になり、Semantic similarityを使用すると、Scoreが100%になりました。

今回の結果では、適切に評価するために評価指標を調整する必要はありそうですが、Evalsを使用することで、モデルの性能評価が簡単に行えることがわかりました。



3-3. Fine-tuning

Stored Completionsで作成したデータセットをファインチューニングジョブで使用し、Evalsを使用してファインチューンされたモデルの評価を行うことができます。

ファインチューニングのコストについては、GPT-4oとGPT-4o miniモデルは、2024年10月31日までの期間限定で、毎日一定量のトークンまでファインチューニングを無料で行えます。

具体的には、GPT-4oで1日100万トークン、GPT-4o miniで1日200万トークンまでが無料です。この上限を超えた場合、GPT-4oでは100万トークンあたり25ドル、GPT-4o miniでは100万トークンあたり3ドルの通常料金が適用されます。

詳細については、OpenAIの公式の料金ページをご確認ください。
https://openai.com/api/pricing/

Model Distillationの利用方法は以下の通りです。

  1. 蒸留したいモデル(例:GPT-4o mini)のパフォーマンスを測定するための評価メトリクスを設定します。
  2. Stored Completionsを使用して、より高性能なモデル(例:GPT-4o)の出力を含むデータからなる蒸留したデータセットを作成します。
  3. このデータセットを使用して、小規模モデル(GPT-4o mini)をファインチューニングします。
  4. ファインチューニングされたモデルが性能基準を満たしているかどうかを、Evalsを使用して再度テストします。

4. Vision Fine-tuning

Vision Fine-tuningとは、「OpenAIのビジョンモデルを特定のタスクやデータセットに適応させるためのファインチューニング機能」です。

これにより、画像データに対するモデルの性能を向上させ、より高度な画像認識や解析が可能になります。

従来、画像処理タスクでは大量のデータと時間を要するモデルのトレーニングが必要でした。

しかし、Vision Fine-tuningを使用することで、既存の強力なビジョンモデルをベースに、自社のデータセットに合わせて効率的にモデルを微調整することができます。

開発者は、画像とテキストを組み合わせたデータセットを指定されたフォーマットで準備します。

わずか100枚程度の画像でもモデルの性能を向上させることができ、より大規模なデータセットを使用すればさらなる性能向上が期待できます。

内部的には、モデルが画像データをトークン化し、テキストデータと一緒に処理することで、画像の内容を理解し、テキストと組み合わせた高度なタスクを実行することが可能になります。

OpenAI Dev Dayでは、Grab社がVision Fine-tuningを活用して道路標識や車線情報の認識精度を向上させ、車線数の認識精度が20%、速度制限標識の認識が13%向上した事例が印象的でした。

最後に

最後まで読んでくださり、ありがとうございました!
この記事を通して、少しでもあなたの学びに役立てば幸いです!

おまけ①:Raggle

RAGの精度改善に挑戦しませんか?

Raggleにて、「法務RAGシステムの性能改善ハッカソン」を開催中です!(10月20日に募集締切)

Raggleは、RAGの性能改善技術を競い合い、AIエンジニアのスキルアップを支援するプラットフォームです🥇

優勝者(GOLD🥇)の賞金は、なんと30万円!!!

SILVERは10万円、BRONZEでも5万円の賞金を用意しています!

また、参加賞として、大会終了後に「RAG精度改善ハンドブック」を贈呈予定なため、初学者の方もぜひ挑戦してみてください 🔰

みなさん、奮ってご参加ください🔥

※ 生成AIエンジニアの権利を守るため、投稿されたソースコードの著作権は、投稿者に帰属する規約としているため、その点もご安心ください◎

▼ エントリーはこちら ▼
https://raggle.jp/competition/29676d73-5675-4278-b1a6-d4a9fdd0a0ba

おまけ②:書籍出版のお知らせ

ついに『AIとコミュニケーションする技術(インプレス出版)』という書籍の事前予約が始まりました🎉

これからの未来において「変わらない知識」を見極めて、生成AIの業界において、読まれ続ける「バイブル」となる本をまとめ上げました。

かなり自信のある一冊なため、もしもよろしければ、ご一読いただけますと幸いです^^

▼ Amazonの事前予約はこちらから ▼
https://amzn.to/3ME8mLF

おまけ③:生成AIアカデミー

より専門的な「生成AIエンジニア人材」を目指しませんか?

そんな方々に向けて、「生成AIアカデミー(旧:生成AIエンジニア塾)」というプログラムを始めました🎉

最終的なゴールとして、『エンタープライズ向けの生成AIシステムを構築するためのスキルを習得し、大手案件で活躍できる人材』を目標とします。

また、一人一人にしっかりと向き合って、メンタリングをできるようにするため、現在メンバーの人数制限をしております。本気度やスキルレベルの高い人から、順番にご案内しております。

▼ 登録はこちらから ▼
https://bit.ly/generative_ai_engineer_school_by_zenn

おまけ④:AI Newsletter for Biz

最新のAIニュースの情報を収集しませんか?

AI Newsltter for Bizは、ビジネスパーソン向けに「AIニュース」を定期配信する完全無料のニュースレターです📩

一人でも多くの方にとって、「AI人材としてのスキルアップ」につながれば幸いです^^

また、現在、登録者限定で「明日から使える 無料AIサービス3選」のPDFを配布中です 🎁
※ ご登録完了のメールに、PDFリンクを添付いたします。

▼ 登録はこちらから ▼
https://bit.ly/ai_newsletter_for_biz_zenn

おまけ⑤:生成AIの仕事をしたい仲間を募集中 🤝

弊社Galirageでは常に、40-50件ほどの生成AI案件が走っております。

そして、ほとんどが「生成AIの案件(RAGシステム開発 / 精度改善の研究開発など)」の仕事になります!

かなり人手が不足しており、以下のポジションの仲間を募集しています💪

  • RAGエンジニア(RAG / LangChain / Python)
  • バックエンドエンジニア(Python / FastAPI)
  • フロントエンジニア(Next.js / TypeScript)
  • Azureエンジニア(AOAI / AI Search)
  • UI/UXデザイナー
  • 生成AIリサーチャー(研究開発 / 論文執筆)
  • 生成AIコンサルタント
  • PM / PMO

ご興味がある方は、下記のフォームよりお気軽にご連絡ください!

https://forms.gle/XMd19irZU4Fi7VAQ9

採用基準は下記の通りです。
  • 平日の日中に動ける方だと嬉しいですが、週8時間くらいの副業でもOKです!
  • 開始時期は、直近だと嬉しいですが、遠い未来でもOKです!まずはカジュアルに話しましょう😊
  • 年齢は不問です!現状は、平均年齢は30歳前後の会社です!
  • 「スキルセット」よりも「カルチャーマッチ・仕事への姿勢・ものづくりへのワクワク」を重視します。
    • 10月には新しく10名採用しました。
    • その内、エンジニア経験が3年未満の方は、4名いました。
    • スキルについては、ジョインした後に、必要に応じて、キャッチアップする時間を作ります。
    • 弊社は、正社員7名、業務委託80名の組織で構成されており、業務委託の仲間に支えられているため、正社員と業務委託の間にあまり差をつけていません。
    • 契約形態に関わらず、一緒に働く仲間として受け入れたその日から、大切な仲間です!
    • 新卒や転職の正社員採用もしていますが、業務委託での仕事を通して、お互いにWin-Winだと判断できた方のみを採用しています。
    • 私自身、フリーランスを5年間やっていたため、個人事業主と正社員のメリデメは両方の立場から理解しています。
  • 人手不足ではあるものの、採用基準をかなり厳しくしています。目の前の売上よりも、カルチャーのマッチする人だけを入れることにこだわっています。
  • ちなみに、弊社のリーダーを紹介したプロフィールページはこちらです!
    • Galirageに、本当に素敵な方が多いことは、保証します!

参考文献

https://openai.com/devday/

https://openai.com/index/introducing-the-realtime-api/

https://openai.com/index/introducing-vision-to-the-fine-tuning-api/

https://openai.com/index/api-prompt-caching/

https://openai.com/index/api-model-distillation/

https://zenn.dev/umi_mori/books/chatbot-chatgpt

Discussion