ホームページ >テクノロジー周辺機器 >AI >Humanval:LLMコード生成機能を評価するためのベンチマーク
Humanval:Pass@K
でコード生成を評価します このチュートリアルでは、大規模な言語モデル(LLM)コード生成機能を評価するためのOpenAIベンチマークであるHumanValを探索し、メトリックに焦点を当てています。ハグする顔のエコシステムを使用して、164 Pythonの問題でpass@k
モデルを評価します。 これは、伝統的なテキストと類似の指標とは対照的に、実用的で機能的な正確性評価を提供します。
codeparrot-small
パス@k
を理解していますHumanvalは機能的正確性アプローチを採用しており、上部の少なくとも1つの生成コードサンプルの少なくとも1つが問題を正しく解決する可能性を測定します。 これは、実世界の開発者テストをミラーリングする単純なテキストマッチングよりも関連性があります。
式は次のとおりです ここで:
pass@k
:生成されたサンプルの合計。
n
:考慮される上部サンプルの数
c
すべてのk
サンプルが正しくないという確率を計算し、これを1から減算して、少なくとも1つの正しいサンプルの確率を取得します。 より高い。を使用します
顔を抱きしめた人間の評価
このセクションでは、抱きしめられたフェイスのライブラリを使用して評価プロセスを詳しく説明しています。より速い評価を得るために、より小さなpass@k
モデルを使用します
pass@10
pass@100
1。セットアップ:
必要なライブラリをインストールします:
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_id
eos_token_id
6。コンピューティングパス@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 サイトの他の関連記事を参照してください。