ホームページ >テクノロジー周辺機器 >AI >Humanval:LLMコード生成機能を評価するためのベンチマーク

Humanval:LLMコード生成機能を評価するためのベンチマーク

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-03-02 09:47:11886ブラウズ

Humanval:Pass@K

でコード生成を評価します このチュートリアルでは、大規模な言語モデル(LLM)コード生成機能を評価するためのOpenAIベンチマークであるHumanValを探索し、

メトリックに焦点を当てています。ハグする顔のエコシステムを使用して、164 Pythonの問題でpass@kモデルを評価します。 これは、伝統的なテキストと類似の指標とは対照的に、実用的で機能的な正確性評価を提供します。 codeparrot-small

HumanEval: A Benchmark for Evaluating LLM Code Generation Capabilities

著者による画像

パス@k

を理解しています

Humanvalは機能的正確性アプローチを採用しており、上部の少なくとも1つの生成コードサンプルの少なくとも1つが問題を正しく解決する可能性を測定します。 これは、実世界の開発者テストをミラーリングする単純なテキストマッチングよりも関連性があります。

式は次のとおりです ここで:

pass@k:生成されたサンプルの合計。

:正しいサンプルの数。
  • n:考慮される上部サンプルの数
  • 式は、cすべての
  • kkサンプルが正しくないという確率を計算し、これを1から減算して、少なくとも1つの正しいサンプルの確率を取得します。 より高い
  • スコアは、コード生成のパフォーマンスが向上します。 リーダーボードはしばしば

を使用します 顔を抱きしめた人間の評価 このセクションでは、抱きしめられたフェイスのライブラリを使用して評価プロセスを詳しく説明しています。より速い評価を得るために、より小さなpass@kモデルを使用します pass@10pass@1001。セットアップ:

必要なライブラリをインストールします:

evaluate codeparrot-small環境変数の設定:

2。データセットとメトリックの読み込み:

pip install evaluate
データセットと

メトリックをロードします:

import os
os.environ["HF_ALLOW_CODE_EVAL"] = "1"
os.environ["TOKENIZERS_PARALLELISM"] = "false"

3。モデルとトークン剤の読み込み:

モデルとトークンザーをロードします:openai_humaneval code_eval

from datasets import load_dataset
from evaluate import load
human_eval = load_dataset("openai_humaneval")['test']
code_eval_metric = load("code_eval")
4。トークン剤の調整:

トークン剤に

があることを確認し、必要に応じてモデルの埋め込みをサイズ変更します。 codeparrot/codeparrot-small

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "codeparrot/codeparrot-small"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
model.eval()
5。コード生成:

問題ごとに5つのコードサンプルを生成します(合計164の問題):

pad_token_ideos_token_id6。コンピューティングパス@k:

if tokenizer.pad_token_id is None: tokenizer.pad_token_id = 0
if tokenizer.eos_token_id is None: tokenizer.eos_token_id = 2
if tokenizer.pad_token is None: tokenizer.add_special_tokens({'pad_token': '<pad>'})
if tokenizer.eos_token is None: tokenizer.add_special_tokens({'eos_token': ''})
if len(tokenizer) > model.config.vocab_size: model.resize_token_embeddings(len(tokenizer))</pad>

computeおよび

pip install evaluate

出力には、pass@1およびpass@5スコアが表示され、モデルのパフォーマンスが示されます。 コード生成の確率的性質により、結果は異なる場合があることを忘れないでください。 これらの結果をより強力なモデル(GPT-4など)の結果と比較すると、codeparrot-smallモデルの機能のコンテキストが提供されます。 さらなる分析には、さまざまなハイパーパラメーターの探索や、より洗練されたコード生成手法の使用が含まれる場合があります。

以上がHumanval:LLMコード生成機能を評価するためのベンチマークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。