はじめに
こんにちは、クラウド事業部の伊藤です!
弊社には「APアカデミー」という技術系やビジネス系の社内研修が用意されています。
今日、入社後初めてのAPアカデミー「生成AIアプリ開発で学ぶAzure入門研修」を受講しました。 弊社で各社クラウド等の様々な環境で生成AIを扱うプロジェクトが増えていることもあり、経験が浅いAzureへの抵抗感や苦手意識を少しでも減らすことが目的でした。
この記事では、受講したAPアカデミーの概要や、個人的な感想をまとめます。
受講したAPアカデミーの内容
主な内容は以下の通り、前半は座学、後半はハンズオン形式でした。
- RAGの基礎知識
- RAGとは何か
- データの処理内容
- 検索精度の改善手法
- RAGを構成するサービスを理解する
- RAGを構成するAzureサービスの全体像
- 各Azureサービスの特徴
- RAGを体験する
- ハンズオン形式でRAGの仕組みを体験
受講形式はオンライン、講師は日頃から実務に従事している弊社社員です。
感想
受講した感想です。
RAGの必要性
私が携わった生成AIプロジェクトでは全てRAGが採用されています。
一方で、なぜRAGを導入するのか、RAGの有無でどういったメリデメがあるのかを改めて整理するきっかけになりました。
RAGがなかった時はAIが知り得る情報から推測しかできない(=確かな回答にはならない)
- 未公開・社内データに対応できない
- AIは社内の非公開情報は一切持っていない
- ナレッジカットオフがある
- モデルの学習が終了後の最新情報やリアルタイムな改定内容を反映できない
- ハルシネーション(誤情報)のリスク
- 根拠のない、もっともらしい嘘を流暢に回答してしてしまうことがある
RAGを使用することで外部から情報を注入し、より正確な回答が望める。
また、適切にアクセス制御された情報を注入できる。
- 最新情報や社内文書などの追加情報の参照
- 参照した文章を明示することで正確性と根拠の担保
- システムによる情報への適切なアクセス権限の制御
講師の説明を聞いている中で、資料をRAGで参照することによって、ユーザー側は毎回資料を添付しなくても良いため利便性が上がり、システム提供側は適切な権限で資料を参照させることが出来る点はメリットだと気づきました。
検索精度改善と前処理
RAGの検索精度改善と言われても何をすれば良いかイメージ湧かなかったのですが、本研修では以下の手法が説明されていました。
まずは検索手法の最適化
代表的な検索手法が3種類あり、それぞれに強み、弱みがあるようです。
- キーワード検索
- 固有名詞、専門用語の「完全一致」に強い
- 表記ゆれ、ニュアンスの「意味類推」に弱い
- ベクトル検索
- 表記ゆれ、ニュアンスの「意味類推」に強い
- 固有名詞や専門用語の「完全一致」に弱い
- ハイブリッド検索
- キーワードとベクトル検索を組み合わせお互いの弱点を補う
- 現状のスタンダードである一方、実装難易度が高い
製品リストの型番検索には完全一致に強いキーワード検索、議事録などには意味類推に強いベクトル検索といった「データや目的に合わせた検索手法の選定」が最適化への第一歩だと聞いていて思いました。
前処理の改善
途中で精度改善の事例を紹介して頂いたのですが、検索手法の最適化は比較的簡単に行える一方で、大幅な精度改善には一歩踏み込んだチューニングをする必要があると記述がありました。
例えば、前処理で実施されるようなノイズ除去、適切なサイズへの分割、適切なベクトル化です。
- テキスト抽出・クリーニング
- PDFやOffice文書から文字を取り出し、不要な装飾やノイズを除去する
- チャンク分割(Chunking)
- 長文のテキストを「意味のまとまり」ごとに適切なサイズに裁断する
- Embedding & Vector DB格納
- テキストベクトルに変換し、検索用データベースに保存する
- 例:夏季休暇、夏休み、お盆休み 等が近い意味として保存される
- テキストベクトルに変換し、検索用データベースに保存する
これらを適切にチューニングするにはRAG実装の知識だけでなく、データの特性を捉えてデータを扱う知識も必要です。
また、AIのもっともらしい回答を評価するためにも、回答が正しいか判断するドメイン知識も必要で、いかに精度評価が難しいか改めて感じた内容でした。
RAGを支えるAzureサービス
Azureサービスの知識が浅かったのですが、一つずつサービスの特徴を教えて頂いたので何とか理解出来たと思います。
コアサービス
RAGを実現するコアサービスは以下のようです。
- Azure AI Search
- 文章をインデックスへ登録、検索をする
- 検索結果をAzure OpenAIへ渡す
- Azure OpenAI
- モデル(Embedding、チャット)を管理する
- Azure AI Searchの検索結果を元に回答する
- Azure Storage Account
- RAGに登録する文章を格納するデータソース
- App Service
- Web画面の表示
- Azure AI Searchを用いた検索の実行
セキュリティ、ガバナンス
そして、セキュリティやガバナンスとして、以下のサービスでアクセス制御を実現しているようです。
- Entra ID
- RAGを利用するユーザーの本人確認、ログイン制御
- セキュリティグループ
- ユーザーを部署単位、プロジェクト単位で管理する
- ユーザーが属するグループに応じた文章検索が可能になる
- Cosmos DB
- セキュリティグループ等を登録し、文章のアクセス権限を管理する
ハンズオンを通して簡単に実施してみましたが、セキュリティやガバナンスにはもう一段階、理解を広げる必要がありそうです。
一方で、各サービスの名称や概要、処理の流れを学べたことで、理解を深める取っ掛かりになったと感じました。
終わりに
独学やAIと勉強をするのも良いですが、ハンズオン研修という形で体験したり、講師から直接解説して頂いたおかげで抵抗感や苦手意識が減り、良い時間だったと感じました。
私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。
また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。