Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Goにおける 生成AIによるコード生成の ベンチマーク評価入門

Avatar for どすこい どすこい
September 29, 2025

Goにおける 生成AIによるコード生成の ベンチマーク評価入門

Goにおける生成AIによるコード生成のベンチマーク評価入門と題しました、golang.tokyo #41のスポンサーLTの登壇資料です。

Avatar for どすこい

どすこい

September 29, 2025
Tweet

More Decks by どすこい

Other Decks in Technology

Transcript

  1. 8 けど調べると... 今⽇の話 8 Qiwei Peng, Yekun Chai, and Xuhong

    Li, 2024, LREC-COLING 2024 | HumanEval-XL: An Execution-based Multilingual Code Generation Benchmark Across 23 Natural Languages and 12 Programming Languages Fig. 2, Performance of LLMs, including CodeT5+ (2B), CodeGen2 (3.7B, 16B), GPT-3.5, and GPT-4, on our proposed benchmark. 思ったより低い...
  2. ⽣成AIによるコード⽣成のベンチマークについて 13 • Open AIが2021年に公開した、コード⽣成の定量評価 のためのベンチマークのためのデータセット ◦ LLMに⼊れるprompt, 実装するentry_point, 検証⽤test,...

    • GitHub由来の解答を⽣成しないように、⼈間が⼿書き でコードを⽣成。⾔語理解、アルゴリズムなどコー ディング⾯接っぽい問題。Pythonのコード。 データセット: HumanEval Mark Chen, et.al. , Evaluating Large Language Models Trained on Code, 2021, https://arxiv.org/pdf/2107.03374, https://github.com/openai/human-eval
  3. ⽣成AIによるコード⽣成のベンチマークについて 14 • HumanEvalは英語,Pythonのみ。複数⾔語でコード⽣ 成のベンチマークを⽐較したいというモチベーション • 23の⾃然⾔語(without Japanese😇)と12のプログラミ ング⾔語(within Go😎)があります

    ◦ 単純なコード⽣成能⼒というより、多⾔語間でのコード⽣成能⼒の⽐ 較のためのもの HumanEval-XL Qiwei Peng, Yekun Chai, and Xuhong Li, 2024, LREC-COLING 2024 | HumanEval-XL: An Execution-based Multilingual Code Generation Benchmark Across 23 Natural Languages and 12 Programming Languages, https://github.com/floatai/HumanEval-XL, https://huggingface.co/datasets/floatai/HumanEval-XL
  4. ⽣成AIによるコード⽣成のベンチマークについて 15 HumanEval-XL Qiwei Peng, Yekun Chai, and Xuhong Li,

    2024, LREC-COLING 2024 | HumanEval-XL: An Execution-based Multilingual Code Generation Benchmark Across 23 Natural Languages and 12 Programming Languages, Fig 1, Illustration of data construction in four steps.
  5. ⽣成AIによるコード⽣成のベンチマークについて 17 pass@1: ⼀回の試⾏で正しい正解を出⼒する能⼒の指標。最初の提案にどれ くらい信頼がおけるか、開発者がどれくらい⼿放しで開発できるかがわかる。 pass@100: 理論的な上限を探る指標。多数の不正解の中に埋もれていたとし ても、モデルが正解を⽣成する絶対的な能⼒を持っているかを評価します。 pass@10, pass@5:

    開発者が選択肢を確認したり、対話的にコードを⽣成し ていくシナリオのものです。多様なコード⽣成をしつつ、正しいコードが⽣成 できるかの指標 評価⽅法: pass@k について Qiwei Peng, Yekun Chai, and Xuhong Li, 2024, LREC-COLING 2024 | HumanEval-XL: An Execution-based Multilingual Code Generation Benchmark Across 23 Natural Languages and 12 Programming Languages, Fig 1, Illustration of data construction in four steps.
  6. HumanEval-XLを実際みて触ってみる 22 問題はこんな感じ • ⼝座の残⾼を追跡し、途中でマイナスになるかを判定。 • 整数リストの合計と積を返す。空なら (0,1)。 • リストからユニークな要素を取り出し、昇順にソート。

    • 整数リスト内に、和がゼロになるペアがあるか判定。 • ⽂字列をMD5ハッシュに変換。空なら None。 • ⼆つの整数 a, b の間の偶数を昇順で返す。 簡単な問題、⾼難易度の問題がある!
  7. HumanEval-XLを実際みて触ってみる 23 ⾃分で試してみる: 銀⾏⼝座残⾼管理 問題 Claude Code Sonnet 4.1(2025-0929)で試しました 問題 預⾦‧引き出し操作のリストが与えられ、ゼロ残⾼から開始して、任意の時点

    で残⾼がゼロを下回るかどうかを検出する関数を実装します。下回った時点で Trueを返し、そうでなければFalseを返します。 例: - `below_zero([1, 2, 3])` → False(残⾼: 0→1→3→6) - `below_zero([1, 2, -4, 5])` → True(残⾼: 0→1→3→-1で負になる)