LMEvalは、AI研究者や開発者が異なる大規模言語モデル(LLM)の性能を比較するのを支援することを目的としている。正確性、マルチモーダル対応、使いやすさを重視して設計されており、安全性やセキュリティの観点から主要なモデルの評価にすでに使用されている。
LMEvalが開発された背景には、新しいモデルが急速に導入される現状がある。これにより、特定のアプリケーションへの適合性を迅速かつ信頼性高く評価することが重要だとGoogle研究者は述べている。LMEvalの主な特徴には、幅広いLLMプロバイダーとの互換性、効率を向上させるための増分ベンチマーク実行、マルチモーダル評価のサポート(テキスト、画像、コードを含む)、およびセキュリティを強化する暗号化された結果保存が含まれる。
クロスプロバイダー対応を実現するためには、評価ベンチマークを一度定義すれば、APIの違いにかかわらず複数のモデルで再利用可能であることが重要だ。この目的のために、LMEvalはLiteLLMというフレームワークを使用している。LiteLLMは、OpenAI API形式を利用してBedrock、Hugging Face、Vertex AI、Together AI、Azure、OpenAI、GroqなどのLLMプロバイダーを呼び出せる。LiteLLMは各プロバイダーの補完、埋め込み、画像生成エンドポイントに関する特定の要件に合わせて入力を変換し、統一された出力形式を生成する。
新しいモデルがリリースされた際の実行効率を向上させるために、LMEvalは新しいモデル、プロンプト、または質問に対して必要最低限の評価のみを実行する。これは、増分評価モデルに従うインテリジェントな評価エンジンによって可能だ。
LMEvalはPythonで記述されており、GitHubで公開されている。評価をするには、いくつかの手順を踏む必要がある。まず、実行するタスク(例:画像内の目の色を検出する)を指定し、プロンプト、画像、期待される結果を定義してベンチマークを作成する。その後、評価するモデルをリストアップし、ベンチマークを実行する。
benchmark = Benchmark(name='Cat Visual Questions', description='Ask questions about cats picture') ... scorer = get_scorer(ScorerType.contain_text_insensitive) task = Task(name='Eyes color', type=TaskType.text_generation, scorer=scorer) category.add_task(task) # add questions source = QuestionSource(name='cookbook') # cat 1 question - create question then add media image question = Question(id=0, question='what is the colors of eye?', answer='blue', source=source) question.add_media('./data/media/cat_blue.jpg') task.add_question(question) ... # evaluate benchmark on two models models = [GeminiModel(), GeminiModel(model_version='gemini-1.5-pro')] prompt = SingleWordAnswerPrompt() evaluator = Evaluator(benchmark) eval_plan = evaluator.plan(models, prompt) # plan evaluation completed_benchmark = evaluator.execute() # run evaluation オプションとして、評価結果はSQLiteデータベースに保存し、さらに分析や可視化のためにpandasにデータをエクスポート可能だ。LMEvalは、クローリングやインデックス化を防ぐためにベンチマークデータと評価結果を暗号化して保存する。
LMEvalには、LMEvalboardという視覚的なダッシュボードも含まれており、全体的なパフォーマンスを確認したり、個々のモデルを分析したり、複数のモデルを比較したりできる。
前述の通り、LMEvalは、Phare LLM Benchmarkの作成にも使用されており、LLMの安全性とセキュリティを評価するために設計されている。これには、幻覚への耐性、事実の正確性、バイアス、潜在的な害などが含まれる。
現在利用可能なクロスプロバイダーLLM評価フレームワークはLMEvalだけではない。他にはHarbor BenchやEleutherAIのLM Evaluation Harnessがある。Harbor Benchはテキストプロンプトに限定されているが、結果の品質をLLMで評価するという興味深い特徴を持つ。一方、EleutherAIのLM Evaluation Harnessは60以上のベンチマークを含み、YAMLを使用して新しいベンチマークを定義可能だ。