「Amazon SageMaker JumpStartでMistral 7Bを調整して展開する」

「Amazon SageMaker JumpStartを活用してMistral 7Bを調整・展開する方法」

今日は、Amazon SageMaker JumpStartを使用してMistral 7Bモデルを微調整できる機能を発表して嬉しく思います。 この機能を使用して、SageMaker JumpStartでMistralのテキスト生成モデルを微調整して展開することができます。Amazon SageMaker StudioのUIを使用して数回のクリックでまたはSageMaker Python SDKを使用してこの微調整と展開を行うことができます。

基礎モデルは、テキストや要約、質問の回答、画像や動画の生成など、生成タスクで非常に優れたパフォーマンスを発揮します。これらのモデルは非常に汎用性が高いですが、特定のドメインデータ(例:医療や金融サービスなど)を持つユースケースでは、これらのモデルでは良い結果が得られない場合があります。このため、ユースケース固有およびドメイン固有のデータを使用してこれらの生成型AIモデルをさらに微調整する必要があります。

この記事では、SageMaker JumpStartを使用してMistral 7Bモデルを微調整する方法を紹介します。

Mistral 7Bとは

Mistral 7Bは、Mistral AIが開発した基本モデルで、英語のテキストやコードの生成能力をサポートしています。テキストの要約、分類、補完、コードの補完など、さまざまなユースケースをサポートしています。モデルのカスタマイズ性を示すために、Mistral AIは公開されているさまざまな会話データセットを使用して微調整されたMistral 7B-Instructモデルもリリースしています。

Mistral 7Bはトランスフォーマモデルであり、グループ化されたクエリアテンションとスライディングウィンドウアテンションを使用して高速な推論(低レイテンシ)を実現し、より長いシーケンスを処理します。グループ化されたクエリアテンションは、マルチクエリとマルチヘッドアテンションを組み合わせて、マルチヘッドアテンションに近い出力品質とマルチクエリアテンションと比較可能な速度を実現するアーキテクチャです。スライディングウィンドウアテンションは、トランスフォーマモデルの複数のレベルを使用して、前方の情報に重点を置き、モデルがより長いコンテキストを理解するのに役立ちます。Mistral 7Bは8,000トークンのコンテキスト長を持ち、低レイテンシと高スループットを示し、より大きなモデルの代替と比較して低いメモリ要件を提供します。このモデルは Apache 2.0 ライセンスの下で使用することができます。

モデルの微調整は、SageMaker StudioのUIまたはSageMaker Python SDKのいずれかを使用して行うことができます。この記事では、両方の方法について説明します。

SageMaker StudioのUIを使用して微調整

SageMaker Studioでは、モデル、ノートブック、ソリューションの下でMistralモデルにアクセスすることができます。以下のスクリーンショットに表示されているように。

Mistralモデルが表示されない場合は、SageMaker Studioのバージョンを更新するためにシャットダウンして再起動してください。バージョンの更新については、Shut down and Update Studio Appsを参照してください。

モデルページでは、微調整のためのトレーニングデータセットと検証データセットを含むAmazon Simple Storage Service(Amazon S3)のバケットを指定することができます。さらに、微調整のためのデプロイメント設定、ハイパーパラメータ、セキュリティ設定を構成することができます。その後、SageMaker MLインスタンスでトレーニングジョブを開始するためにTrainを選択することができます。

モデルを展開する

モデルが微調整された後は、SageMaker JumpStartのモデルページでモデルを展開することができます。微調整が完了すると、微調整されたモデルを展開するオプションが表示されます。以下のスクリーンショットに示すように。

SageMaker Python SDKを使用して微調整

SageMaker Python SDKを使用して、Mistralモデルを微調整することもできます。完全なノートブックはGitHubで利用できます。このセクションでは、2種類の微調整の例を提供します。

Instruction Fine-tuning

Instruction Fine-tuningは、指示を使用して自然言語処理(NLP)タスクのコレクションで言語モデルを微調整する技術です。この技術では、モデルは各タスクごとに特定のデータセットではなくテキスト指示に従ってタスクを実行するようにトレーニングされます。モデルは、各タスクの入力と出力の例のセットによって微調整され、タスクのためのプロンプトが提供される限り、明示的にトレーニングされていない新しいタスクに対しても一般化することができます。Instruction Fine-tuningは、モデルの正確さと効果を向上させるのに役立ち、特定のタスク用の大規模なデータセットが利用できない状況でも役立ちます。

SageMaker Python SDKを使用して提供される例のノートブック内の微調整コードを実行してみましょう。

Instruction Fine-tuning用のデータとして、Dollyデータセットの一部を使用し、入力と出力の形式を記述するtemplate.jsonファイルを指定します。トレーニングデータは、JSON lines(.jsonl)形式でフォーマットする必要があります。各行は、単一のデータサンプルを表す辞書です。この場合、それをtrain.jsonlと名付けます。

