Microsoft Ignite 2024 レポート2: Microsoftの最新機能を効率よく学べるLab

# はじめに
2024年11月にアメリカのシカゴで開催のMicrosoft Ignite 2024に、初めて現地参加してきました！前回の記事では、Igniteメイン会議前日の11/18 (Pre-day)のセッションを紹介しました。

https://qiita.com/melrhase/items/f2343449c197710c2165

今回はレポート第二弾として、Microsoftエンジニアからレクチャーを受けながらMicrosoft最新機能をハンズオンできる **Lab** というスタイルのセッションを紹介します。
Labは現地参加限定のセッションなので、次回以降に現地参加する方々の参考になればと思います（次回もLabがあるかは不明です）。

※同じくIgnite 2024に現地参加した弊社同僚の以下の記事もぜひご覧ください！

https://qiita.com/melksg/items/2b068ebae4da071eb35c

# Labとは？
## 概要
Labでは、会場に用意されているPCを使って、テーマに沿ったハンズオンを行えます。ハンズオンの合間に、Microsoftエンジニアによる解説のプレゼンが入ることもあります。対面限定のイベントであり、レコーディングされません。

メインで解説しているエンジニアに加え、サポートに入ってくれるエンジニアの方々もいるので、ハンズオン途中で不明点が出てきたら挙手して、サポートの方々に直接聞くことができます。

:::note info
基本的にはLabの参加には予約（RSVP）が必要です。特にAI系などのLabは人気で、比較的早く予約が埋まるようなので、セッション一覧が公開されたらなるべく早く予約しましょう。
:::

ちなみに、同じタイトルのLabが別日で複数回開催されているものもありました。予約が一杯でも、同じLabが別日に行われていないかチェックすると良さそうです。なお、参加者が数名しかいないLabもあり、Lab間で差が大きかったです。

## Lab会場の環境
下図のように、Labの参加者それぞれがノートPCとモニターを使えます。席には電源タップもありました。自分のノートPCでメモをとる場合などに便利かと思います。ちなみに自分のノートPCではハンズオンはできません。

![Labの会議室](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3850264/df4383a4-e0f1-d9ae-4f96-01dfe3cd0bbc.jpeg)

講師によるレクチャーがある場合、上図の前方に配置されたスクリーンにスライドが投影されます。

Labで操作する基本的なアプリケーションは下図のように、画面左側にPC操作できる部分、画面右側にLab概要や操作手順などが書かれたテキストが表示されます。

![手元の環境](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3850264/3fad63e5-c921-6783-c645-ade56dfadd15.jpeg)

:::note warn
各位に割り当てられているモニターおよびノートPCには、前方スクリーンと同じスライドは投影されません。後ろの席に座ると前方スクリーンが見づらくなるので、なるべく前方に座った方が良いと思います。
:::

# セッション紹介
今回は、Labの雰囲気をつかんでもらえるよう、聴講した2つのLabの内容を紹介します。

## Unlock AI potential with fine-tuning strategies for SLMs and LLMs
Azure AI Foundryを使って、モデルをFine-tuningするLabでした。Fine-tuningは、例えばGPT-4oのような学習済みモデルに対し、自分のデータを使って追加の学習をして、自分のデータに特化したモデルにするアプローチです。

操作の合間のレクチャーで、以下のような図を使ってPrompt Engineering、RAG (Retrieval Augmented Generation)、Fine Tuning、Custom Modelの使い分けが説明されており、とても分かりやすかったです。Fine-tuningは、汎用性をかなり失うしそこまで頻繁には採用しないが、特定のタスクに特化させたいときに有効とのことです。
![モデルカスタマイズの階層](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3850264/f7bbdd6c-0c96-95f1-350b-38086c2aa469.jpeg)

ハンズオンでは、GPT-3.5 turboをベースモデルとして、想定している旅行関連の質問に答えられるようにFine-tuningするものでした。追加の学習データとしては、ハンズオン用に作られたプロンプト・レスポンスの組(10個程度)を使いました。デモ用なので10個でしたが、本来のFine-tuningのデータはもっと多いだろうとのことです。

Fine-tuningに関わる操作自体はとてもわかりやすかったのですが、学習にかなりの時間がかかり、結局Labの時間切れになり、自分でFine-tuningしたモデルであまり遊べませんでした...。

講師が参加者全体に見せてくれたデモ(参加者と同じ手順で構築)にて、Fine-tuning後のモデルの回答は、情報や口調がベースモデルとは異なっており、Fine-tuningがうまく行われたこと自体は確認できましたが。

ちなみに、当日の朝のKeynoteにてAzure AI Foundryが発表され、操作画面もAzure AI StudioからAzure AI Foundryポータルに変わりました。その際、Labで用意していた手順も一部変更が必要になったようで、当日になって手順を修正したようです。準備する側も大変ですね...。

