618ZXW

ByteDance の最も包括的なオープンソース コード モデル評価ツール。直接チュートリアルも完備しています。

Zeyu、Chenxu、Wenkai Datawhale による元の記事

データホエールの共有

著者: 王澤宇、楊晨秀、趙文凱

大規模モデルのパフォーマンスが向上し続けるにつれて、開発を支援する大規模モデル コード ツールを使用する開発者が増えており、さまざまなベンダーも独自の大規模モデルのコードを提供していますが、実際のコード機能には大きな懸念があります。

市場にある既存の評価データセットのほとんどは、特定のドメインまたは特定の種類のタスクに限定されており、大規模モデルの広範かつ一般的なコーディング機能を反映できないため、コーディング ツールの選択が決定できなくなります。

本日、ByteDance Big ModelチームはMAPコミュニティと協力し、フルスタックプログラミング分野をカバーするオープンソースのコードビッグモデルベンチマークデータセットFullStack Benchと、それに付随するツールSandbox Fusionをリリースしました。データセットとツールは既にHuggingFaceとGitHubでオープンソース化されています。

まったく新しいコードベンチマークであるFullStack Bench は、さまざまな実際の開発シナリオにおける大規模なコードモデルのパフォーマンスを包括的かつ科学的に評価し、開発者の混乱を解消することを目的としています。

論文リンク: https://arxiv.org/pdf/2412.00...

私たちはすぐにオープンソース プロジェクトの貢献者に FullStack Bench と SandboxFusion の詳細な評価を依頼しました。以下は直接のユーザー ガイドです。

フルスタックベンチコード評価ベンチマーク

この論文では、FullStack Bench はプログラミング開発タスク設計に重点を置いた多言語ベンチマーク データセットであると述べられています。

データセットの構築

FullStack Benchデータセットは、単なるコードスニペットの集合ではありません。人間による詳細なアノテーションとマルチモデル投票メカニズムを採用することで、問題の多様性と難易度を確保しています。3374問(中国語と英語が半々)の問題を収録し、16のプログラミング言語を網羅しています。実際の開発シナリオに近い形でコード生成モデルの限界に挑戦し、データ分析、機械学習、Web開発など、様々な分野におけるモデルの適応性と実用性を包括的にテストします。

研究チームは、世界最大のプログラマー向けQ&AコミュニティであるStack Overflowにおける質問の分布を分析し、実社会でよく見られるプログラミング応用分野を抽出しました。図に示すように、研究チームはStack Overflowから50万件の質問をランダムにサンプリングし、大規模モデルを用いて各質問の応用分野の種類を分類しました。

研究チームは、主要なアプリケーション領域の上位88.1%を特定し、残りの領域を「その他」に分類しました。これに基づいて、チームは問題領域にラベルを付け、各領域の堅牢性を確保するために分布を適切に調整しました。最終的に、FullStack Benchが重点的に扱う11以上のアプリケーションシナリオとその分布比率が明らかになりました。

FullStack Bench の構築に成功した後、研究者は統計分析を実施し、その結果が図に示されています。

研究者らはLLaMA3トークナイザーを用いて、問題と正解コードの両方のトークン長を計算しました。その結果、問題の平均長は210.2トークンでした。評価の精度を確保するため、データセットには合計15,168件のユニットテストが含まれており、1つの問題あたり平均4.5件のユニットテストケースが含まれていました。

プロジェクトの特徴の概要

1. 幅広いアプリケーション: FullStack Benchは、サーバーサイド開発やWeb開発など、主要なアプリケーション開発分野をカバーしています。このモデルは、HTMLレイアウトからアプリケーションロジックの実装に至るまで、フルスタックのタスクを処理する必要があります。

2. 多様性と複雑性: 3Kのテストサンプルは、膨大な数にとどまらず、単純な機能実装から包括的なプロジェクト例まで、非常に多岐にわたります。この深さと幅広さは、既存のベンチマークとは比べものになりません。

3. 多言語サポート:このプロジェクトには 16 のプログラミング言語のサポートが組み込まれているため、研究者は Python、JavaScript、C++ などの言語間シナリオでモデルのパフォーマンスをより深く分析できます。

4. バイリンガル評価:各テスト問題は中国語と英語の両方で提供され、明確な解答例も添付されています。この設計は、多言語モデルの公平性を確保するだけでなく、評価の多様性と柔軟性を高めます。

5. 現実世界のシナリオシミュレーション:質問を設計する際には、Stack Overflow の質問分布を参考にし、開発者の日常業務のニーズを厳密に反映し、実際の開発環境と課題をシミュレートするよう努めました。

サポートツール: SandboxFusion

FullStack Benchは異なるデータ形式を使用し、異なる依存関係を持つため、評価の自動化は困難です。そのため、FullStack Benchには高性能なコードサンドボックス実行ツールであるSandboxFusionも含まれています。SandboxFusionは、統一されたHTTP APIを通じて、様々なプログラミングタスクに対する標準化された評価を提供します。これにより、コンテナ化されたテスト環境を迅速に起動し、様々なモデル構成を実行し、シームレスにテストを実行して結果を取得できます。

