論文紹介 part12 :"The Ultimate Guide to Fine-Tuning LLMs from Basics to Breakthroughs: An Exhaustive Review of Technologies, Research, Best Practices, Applied Research Challenges and Opportunities"を読む
はじめに
今回も同様に以下の論文を読んでいきます。
論文名:The Ultimate Guide to Fine-Tuning LLMs from Basics to Breakthroughs: An Exhaustive Review of Technologies, Research, Best Practices, Applied Research Challenges and Opportunities
著者:Venkatesh Balavadhani Parthasarathy, Ahtsham Zafar, Aafaq Khan, and Arsalan Shahid
今回も10章のIndustrial Fine-Tuning Platforms and Frameworks for LLMsをみていきます。各社のファインチューニングの敷居を下げるためのさまざまな施策を紹介しています。後半として10.4から見ていきます。
10.4 Amazon SageMaker JumpStart
Amazon SageMaker JumpStartは、大規模言語モデル(LLMs)の微調整を簡素化し迅速化するために設計されたSageMakerエコシステム内の機能
利用者に多様な事前構築モデルとソリューションのライブラリを提供し、これらを素早くカスタマイズして様々なユースケースに適用可能
本ツールは、機械学習の専門知識が限られている組織や、LLMsを一から訓練するのに必要な膨大な計算リソースを用意できない組織にとって特に有用
図10.2に示されるアーキテクチャは、AWSのサービスを活用した大規模言語モデル(LLMs)の微調整およびデプロイのための包括的なパイプラインを示している
10.4.1 JumpStartを利用する際の手順
データ準備および前処理:
データストレージ: 生データセットをAWSのスケーラブルなオブジェクトストレージサービスであるAmazon S3に安全に保存
前処理: EMR ServerlessフレームワークとApache Sparkを利用し、効率的にデータを前処理。この段階では、生データをモデルの訓練および評価に向けて精査および準備する
データ整備: 前処理が完了したデータセットを再びAmazon S3に保存し、次のステージに向けて利用可能な状態にする
SageMaker JumpStartを用いたモデル微調整:
モデル選択: SageMaker JumpStartの広範なライブラリから、感情分析、文章生成、カスタマーサポート自動化といったタスク向けに調整された事前構築モデルおよびソリューションを選択する
微調整の実行: Amazon SageMakerの機能をSageMaker JumpStartと統合し、選択したモデルを微調整する。このプロセスでは、モデルのパフォーマンスを特定のユースケースに最適化するためにパラメータと設定を調整する。
ワークフローの簡素化: SageMaker JumpStartが提供する事前構築アルゴリズムおよびモデルテンプレートを活用し、微調整ワークフローを効率化する。これにより、展開に要する時間と労力を削減する。
モデルのデプロイとホスティング:
モデルをAmazon SageMakerエンドポイントとして展開し、アプリケーションやシステムに統合することで、リアルタイム推論が可能となる。
10.4.2 JumpStartを使用する際のベストプラクティス
堅牢なデータ管理: Amazon S3での安全かつ整理されたデータ保存方法を維持し、パイプライン全体での効率的なデータアクセスと管理を実現
費用対効果の高い処理: EMR ServerlessおよびApache Sparkのようなサーバーレスコンピューティングフレームワークを利用して、コスト効率の良いスケーラブルなデータ前処理を行う
最適化された微調整: SageMaker JumpStartの事前構築モデルやアルゴリズムを活用することで、微調整プロセスを迅速化および最適化し、大規模な手動設定を必要とせずに最高のモデル性能を達成
継続的な監視と最適化: 展開後にモデル性能を追跡するための強力な監視メカニズムを実装することで、時間経過に伴う調整や最適化を適時行えるようにする
AWSサービスとの統合: AWSが提供する包括的なサービス群や統合機能を活用し、多様な運用環境における大規模言語モデルの信頼性が高くスケーラブルな展開を実現するエンドツーエンドのパイプラインを構築する
10.4.3 JumpStartを使用する際の制限事項
カスタマイズ性の制限: JumpStartは一般的なユースケースに対応するプロセスを簡略化する一方で、提供されるテンプレートやワークフローを超えた大規模なカスタマイズを必要とする非常に特殊な応用には対応しづらい場合がある
AWSエコシステムへの依存: JumpStartはAWSサービスに密接に統合されているため、マルチクラウド環境での運用やAWS外の既存インフラを利用する必要がある場合、課題を抱える可能性がある
リソースコスト: 特に大規模モデルを微調整する際には、SageMakerのスケーラブルなリソースを利用するため、相当なコストが発生する可能性がある。これは、小規模な組織や予算が限られている場合には障壁となりうる
10.4.4 チュートリアル
10.5 Amazon Bedrock
Amazon Bedrockは、AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI、Amazonといった主要なAI開発者が提供する高性能なファウンデーションモデル(FMs)へのアクセスを簡素化するために設計されたフルマネージドサービス
統一されたAPIを通じてこれらのモデルを統合し、安全でプライベート、かつ責任ある生成AIアプリケーションの開発を支援する
ユーザーは、Amazon Bedrockを用いて、ニーズに合わせた最適なファウンデーションモデルを手軽に試し、評価することが可能
さらに、微調整やRetrieval Augmented Generation(RAG)を通じたモデルのプライベートなカスタマイズをサポートしており、企業データやシステムを活用したインテリジェントエージェントの作成が可能
Bedrockのサーバーレスアーキテクチャは、迅速な展開とシームレスな統合を可能にし、AWSのツールを活用することで、インフラ管理の負担を軽減しながら、効率的かつ安全にモデルをアプリケーションに導入することができる
10.5.1 Amazon Bedrockの使用手順
Amazon Bedrockは、LLMsの展開や微調整のための効率的なワークフローを提供し、企業が高度なAI機能を迅速に運用に統合するのに適している。以下はBedrockの運用手順の概要である:
モデル選択:
ユーザーは、Bedrockを通じて利用可能なファウンデーションモデルの中から選択を行う。これには、AWSのAmazon TitanやAnthropic Claude、Stability AIといった外部プロバイダーのモデルが含まれる微調整:
モデルを選択した後、特定のニーズに合わせてモデルを微調整する
これには、ドメイン特有のデータやタスク特化型の指示をモデルに与えることで、出力を調整するプロセスが含まれる
微調整はシンプルなAPIコールを通じて行われるため、複雑な設定や詳細な構成を必要としない
ユーザーはカスタムデータを提供するだけで、Bedrockがバックグラウンドで訓練プロセスを管理する
デプロイ:
微調整後、Bedrockはスケーラブルかつ効率的な形でモデルのデプロイを行う
これにより、微調整済みモデルを迅速にアプリケーションやサービスに統合可能
Bedrockは需要に応じてモデルがスケールするようにし、性能最適化を管理することで、シームレスなユーザー体験を提供する
統合および監視:
Bedrockは他のAWSサービスとの統合をスムーズに行い、既存のAWSエコシステム内にAI機能を直接埋め込むことができる
AWSの包括的な監視ツールを通じて、デプロイ済みモデルの性能を監視・管理することで、モデルが最適に動作し続けるようにする
10.5.2 Amazon Bedrockの制限
Amazon Bedrockは特定のAI課題に対応するための堅実なツール群とサービスを提供するが、全てのAIニーズに対応する包括的なソリューションではない
一つの主な制限は、人間の専門知識を完全に不要にするものではないという点である
Bedrockが提供するモデルを効果的に開発、微調整、最適化するためには、AI技術の複雑さを理解している熟練したプロフェッショナルが必要である
また、Amazon Bedrockは独立したサービスとして機能するように設計されているわけではなく、Amazon S3(データストレージ用)、AWS Lambda(サーバーレスコンピューティング用)、AWS SageMaker(機械学習モデル開発用)などの他のAWSサービスとの統合が前提となっている
そのため、Amazon Bedrockを活用する企業は、これらの補完的なAWSサービスも利用する必要があり、AWSに不慣れなユーザーにとっては学習コストが高くなる可能性がある
このように、Amazon BedrockはAWSエコシステム内のAI能力を強化する一方で、AWSに新たに取り組むユーザーにとっては急な学習曲線や相応のインフラ管理を要求する場合がある
10.5.3 チュートリアル
10.6 OpenAI’s Fine-Tuning API
OpenAIのFine-Tuning APIは、特定のタスクや分野に対応したカスタマイズを可能にする包括的なプラットフォーム
個人開発者から企業に至る幅広いユーザー層が、高度なAIを活用できるように設計されており、モデルの訓練や展開に伴う複雑さを軽減している
10.6.1 OpenAIのFine-Tuning APIを利用する手順
モデル選択
事前学習済みモデルの選定: ユーザーはまず、OpenAIが提供する幅広いモデルラインアップからベースモデルを選択する。GPT-4などの強力なモデルは、多様な言語処理タスクの堅牢な出発点を提供する
カスタマイズ可能なベース: これらのモデルは膨大なデータで事前学習されており、特定のニーズに合わせてさらに改良できる堅固な基盤を提供する
データ準備とアップロード
関連データの収集: モデルを特定のタスクやドメインに適応させるためのデータセットを収集し準備する必要がある。このデータは、モデルが求められる機能をより効果的に発揮するために重要である
データをAPIにアップロード: Fine-Tuning APIを利用すればデータアップロードも簡単である。ユーザーは簡単なコマンドを使ってデータセットをAPIに提供できるため、技術的な知識が少ない場合でも利用しやすい
微調整の開始
自動化されたプロセス: データのアップロードが完了すると、OpenAIのインフラが微調整プロセスを処理する。APIは新しいデータに基づいてモデルのパラメータを調整し、指定されたタスクにおける性能を向上させる
微調整モデルの展開
API統合: 微調整済みモデルはOpenAIのAPIを通じてアクセスおよび展開が可能である。これにより、チャットボット、自動コンテンツ生成ツール、または特定のカスタマーサービスシステムなど、多様なアプリケーションへの統合が容易となる
10.6.2 OpenAIのFine-Tuning APIの制限
料金モデル: OpenAIのモデルをAPI経由で微調整および使用するにはコストがかかる。特に大規模な導入や継続的な利用では、その費用が小規模な組織や予算の限られたプロジェクトにとって大きな障害となる可能性がある
データプライバシーとセキュリティ: 微調整プロセスのためにユーザーはデータをOpenAIのサーバーにアップロードする必要がある。このため、機密情報や独自情報のセキュリティに関する懸念が生じる可能性がある。
OpenAIインフラへの依存: モデルホスティングおよびAPIアクセスにおいてOpenAIのインフラに依存するため、ベンダーロックインが発生する可能性がある。これにより、展開環境の柔軟性や管理性が制限される場合がある。
訓練プロセスに対する制御の限定: 微調整プロセスは主に自動化されており、OpenAIによって管理される。そのため、モデルに施される具体的な調整に関する可視性や制御が限られる。
10.6.3 チュートリアル
10.7 NVIDIA NeMo Customizer
NVIDIA NeMo Customizerは、NVIDIAが開発したNeMoフレームワークの一部であり、LLM(大規模言語モデル)の開発や微調整を促進するためのツールおよびモデル群を提供している
Customiserは特に、LLMを専門タスクや特定の分野向けに微調整しやすくすることを目指している
他の微調整ツールと同様に、事前学習済みモデルを特定の用途に適応させることを希望するユーザー、例えば会話型AI、翻訳、分野特化型のテキスト生成などのためのツールとして設計されている
NeMo Customizerは、正確なデータキュレーション、広範なカスタマイズオプション、RAG(Retrieval-Augmented Generation)、およびパフォーマンスの向上を通じて、エンタープライズ向けモデルを提供する
さらに、このプラットフォームは、クラウド、データセンター、エッジロケーションを含む多様な環境で生成AIモデルのトレーニングおよびデプロイをサポートする
また、NVIDIA AI Enterpriseの一環として、サポート、セキュリティ、および信頼性の高いAPIも提供している
10.7.1 NVIDIA NeMoの主な機能
NVIDIA NeMoは、AIプロジェクトを強化するためにいくつかの際立った機能を備えている
最先端のトレーニング技術: NeMoは、NeMo CuratorのようなGPU加速ツールを使用して、大規模で高品質なデータセットを準備する。これらのツールにより、何千もの計算コアを活用して生成AIモデルを効率的に事前学習し、トレーニング時間を大幅に短縮しつつ、大規模言語モデル(LLM)の精度を向上させる
LLMの高度なカスタマイズ: NeMo Customiserマイクロサービスは、特定の分野に合わせたLLMの精密な微調整とアラインメントを可能にする。これにより、トレーニングを高速化し、複数のGPUやノードにわたるスケーリングをサポートすることで、より大きなモデルの微調整が可能になる
NVIDIA TritonによるAI推論の最適化: NeMoにはNVIDIA Triton Inference Serverが統合されており、大規模なAI推論を簡略化する。この統合により、生成AI推論が加速され、オンプレミスおよびクラウドでのAIアプリケーション展開を自信を持って行えるようになる
生成AI向けの使いやすいツール: NeMoは、データ処理から展開までを包括するモジュラーで再利用可能なアーキテクチャを特徴としている。音声認識(ASR)、自然言語処理(NLP)、テキスト読み上げ(TTS)のための事前学習済みモデルを含み、それらを微調整したり、そのまま利用したりできる
最高クラスの事前学習モデル: NeMo Collectionsは、多様な事前学習モデルおよびトレーニングスクリプトを提供し、特定のタスクのために迅速なアプリケーション開発または微調整を可能にする。現在、NeMoはLlama 2、Stable Diffusion、NVIDIAのNemotron-3 8Bファミリーといったモデルをサポートしている
最適化されたRAG(Retrieval-Augmented Generation): NeMo Retrieverは、エンタープライズグレードのRAG機能を備えた高性能で低遅延の情報検索を提供し、生成AIアプリケーションにリアルタイムのビジネスインサイトやデータ活用をもたらす
10.7.2 NVIDIA NeMoの構成要素
NeMo Core: トレーニングや推論のための基本要素を提供し、会話型AIモデルの開発を簡略化する
NeMo Collections: 音声認識(ASR)、自然言語処理(NLP)、およびテキスト読み上げ(TTS)のための専門モジュールおよびモデルを提供しており、事前学習済みモデルやトレーニングスクリプトを含むため、プラットフォームの汎用性が高い
Neural Modules: NeMoの構築ブロックとして機能し、エンコーダやデコーダといったトレーニング可能なコンポーネントを定義し、総合的なモデルの作成を可能にする
アプリケーションスクリプト: 様々なAIアプリケーション向けに、特定のデータセット上でのトレーニングや微調整を迅速に行えるようにする、すぐに使用可能なスクリプトを提供する
10.7.3 大規模言語モデル(LLMs)のカスタマイズ
汎用LLMは、プロンプトエンジニアリングや軽微な微調整によって、成功した概念実証プロジェクトを達成してきたが、本番環境への移行には追加の課題が伴う
図10.3は、カスタマイズモデルを本番環境で展開する準備を進める組織に役立つ、NVIDIAの詳細なLLMカスタマイズライフサイクルを示している
モデルの選択または開発:
NVIDIAは8Bから43Bパラメータの事前学習済みモデルを提供しており、任意のサイズのオープンソースモデルの統合をサポートしている
または、ユーザー自身でモデルを開発する場合、データキュレーション、すなわちデータの選定、ラベル付け、クレンジング、検証、統合を行う必要がある
これにはさらなる分析、ストレージ設計、モデル訓練結果の評価、人間のフィードバックを用いた強化学習(RLHF)の統合が含まれる
カスタムのファウンデーションモデルの構築は一般的に高額で複雑であり、時間がかかるため、ほとんどの企業は事前学習モデルから始め、カスタマイズに重点を置いている
モデルのカスタマイズ:
NeMoはタスク特化型データセットを使用して性能を最適化し、モデルの重みを調整するためのレシピを提供している
企業は既に特定のタスク向けに調整されたモデルを選択し、さらに独自データで微調整することが可能である
推論:
推論は、ユーザーからのクエリに基づいてモデルを実行することを指す
この段階では、ハードウェア、アーキテクチャ、および性能要因を考慮し、本番環境における使いやすさとコストに大きな影響を与える
ガードレール:
NVIDIAはガードレールをモデルとアプリケーション間の仲介サービスとして導入している
これらのサービスは、ポリシー準拠性について入力プロンプトを確認し、仲裁またはオーケストレーション手順を実行し、モデルの応答がポリシーを遵守するようにする
ガードレールは関連性、正確性、安全性、プライバシー、およびセキュリティを維持するのに役立つ
アプリケーション:
NVIDIAのフレームワークはエンタープライズアプリケーションをLLM対応として提示しているが、常にその通りであるわけではない
既存アプリケーションはLLMに接続することで新機能を提供できるが、知識アクセスやタスク実行のためのアシスタントを作成するには、自然言語インターフェース専用の新しいアプリケーションを設計する必要がある
10.7.4 チュートリアル
ここで見てきた10.3から10.7までのセクションでは、大規模言語モデル(LLMs)の微調整や活用を支援する様々なプラットフォームについて説明されています。それぞれのサービスは、モデル選定からデータ準備、微調整、デプロイ、運用に至るまでのワークフローを簡略化し、専門知識を持たないユーザーでもAI技術を活用しやすくしています。
10.3 Amazon SageMaker JumpStart
SageMaker JumpStartは、AWS内の事前構築モデルライブラリを活用して、簡単かつ迅速にLLMsを微調整できるツールです。特に、機械学習の経験が浅い組織でも使いやすいように設計されており、費用効率の高いデータ処理、モデル選定、微調整、デプロイのための機能が揃っています。
10.4 Amazon Bedrock
Amazon Bedrockは、複数のファウンデーションモデル(FMs)を統合的に利用できるAPIを提供するサービスです。このサービスを利用することで、事前学習済みモデルの微調整やRAG(Retrieval Augmented Generation)を通じたカスタマイズが可能になります。また、サーバーレスアーキテクチャにより、スケーラブルでセキュアなモデルデプロイが容易です。
10.5 OpenAI’s Fine-Tuning API
OpenAIのFine-Tuning APIは、特定のタスクやドメインにモデルを適応させるためのプラットフォームです。ユーザーは、必要なデータをアップロードし、簡単なAPI操作で微調整を実行できます。ただし、コストやデータセキュリティの面で考慮が必要であり、OpenAIのインフラに依存する部分があるため、柔軟性に制限がある点には注意が必要です。
10.6 NVIDIA NeMo Customizer
NVIDIA NeMo Customizerは、LLMsを特定タスク向けに微調整するためのツール群を提供します。大規模なモデルを高速にトレーニングできるように最適化されており、推論にはNVIDIA Triton Inference Serverを活用して、クラウドやエッジ環境での展開を可能にします。ガードレール機能などを通じて、安全性や正確性を確保しながら、エンタープライズ向けのソリューションを提供します。
これらのプラットフォームを比較してみると、それぞれ異なる特長があることが分かります。AWSやOpenAIのサービスは、使いやすさや迅速な導入を重視していますが、費用面やインフラ依存性が課題になる場合があります。一方、NVIDIA NeMo Customizerは、特に高性能なインフラを持つ企業に向けて設計されており、ガードレールなどの追加機能が安全で正確なモデル運用を支援します。これらのツールは、エンタープライズ向けにLLMsを微調整し、生産環境で効果的に活用したい場合に非常に有用だと思われます。
次回はChapter 11 Multimodal LLMs and their Fine-tuning絡みていこうと思います。