BioCoder: 文脈的実用知識を伴うバイオインフォマティクスコード生成のためのベンチマーク
BioCoder: A Benchmark for Bioinformatics Code Generation with Contextual Pragmatic Knowledge
August 31, 2023
著者: Xiangru Tang, Bill Qian, Rick Gao, Jiakang Chen, Xinyun Chen, Mark Gerstein
cs.AI
要旨
ChatGPTのような事前学習済み言語モデルは、コード生成の能力を大幅に向上させています。これらのモデルがスケールアップするにつれ、より複雑なタスクを処理できる出力が求められるようになっています。さらに、バイオインフォマティクスにおいては、機能的なプログラムを生成する際に、膨大なドメイン知識、複雑なデータ操作の必要性、そして操作間の入り組んだ機能依存関係といった追加の重要な課題が存在します。ここでは、バイオインフォマティクスコードの生成において既存の事前学習済みモデルを評価するために開発されたベンチマーク、BioCoderを紹介します。関数コード生成に関して、BioCoderは潜在的なパッケージ依存関係、クラス宣言、グローバル変数をカバーしています。GitHubから取得したPythonとJavaの1026の関数と1243のメソッド、およびRosalind Projectから取得した253の例を組み込んでいます。BioCoderは評価のためのファジーテストフレームワークを組み込んでおり、InCoder、CodeGen、CodeGen2、SantaCoder、StarCoder、StarCoder+、InstructCodeT5+、そしてChatGPTを含む多くのモデルを評価するために適用しました。これらのモデルに対する詳細な分析を通じて、ドメイン知識、実用的なコード生成、そして文脈理解の重要性を強調しています。我々のデータセット、ベンチマーク、Dockerイメージ、およびテストに必要なスクリプトはすべてhttps://github.com/gersteinlab/biocoderで公開されています。
English
Pre-trained language models like ChatGPT have significantly improved code
generation. As these models scale up, there is an increasing need for the
output to handle more intricate tasks. Moreover, in bioinformatics, generating
functional programs poses additional notable challenges due to the amount of
domain knowledge, the need for complicated data operations, and intricate
functional dependencies between the operations. Here, we present BioCoder, a
benchmark developed to evaluate existing pre-trained models in generating
bioinformatics code. In relation to function-code generation, BioCoder covers
potential package dependencies, class declarations, and global variables. It
incorporates 1026 functions and 1243 methods in Python and Java from GitHub and
253 examples from the Rosalind Project. BioCoder incorporates a fuzz-testing
framework for evaluation, and we have applied it to evaluate many models
including InCoder, CodeGen, CodeGen2, SantaCoder, StarCoder, StarCoder+,
InstructCodeT5+, and ChatGPT. Our detailed analysis of these models emphasizes
the importance of domain knowledge, pragmatic code generation, and contextual
understanding. Our dataset, benchmark, Docker images, and scripts required for
testing are all available at https://github.com/gersteinlab/biocoder.