## Build an agent with your enterprise knowledge in Copilot Studio
Copilot Studioを使って、Teamsに搭載するAIエージェントを作成するLabでした。架空の企業のデータを入力として使いましたが、Microsoft PowerPlatformにおけるデータ保存・管理機能であるDataverseを使いました。

DataverseとTeamsについては、会社によってはライセンスやセキュリティポリシーの関係で自由に操作できない場合もあるので、こういう機会に触れるのはLabのメリットと思いました。

ハンズオンの内容としては、架空の企業の会計に関するドキュメント(PDF)をDataverseにアップして、その内容に関する質問に答えるAIエージェントを構築するものです。

いわゆるノーコード開発だと思いますが、ブラウザでポチポチするだけで独自ファイル追加含め簡単に設定でき、AIエージェントを構築できます。「Knowledge」として独自ファイルを追加した様子が以下です。

![Copilot Studioの画面の一例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3850264/b1d5e2ec-168b-e216-44ca-985708e91ae4.jpeg)

面白かったのは、このCopilot Studioでは「専門用語」を定義してAIに教えることができ、例えば今回は会計用語として「POC」という略語を「Point of Contract」と定義してあります。

最終的には、以下のようにTeamsのチャットボットの形でAIエージェントが使えるようになりました。 設定した通り、AIエージェントが「POC」の定義を認識したうえで回答してくれていますね。

![Copilot Studioで作成したTeams Bot](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3850264/57bcd2db-c2fb-bdae-6741-eacc57caad8a.jpeg)

# Labを受けてみて
いくつか、今後Igniteに現地参加される方々向けに、Labの感想を書き残します。

## 新しいサービスを手っ取り早く学べる
クラウドは、サービスを実際に触って動かしてみないと理解できないとよく言われると思います。一方で、チュートリアルをするにはツール環境構築などの事前準備が必要だったり、手順通りやったのにハマってしまい時間を浪費したりなど、意外と時間がかかることがあります。（それ自体が大事な経験でもありますが）

Labはその観点でいけば、Microsoft側が用意した環境を、決まった手順で進めていき、疑問点はその場でMicrosoftのエンジニアに聞ける機会なので、知らなかったサービスに入門するにはとても良いセッションだと思いました。

Labのセッションを検索しているときに初めて知ったサービスもあったので、その意味でもLabは良い機会かと思います。

先述しましたが、会社のポリシーで使えない・使いにくいサービスも、Labの場では気軽に触れる点も良い点ですね。

## Breakout Sessionsとの内容が重複している
Labは対面限定なので、バーチャル参加の場合は体験できないので、現地参加組ならではの選択肢になります。しかし、講義形式で後日オンライン配信もある「Breakout Sessions」でも、扱われるテーマ自体は同様のセッションが存在することが多いです。

また、私が参加した限りでは、Labではサービスの最新アップデートは紹介されないので、その点を中心に知りたい場合はLabよりもBreakout Sessionsに出た方がよさそうです。

## リソース構築の待ち時間が長い
講師が「このハンズオンで一番時間がかかるのはリソース構築です」と言うくらい、リソース構築に伴う待ち時間が比較的長かったです。

講師の人たちがリソース自動構築のスクリプトを用意してくれているので、一度コマンドを打って放置していればリソースは勝手に作られます。ただ、そこに10分や15分も必要な場合があるのは予想外でした。

今回紹介したLabは待ち時間にレクチャーするなど工夫していましたが、そうでないLabもあったので、Labでも自分のPCを広げておいた方が良いケースはあります。

## 内容の質がLabごとに異なる
扱うサービスも講師も違うので仕方ないですが、Labごとに内容がかなり違うように思いました。

良いなと思ったLabは、途中でハンズオン内容振り返りと関連するレクチャーも挟みながら進んでいくもので、実際に周辺知識含めて理解しながら進められました。

Labによっては、画面に表示されている手順を単に実行するだけなので、すぐに終わり早々に退出している参加者がちらほら出ていました。人によっては、このほうが時間が節約できてよいと感じるかもしれません。

実際にLabに行ってみないとわからないのですが、個人的には後者の場合、帰国後にチュートリアルをやれば良いのではないかな...と思ってしまいました。

# おわりに
今回はIgnite 2024 現地参加レポートの第二弾として、対面参加限定のハンズオンセッションであるLabについて紹介しました。

来年以降も同じ形態になるかはわかりませんが、今後Igniteに参加する方々の参考になれば幸いです。

次回は、Igniteの対面参加組に一番おすすめの空間であるHub、およびCommunityについて紹介できればと思います。