新しい言語モデルを評価するための3つの重要な方法

3つの言語モデル評価方法

最新で最も注目されている大規模言語モデル(LLM)があなたのニーズに適しているかどうかを確認する方法

Image by author (using Stable Diffusion)

これは何についてのものですか?

新しいLLMは毎週リリースされますが、あなたも私と同じように、自分自身に問いかけるかもしれません。「これは、私がLLMを利用したいすべてのユースケースに最終的に適合しているのでしょうか?」このチュートリアルでは、新しいLLMを評価するために使用する技術を共有します。私は定期的に使用する3つの技術を紹介します。これらはすべて新しいものではありません(実際、以前に書いたブログ記事への参照も行います)、しかし、すべてを組み合わせることで、新しいLLMがリリースされるたびに大幅な時間を節約できます。新しいOpenChatモデルでのテストの例も示します。

なぜこれが重要なのですか?

新しいLLMに関しては、その能力と制限を理解することが重要です。残念ながら、モデルの展開方法を理解し、それを系統的にテストすることは少し面倒です。このプロセスは通常手動で行われ、多くの時間を消費します。しかし、標準化されたアプローチを使用することで、より迅速に反復し、モデルにさらに時間をかける価値があるかどうか、あるいは破棄すべきかをすぐに判断することができます。それでは、始めましょう。

はじめに

LLMを活用する方法は多くありますが、最も一般的な使い方は、オープンエンドのタスク(例:マーケティング広告のテキスト生成)、チャットボットアプリケーション、およびRetrieval Augmented Generation(RAG)に関連する場合がよくあります。それに応じて、LLMのこれらの機能をテストするために関連する方法を使用します。

0. モデルの展開

評価を開始する前に、まずモデルを展開する必要があります。この例では、モデルIDと展開先のインスタンスを入れ替えるだけで使用できるボイラープレートコードを用意しています(この例ではAmazon SageMakerを使用してモデルホスティングしています):

import jsonimport sagemakerimport boto3from sagemaker.huggingface import HuggingFaceModel, get_huggingface_llm_image_uritry:  role = sagemaker.get_execution_role()except ValueError:  iam = boto3.client('iam')  role = iam.get_role(RoleName='sagemaker_execution_role')['Role']['Arn']model_id = "openchat/openchat_8192"instance_type = "ml.g5.12xlarge" # 4 x 24GB VRAMnumber_of_gpu = 4health_check_timeout = 600 # モデルのダウンロードに許容する時間# Hub Model configuration. https://huggingface.co/modelshub = {  'HF_MODEL_ID': model_id,  'SM_NUM_GPUS': json.dumps(number_of_gpu),  'MAX_INPUT_LENGTH': json.dumps(7000),  # 入力テキストの最大長  'MAX_TOTAL_TOKENS': json.dumps(8192),  # 生成物の最大長(入力テキストを含む)}# create Hugging Face Model Classhuggingface_model = HuggingFaceModel(  image_uri=get_huggingface_llm_image_uri("huggingface",version="0.8.2"),  env=hub,  role=role, )model_name = hf_model_id.split("/")[-1].replace(".", "-")endpoint_name = model_name.replace("_", "-")# SageMaker Inferenceにモデルを展開predictor = huggingface_model.deploy(  initial_instance_count=1,  instance_type=instance_type,   container_startup_health_check_timeout=health_check_timeout,  endpoint_name=endpoint_name,)  # リクエストを送信predictor.predict({  "inputs": "こんにちは、私の名前はHeikoです。",})

新しいOpenChatモデルはLLAMAアーキテクチャに基づいており、SageMakerのHugging Face LLM Inference Containerを利用することができます。

1. プレイグラウンド

ノートブックを使用していくつかのプロンプトをテストすることは負担になることがあり、非技術的なユーザーがモデルを試すことを躊躇する可能性もあります。モデルに慣れるため、他の人にも同様にすることを促すためには、プレイグラウンドを構築することがはるかに効果的です。以前のブログ記事で、そのようなプレイグラウンドを簡単に作成する方法を詳しく説明しています。そのブログ記事のコードを使用すれば、素早くプレイグラウンドを立ち上げることができます。

プレイグラウンドが確立されると、モデルの応答を評価するためにいくつかのプロンプトを導入することができます。私は、一般的な常識が必要な質問を提示するオープンエンドのプロンプトを使用することを好みます:

どのように時間管理のスキルを向上させることができますか?

Image by author

スエズ運河が建設されていなかったらどうなるでしょうか?

Image by author

両方の応答は有望であり、OpenChatモデルのテストに追加の時間とリソースを投資する価値がある可能性が示唆されています。

2. チャットボット

