先日、こちらのウェビナーの講師を務めさせていただきました。
Gen AI in Action : 初めてのLLMアプリ作成 & LLMアプリの本番稼働を加速
このバーチャル・ワークショップに参加し、LLMのアイデアを構築し、反復し、磨き上げて、本番で使えるソリューションに仕上げる方法を学びましょう。
このバーチャル・ワークショップは、様々なユースケースにLLMを使用しようとしているデータ実務家に適しています。Gen AIを初めて学ぶ方にも、スキルを磨きたい方にも最適なイベントです。(本セッションは2時間を予定しています)
- パート1:最初のLLMアプリを作る
- LLMテクノロジー入門: LLMがどのように機能し、どのような用途に使われる可能性があるのかを概観します。
- LLMの使い方
- 最初のRAG(Retrieval Augmented Generation)アプリの構築
- パート2:LLMアプリを本番環境に加速する
- 評価の構築
- アプリのプロダクション化
後日オンデマンド視聴できるようになりますが、こちらに簡単にダイジェストをまとめます。
セッションで使用したノートブック
関連ノートブック含め、こちらのリポジトリに格納しています。
- Part 1: 初めてのLLMアプリ開発
- 環境のセットアップ
- Lab 1: プロンプト
- Lab 2: VectorDBの操作
- Lab 3: 全てを組み立てる
- Part 2: LLMアプリの本番稼働を加速
Part 1: 初めてのLLMアプリ開発
Databricksでは、生成AIを含むデータサイエンスやAIのための機能セットであるMosaic AIを提供しています。
生成AIとは、コンテンツの生成にフォーカスしたAIのサブ領域です。
生成AIは、世界に存在する様々なメディアをベクトルに変換して取り扱います。
テキストの場合、英語や日本語をトークンに、そして、ベクトルに変換します。
このような生成AIを活用したLLMアプリケーションで活用が進んでいるのは、RAG(Retrieval Augumented Generation)です。以下のRAGの構成要素を見ていきましょう。
- モデル
- ベクトルストア
- オーケストレーター
ここで、Lab 1: プロンプトのデモを行いました。
詳細はこちらをご覧ください。
LLMの選択
LLMにはオープンソースのものとプロプライエタリのものが存在しますが、それぞれの長所短所があります。要件に応じて適材適所で選択することが重要です。
モデルに知識を追加
事前学習済みモデルは一般的な知識を豊富に有していますが、例えばあなたのビジネスの詳細を理解しているわけではありません。自分でファインチューニングや事前トレーニングを行うことも可能ですが、膨大なコストや専門知識が必要となります。プロンプトエンジニアリングで工夫しようとしても、プロンプト長の制限に直面することになります。結果として、手軽に専門知識をLLMに埋め込むことができる、ベクトルストアを用いたRAGが人気を得ることになりました。
ベクトルストアに文書を取り込む際には、生のテキストからチャンク(塊)の作成(チャンキング)、エンべディングの生成、検索インデックスの作成という手順を踏みます。
ここで、以下のノートブックを通じて、Mosaic AI Vector Searchのデモを行いました。
まとめましょう
モデル、ベクトルストアと連携した一連のRAGの流れをまとめ上げるのがオーケストレーター/チェーンです。
こちらで、Lab 3: 全てを組み立てるを用いて基本的なRAGのデモを行いました。
どのようにアプリを評価するのか? - モデル
現時点ではモデルの評価手法は、こちらにあるように主観的なものが多数を占めています。ご自身のユースケースに適した指標による評価を行うべきです。
どのようにアプリを評価するのか? - 完全なRAG
RAGのプロセス全体に対する評価が必要です。
代表的な質問を手動あるいは自動で準備し、RAGを困らせるような質問も含めるべきです。パワーユーザーを巻き込みましょう。
ファインチューニングは?
良し悪しがありますので、ここでも適材適所の考え方が重要です。また、排他的なものではないので組み合わせることも視野に入れましょう。
Part 2: LLMアプリの本番稼働を加速
DBRX
DatabricksのLLM、DBRXのご紹介をさせていただきました。
評価のディープダイブ
RAGの構成要素それぞれに対して評価を行います。
どのように質問を準備したらいいのか?
こちらの論文で説明されている手法をご紹介しました。質問の生成もLLMにやってもらいます。
RAGアーキテクチャの評価方法
Ragasアプローチを紹介させていただきました。
適切性や解答の正しさの判定方法
LLM-as-a-Judgeを説明させていただきました。
ここで、クイックデモ - Notebook 1.1を用いてLLM-as-a-Judgeのデモを行いました。
高度なチャンキング
テキストのチャンキングのアプローチは複数存在します。素朴なものはセクションや文字数による分割、高度なものではチャンキングにレイアウトモデルを活用します。
ここで、クイックデモ - Notebook 1.2を用いたチャンキングのデモを行いました。
高度な収集
ベクトルデータベース以外にも、グラフ検索やハイブリッド検索を用いるアプローチが存在しています。
ベクトルの類似検索の結果をビジネスロジックに基づいて並び替えるリランクの活用も進んでいます。
オーケストレーターの構築
RAGに続いて、モデルに様々なツールを使用させるエージェントの活用も増えてきています。
ここで、高度なロジックのウォークスルー - Notebook 1.4を用いて、リランクやチャット履歴を活用したRAGをウォークスルーしました。
モデルの不具合
このように、生成AIモデルが様々なアプリケーションでどんどん活用されるようになってきていますが、モデルに不具合が起きたらどうすればいいのでしょうか?
幻覚(ハルシネーション)を含む、モデルの問題のある挙動を説明させていただき、対策法も触れさせていただきました。