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 프로젝트의 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.