探求したい2つ目のことは、モデルのチャットボットの機能です。プレイグラウンドとは異なり、モデルは一貫して状態を持たないようにする代わりに、会話の中で「記憶」する能力を理解したいと考えています。このブログ記事では、Falconモデルを使用してチャットボットを設定する方法について説明しています。これはシンプルなプラグアンドプレイの操作であり、SageMakerのエンドポイントを変更することで、新しいOpenChatモデルに向けることができます。

どのように機能するか見てみましょう:

Image by author

チャットボットとしてのパフォーマンスは非常に印象的です。ただし、Openchatが会話を突然打ち切ろうとしたり、文中で途中で終了したりすることがあるインスタンスがありました。実際には、この問題は珍しくありません。他のチャットボットでは、AIにテキスト生成を停止させるための特定のストップワードを使用しているため、このようなことは通常観察されません。私のアプリでこの問題が発生しているのは、アプリケーション内でストップワードの実装が行われているためである可能性があります。

それ以外にも、OpenChatは会話全体の文脈を維持し、文書から重要な情報を抽出する能力を持っています。印象的です。😊

3. 情報検索増強生成 (RAG)

最後にテストしたいタスクは、LangChainを使用していくつかのRAGタスクを行うことです。オープンソースのモデルではRAGタスクが非常に難しい場合が多く、機能を実現するために独自のプロンプトやカスタムの応答パーサーを書く必要があります。ただし、私が見た中では、標準的なRAGタスクに対して「そのままで最適に動作する」モデルを見たいと考えています。このブログ記事では、そのようなタスクのいくつかの例を提供しています。パフォーマンスを調べてみましょう。投げかける質問は次のとおりです:

イギリスの首相は誰ですか?彼または彼女はどこで生まれましたか?彼らの出生地はロンドンからどれくらい離れていますか?

Image by author

これは、LangChainの標準プロンプトを使用したオープンソースモデルの中で最高のパフォーマンスです。これは、おそらくChatGPTの会話に対してOpenChatが微調整されていること、およびLangChainがOpenAIモデル、特にChatGPT向けに調整されていることから予想されます。ただし、このモデルは、自分が必要な情報を全て持っており、ユーザーの質問に答えることができることに気づかなかったという唯一の短所がありました。理想的には、「最終的な答えを持っています」と述べ、収集した事実をユーザーに提供するべきでした。

Image by author

結論

このブログ記事では、私がLLMを評価するためにいつも使用する3つの標準的な評価手法を紹介しました。新しいOpenChatモデルは、これらのタスクすべてで非常に優れたパフォーマンスを発揮します。驚くべきことに、それはRAGアプリケーションの基盤として非常に有望であり、最終的な答えに到達したことを判断するためにカスタマイズされたプロンプトが必要な可能性があります。

これは包括的な評価ではなく、またそうすることを意図していませんが、特定のモデルがさらに時間をかけて評価し、より集中的なテストを行う価値があるかどうかの指標を提供しています。OpenChatは間違いなく時間を費やす価値があるようです🤗

すべてのツールを自由に利用し、拡張し、カスタマイズし、数分以内に関心を持つLLMを評価し始めてください。

Heiko Hotz

👋 私のVoAGIとLinkedInで私をフォローして、Generative AI、Machine Learning、およびNatural Language Processingについてもっと読んでください。

👥 もしロンドンに拠点を置いているのであれば、私たちのNLP London Meetupsの一つに参加してください。

著者による画像

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テクノロジー

高度なRAGテクニック:イラスト入り概要

この投稿の目標は、利用可能なRAGアルゴリズムとテクニックの概要と説明をすることなので、コードの実装の詳細には立ち入らず...

人工知能

7つの最高の履歴書ビルダーAIツール

これらのAI履歴書ビルダーツールは、人々の90%以上よりも優れた文章を書き、100%の人々よりも速く作成します

AI研究

中国の研究者がiTransformerを提案:時間系列予測のためのTransformerアーキテクチャの見直し

トランスフォーマーは、自然言語処理とコンピュータビジョンで大成功を収めた後、スケーリングのルールに従う基本モデルとな...

データサイエンス

人工知能は人間を置き換えるのか?

はじめに 皆さんはご存知のとおり、AIは飛躍的な進歩を遂げ、科学者や一般の人々の想像をとらえています。ニュースやソーシャ...

AI研究

「バイトダンスAI研究は、連続および離散パラメータのミックスを使用して、高品質のスタイル化された3Dアバターを作成するための革新的な自己教師あり学習フレームワークを提案しています」

デジタルワールドへの重要な入り口は、社交、ショッピング、ゲームなどの活動において現代の生活でより一般的になっており、...

機械学習

BYOL(Bootstrap Your Own Latent)— コントラスティブな自己教示学習の代替手段

『今日の論文分析では、BYOL(Bootstrap Your Own Latent)の背後にある論文に詳しく触れますこれは、対比的な自己教師あり学...