以下はtrain.jsonlの例です。各サンプルのinstructioncontextresponseキーは、template.json内の対応するエントリ{instruction}{context}{response}と対応している必要があります。

{    "instruction": "ディスパーシブプリズムとは何ですか?",     "context": "光学において、ディスパーシブプリズムとは、光を分散させるために使用される光学プリズムであり、光をそのスペクトル成分(虹の色)に分離するものです。異なる波長(色)の光は、プリズムによって異なる角度で偏向されます。これは、プリズム材料の屈折率が波長(分散)に応じて変化することによるものです。一般的に、より長い波長(赤)はより小さな偏光角を生じます。プリズムによって白色光が色に分解されることにより、サー・アイザック・ニュートンは白色光がさまざまな色の混合であると結論づけました。",     "response": "ディスパーシブプリズムは、光の異なる波長を異なる角度で分散させる光学プリズムです。ディスパーションプリズムに白色光を照射すると、虹の色となって分離されます。"}

以下はtemplate.jsonのサンプルです。

{    "prompt": "以下にタスクを説明する指示と、さらなるコンテキストを提供する入力がペアになっています。"    "要求を適切に完了させるための応答を書いてください。\n\n"    "### Instruction:\n{instruction}\n\n### Input:\n{context}\n\n",    "completion": "{response}",}

プロンプトテンプレートとトレーニングデータをS3バケットにアップロードした後、ハイパーパラメータを設定できます。

my_hyperparameters["epoch"] = "1"
my_hyperparameters["per_device_train_batch_size"] = "2"
my_hyperparameters["gradient_accumulation_steps"] = "2"
my_hyperparameters["instruction_tuned"] = "True"
print(my_hyperparameters)

その後、微調整プロセスを開始し、モデルを推論エンドポイントに展開できます。以下のコードでは、ml.g5.12xlargeインスタンスを使用しています:

from sagemaker.jumpstart.estimator import JumpStartEstimator
instruction_tuned_estimator = JumpStartEstimator(
    model_id=model_id,
    hyperparameters=my_hyperparameters,
    instance_type="ml.g5.12xlarge",
)
instruction_tuned_estimator.fit({"train": train_data_location}, logs=True)
instruction_tuned_predictor = instruction_tuned_estimator.deploy()

ドメイン適応ファインチューニング

ドメイン適応ファインチューニングは、事前学習済みのLLMを特定のドメインやタスクに適したものに改良するプロセスです。ドメイン固有のデータセットを使用することで、LLMは元のトレーニング時に獲得した広範な知識を保持しながら、特定のドメインにおいてより正確で関連性の高いコンテンツを理解し生成するようにファインチューニングできます。

Mistralモデルは、任意のドメイン固有のデータセットでファインチューニングできます。ファインチューニング後、その特定のドメインでドメイン固有のテキストを生成し、さまざまなNLPタスクを解決することが期待されます。トレーニングデータセットには、CSV、JSON、またはTXTファイルの1つを含むトレーニングディレクトリとオプションのバリデーションディレクトリを提供します。CSVおよびJSON形式では、「text」列または「text」が存在しない場合は最初の列のデータを使用してください。各ディレクトリには1つのファイルのみが存在することを確認してください。たとえば、入力データはテキストファイルとしてAmazonのSECファイリング情報である場合です:

This report includes estimates, projections, statements relating to ourbusiness plans, objectives, and expected operating results that are “forward-looking statements” within the meaning of the Private Securities LitigationReform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21Eof the Securities Exchange Act of 1934. Forward-looking statements may appearthroughout this report, including the following sections: “Business” (Part I,Item 1 of this Form 10-K), “Risk Factors” (Part I, Item 1A of this Form 10-K),and “Management’s Discussion and Analysis of Financial Condition and Resultsof Operations” (Part II, Item 7 of this Form 10-K). These forward-lookingstatements generally are identified by the words “believe,” “project,”“expect,” “anticipate,” “estimate,” “intend,” “strategy,” “future,”“opportunity,” “plan,” “may,” “should,” “will,” “would,” “will be,” “willcontinue,” “will likely result,” and similar expressions.

ドメイン適応ファインチューニングを開始するには、ハイパーパラメータ「instruction_tuned」を「False」として指定します。それ以降の手順は指示ファインチューニングの手順と同様です。

g5.12xlargeではmax_input_lengthを2048に設定します。より大きなインスタンスタイプでは、より高い入力長を使用できます。詳細については、example notebookを参照してください。

ファインチューニングの有無による推論例

以下の表は、2021年から2022年のAmazonのSEC報告書を使用してMistral 7Bモデルをファインチューニングした結果を示しています。ファインチューニング前後の出力を比較しています。

Input Prompt Output Before Fine-Tuning Output After Fine-Tuning Parameters
This Form 10-K report shows that

the company has been in business for 10 years and has a total of 10 employees. The company has a total of 10 employees and is in the business of providing services to the public. The company has a total of 10 employees and is in the business of providing services to the public.