最近、DifySandbox、MultiPLE、MPLSandboxなど、多くのサンドボックス環境が登場しています。しかし、これらのサンドボックスには大きな制限(ディープラーニングパッケージをサポートしていないなど)があり、SandboxFusionは23のプログラミング言語をカバーし、フロントエンド開発、バックエンドサービス、機械学習といった複雑なシナリオをサポートします。

SandboxFusionは単一のデバイスで実行でき、ワンクリックのDockerデプロイをサポートします。FullStack Benchに加え、10種類以上のコード評価データセットもサポートしており、ワンストップでの評価が可能です。

SandboxFusion 使用ガイド

寄稿者: DW Whale Teaching Assistants @Wang Zeyu、Yang Chenxu、Zhao Wenkai

完全なチュートリアルのリンク⬇️

https://datawhaler.feishu.cn/...

ワンクリックで Docker を実行:

 docker run -d --rm -p 8080:8080 volcengine/sandbox-fusion:server-20241204

Sandbox Fusion は、主にコードの実行パズルの正確さのチェックという 2 つの機能を提供します。

コードを実行する

サンドボックスに Python コードの一部を実行するように要求するには、シェルで次のコマンドを実行します。

 curl 'http://localhost:8080/run_code' \

サンプル出力を見ると、インターフェースが実行の成功、ランタイム、標準出力、エラーメッセージなどの情報を返すことがわかります。Sandbox Fusion は、比較的安全で効率的かつ強力なコード評価機能を提供します。

 {

提供されているプレイグラウンドを通じてオンラインで体験することもできます。

https://bytedance.github.io/S...

データセット

データセットモジュールは、様々なコードデータセットの判定ロジックを実装しています。実装されているオープンソースデータセットには、mbpp、human_evalなどがあります。

サンドボックス モジュールとデータセット モジュールを組み合わせてモデル評価プロセスを形成します。

まず、HTTP API 経由で指定されたデータセット内の各質問のプロンプトを取得します。

 curl 'http://localhost:8080/get_prompts' \
 [

次のステップは、LLMを使ってコードを生成することです。GPTを開き、データセットで提供されているプロンプトを使ってダイアログコードを生成します。

生成されたテキストは、コード評価のために POST リクエスト本体に直接配置されます。

ご覧のとおり、送信された完了にはLLMの出力がすべて含まれており、コードセグメントを手動で抽出する必要はありません。Sandbox Fusionは、データセットの特性に基づいて対応するコードセグメント(extracted_code)を抽出し、展開(full_code)します。最後に、データセット内の結果と照合してテスト結果を取得します。

Sandbox Fusion は、オンライン審査員 (OJ) 向けのプレイグラウンドも提供しています。

https://bytedance.github.io/S...

Coder 大規模モデルの比較

コードモデルは既にリリースされており、多くの方が既に様々なコードモデルについて耳にしたり、使用したりされているかと思います。Qwen2.5-Coder、DeepSeek-Coder、GPT-o1、GPT-4o、CodeLlama、Claude 3.5 Sonnetなど、それぞれに特徴があります。私自身、Qwen2.5のCoderを頻繁に使用しており、その使い勝手は非常に良好です。

ByteDanceは今年6月、AIプログラミングアシスタント「Doubao MarsCode」をリリースしました。Datawhaleの経験を踏まえ、VsCode用のプラグインをダウンロードして試してみたところ、非常に良好な結果が得られたので、友人にも勧めました。今回のFullstack Bench論文レビューで評価された大規模コードモデルには、ByteDanceがこれまで公開していなかったDoubao-Coderが登場していました。これはDoubao MarsCodeのベースモデルだと聞いています。

Doubao-Coder はプレビュー版であるにもかかわらず、FullStack Bench ベンチマークで OpenAI と Claude に次ぐ素晴らしいスコアを達成しており、今後の展開が楽しみです。

さまざまな大規模モデルの現在のパフォーマンス スコア:

結論は

FullStack Bench と Sandbox Fusion を使用することで得られる最大のメリットは、Coder モデルのトレーニングと評価と深く統合できることです。

FullStack Benchは、基本アルゴリズムからフルスタック開発まで、幅広い問題を網羅する、多言語・マルチシナリオのコード能力テストデータセットです。実際の開発シナリオに忠実な設計は、高い応用価値を有しています。

Sandbox Fusion は、Docker に基づくワンクリック展開と使いやすい HTTP API インターフェースを備えた強力なコード実行および評価機能を提供し、テスト プロセスをシンプルかつ効率的にします。

FullStack Benchデータセットのオープンソースアドレスと使用ガイドは以下に記載されています。ぜひお試しください。

オープンソースアドレス:

https://huggingface.co/datase...

消費ガイド:

https://datawhaler.feishu.cn/...

いいね (3件のいいね!)↓