The company has a total of 10 employees and is in the business of providing services to the public. The company has a total of 10 employees and is in the business of providing services to the public. The company has a total of 10 employees and is in the business of providing services to the public. The company has a total of 10 employees and is in the business of providing

we had net sales of $1.2 billion, $1.5 billion, and $1.8 billion in 2004, 2003, and 2002. These amounts include sales from our international websites. Net sales from our international websites were $323 million, $242 million, and $150 million in 2004, 2003, and 2002. Net sales from our international websites represented 27%, 16%, and 8% of net sales in 2004, 2003, and 2002. “temperature”: 0.2, “m ax_new_tokens”: 150,
We serve consumers through

our retail network of 1,700 stores, which includes 1,200 stores in the United States, 400 stores in Canada, and 100 stores in Mexico. We also serve consumers through our e-commerce websites.

What is the

biggest home improvement store?

The Home Depot is the largest home improvement retailer in the United States.

What is the

largest home improvement store in the world?

The largest home improvement store in the world is Home Depot.

What is the

biggest home improvement store in the

our online and physical stores and focus on selection, price, and convenience. We design our stores to enable hundreds of millions of unique products to be sold by us and by third parties across dozens of product categories. Customers access our offerings through our websites, mobile apps, Alexa, devices, streaming, and physically visiting our stores. We also manufacture and sell electronic devices, including Kindle, Fire tablet, Fire TV, Echo, and Ring, and we develop and produce media content. We seek to offer our customers low prices, fast and free delivery, easy-to-use functionality, and timely customer service. In addition, we offer subscription services such as Amazon Prime, a
Our vision is

to be the leading provider of quality, affordable, and accessible health care services in the communities we serve.

Our mission is to provide quality, affordable, and accessible health care services to the communities we serve.

Our values are:

– Integrity: We act with honesty and integrity in all our dealings. – Respect: We treat everyone with respect and dignity. – Excellence: We strive for excellence in all we do. – Compassion: We care for our patients and each other with compassion. – Teamwork: We work together as a team to achieve our goals.

Our commitment to our patients is to provide quality, affordable, and accessible health care services.

to be Earth’s most c ustomer-centric company. We are guided by four principles: customer obsession rather than competitor focus, passion for invention, commitment to operational excellence, and long-term thinking. In each of our segments, we serve our primary customer sets, consisting of consumers, sellers, developers, enterprises, and content creators. In addition, we provide services, such as advertising. We have organized our operations into three segments: North America, International, and AWS.

ご覧の通り、微調整されたモデルは、一般的な事前学習モデルと比較して、Amazonに関連するより具体的な情報を提供します。これは、微調整が提供されたデータセットのニュアンス、パターン、および特定の要素を理解するためにモデルを適応させるからです。事前学習モデルを使用し、微調整で調整することによって、広範な知識とユニークなデータセットに対する専門的な精度の両方を得ることを保証します。機械学習の世界では、一つのサイズがすべてに合わない場合があり、微調整こそが必要な完全なソリューションです!

結論

この投稿では、SageMaker JumpStartを使用してMistral 7Bモデルを微調整する方法について説明しました。SageMaker StudioのSageMaker JumpStartコンソールまたはSageMaker Python SDKを使用して、これらのモデルを微調整および展開する方法を示しました。次のステップとして、GitHubリポジトリで提供されたコードを使用して、独自のデータセットでこれらのモデルを微調整し、使用ケースの結果をテストおよびベンチマークすることができます。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI研究

「Googleの研究者が球面上でのディープラーニングのためのJAX向けのオープンソースライブラリを紹介します」

ディープラーニングは、入力から複雑な表現を自動的に学習する機械学習の一部です。その応用は、言語処理のための画像と音声...

データサイエンス

「AIがあなたの問題を解決できるでしょうか?」

「AIの能力を製品やサービスに組み込むことを目指す製品企業では、AIに詳しくない人々をAIの流れに乗せるという課題が常に存...

人工知能

「Stack Overflowは、OverflowAIによって開発者サポートを革新します」

Stack Overflowは、技術的な回答を求める開発者向けの有名なプラットフォームです。革新的なOverflowAIの提供により、生成型A...

データサイエンス

「LLMテクノロジーの理解」

「LLMテクノロジーの進歩を発見しましょうLLMテクノロジーの世界を探求し、AIとNLPの分野における重要な役割を見つけましょう」

AIニュース

不正行為はこれで終わり!Sapia.aiがAIによる回答をリアルタイムで検出!

Sapia.aiは、ChatGPTなどの生成AIモデルによって作成された応答をリアルタイムで特定およびフラグ付けする新機能を発表し、興...

AIテクノロジー

シンガポールがAIワークフォースを3倍に増やす予定

シンガポールは、人工知能の分野に目を向けています。国家AI戦略(NAIS)2.0の発表により、この都市国家は次の3〜5年でAIの労...