AIコーディングモデルの自己評価インタビュー。
11/21このプロジェクトは使用が難しすぎて、私はメンテナーです!インタビュースクリプトのリファクタリング、要件を更新するのに時間を費やしました。TXT。モデルとAPIの両方を評価するための新しい評価ガイドがあります。
11/20 CodeQWen2.5(新しい重み)の再評価。 Mistral-Small-2409およびMinistral-8B-2410を評価します。 GPT-4O-2024-11-20を評価します。
11/13 QWEN2.5を評価します(FP16で32B、GGUF Q8、EXL2 8BPW)、OpenCoder(1.5Bおよび8BでFP16)。
10/26評価QWEN2.5(3b、7b、14b fp16 | 14b、32b、72b awq)およびqwen-coder2.5
10/26利用可能なすべてのOpenAI、ミストラル、および人類モデルの評価を更新します。
10/25 IBM-granite/Granite-3.0ファミリーを評価する(8b密度、2b密度、1b Moe、3b Moe)。仕事の切り替えのために短い休みを取らなければなりませんでしたが、過去6週間で興味深いコードモデルや新しい家族が逃した場合、バックログに追いつくために、今では開かれた問題に取り組んでいます! QWEN2.5とLlama3.2は今週末になります。
9/12評価者のシリアル化バグを修正しました。これは、4つの結果の4つの結果に悪影響を及ぼしました:Deepseek-ai-deepseek-coder-v2-lite-instruct-fp16、ibm-granite-granite-8b-code-instruct-nf4、ajibawa-2023- Code-llama-3-8b、Ollama-Phi3:3.8b-mini-instruct-4k-fp16
9/11 yi-coder-1.5b-chatおよびyi-coder-9b-chat(fp16)を評価すると、特に9bは非常に強いです。
junior-v2
は、このプロジェクトのために作成された12のテストの多言語(Python、JavaScript)スイートで、小さなLLMコーディングパフォーマンスをテストします。このプロジェクトは、この評価を実行するために必要なすべてのコンポーネントを提供します。
? humaneval
Openaiによって作成された164のテストのPythonのみのスイートです。このプロジェクトは、Humanvalインタビューを準備および実行するためのテンプレートスクリプトと、評価者を支援する結果抽出スクリプトを提供します。詳細については、https://github.com/openai/human-evalを参照してください。
すべてのモデルの回答と評価結果がこのリポジトリ内に含まれるようになりました!最近のリリースのリリースのリリースをインストールしてpip install streamlit==1.23
から、 streamlit run app.py
またはstreamlit run compare-app.py
、上記のWebAppsをローカルに実行します。
?現在、Humaneval/ Developmentの作業は一時停止されており、さらに進んでいる他のプロジェクトがあります。
https://github.com/my-other-github-account/llm-humaneval-benchmarksおよびhttps://github.com/abacaj/code-evalを参照してください。
junior-v2/*.yaml
ジュニアコーダーインタビューの質問(安定)senior/*.yaml
シニアコーダーインタビューの質問(WIP)prompts/*.txt
さまざまなモデルのプロンプトテンプレートprepare.py
テンプレートを適用して、インタビューに適した言語およびモデル固有のプロンプトに変えることを疑問視しますリーダーボードのすべてのプロンプト参照については、プロンプト/を参照してください。
params/*.json
サンプリングハイパーパラメーターセット(すべてのインタビュースクリプトで使用)interview-*.py
インタビュースクリプトリーダーボードのすべてのPARAMS参照については、PARAMS/を参照してください。
evaluate.py
サンドボックスで生成されたコードのテストを実行し、各回答app.py
-retrylit webapp結果を調べるには、https://huggingface.co/spaces/mike-ravkine/can-ai-code-resultsを参照してくださいcompare.py
評価間の比較を実行し、オプションで分析のためにLLMに呼びかけますcompare-app.py
-App.py-比較を探索するためにWebAppを合理化します。https://huggingface.co/spaces/mike-ravkine/can-ai-code-compareを参照してくださいcompare/*.yaml
構成を比較しますcompare/*.json
結果を比較しますAPIランタイム | スクリプト |
---|---|
litellm(openaiなど..) | interview-litellm.py |
Oobabooga/Koboldcpp | interview-oobabooga.py |
Huggingfaceの推論 | interview-hfinference.py |
グラデーション(HFスペース) | interview-gradio.py |
量子化タイプ | スクリプト | 依存 |
---|---|---|
gguf | interview-llamacpp.py | llamacppまたはggmlバイナリ |
gptq(autogptq) | interview-cuda.py | Auto-GPTQ == 0.6.0 |
gptq(exllama) | interview-cuda.py | Exllama @ 3B013CD53C7D413CF99CA04C7C28DD5C95117C0D |
exl2、gptq(exllama2) | interview-cuda.py | exllamav2 @ 0.0.12 |
HQQ | interview-cuda.py | HQQ @ 0.1.1 |
awq、fp16(vllm) | interview-cuda.py | vllm == 0.3.0 |
Ctranslate2 | interview-cuda.py | Ctranslate2> = 3.16.0 |
bitsandbytes | interview-cuda.py | bitsandbytes == 0.41.3 |
FP16(トランス) | interview-cuda.py | トランス== 4.37.2 |
推奨されるモーダルラッパーは、CUDA11.8ベースのコンテナを構築するinterview_modal_cuda11.py
です。上記のすべての依存関係が機能します。 interview_modal_cuda12.py
も提供されていますが、autogptqとctranslate2は互換性がありません。
残念ながら、モーダルの性質により、EiteHR LLMモデルまたはランタイムエンジンのコマンドライン選択は許可されていません。
モデルを選択するには、スクリプトを開き、 .run_function(download...)
の選択ラインを除外します。一度に選択できるモデルは1つだけであることに注意してください。新しいモデルを追加するには、新しいdownload...
機能を実装します。
ランタイムを選択するには、スクリプトを開き、 RUNTIME
オプションの1つを除外します。 transformers
の場合、 QUANT
も指定する必要があることに注意してください。
インタビューの質問のセットは、.yamlファイルのフォルダーです。各質問はトップレベルのキーです。
SanityList :
Signature : " things() "
Input : " with no inputs "
Output : " a list with three values: the number 5, the string 'foobar', the capital city of Spain "
Fact : " the capital city of Spain is Madrid "
Description : " List function, see if the model can combine input facts with internal knowledge. "
Checks :
input_name :
assert : " f.name "
eq : " things "
この例では、 SanityList
インタビューの質問の名前です。
最初の4つのフィールドはprepare.py
によってインタビューを作成するために使用されます。
Signature
目的の関数署名ですInput
関数入力を記述しますOutput
関数出力を記述しますFact
はオプションであり、タスクを正しく実行するために必要なコンテキストを提供しますこれらの4つの変数とlanguage
( python
またはjavascript
のいずれか)を使用して、 prompts/
のテンプレートを拡張します。
最後の2つのフィールドはevaluate.py
によって結果を判断するために使用されます。
Description
このテストが役立つ理由の人間が読むことができる説明ですChecks
出力の予想される動作を定義します。各チェックには、名前、一部のassert
値(Pythonコード)、および予想されるeq
値があります。
Fオブジェクトは、関数のサンドボックスビューを表します。 f.name
およびf.args
フィールドを抽出するための関数署名で静的分析が実行され、 f.call
で関数評価が可能になります。
すべてのスクリプト出力は、.ndjsonファイルをresults/
ディレクトリに自動的に命名します。
各ステージは、その前のステージからのスーパーセットのフィールドを出力するため、評価/インタビューをインタビューに戻す(質問を再実行する)または評価(評価を再実行するため)に戻すことができます。
results/prepare_{interview}_{languages}_{template}.ndjson
フィールズ:
results/interview_{interview}_{languages}_{template}_{templateout}_{params}_{model}_{timestamp}.ndjson
フィールズ:
prepare
results/eval_{interview}_{languages}_{template}_{templateout}_{params}_{model}_{timestamp}.ndjson
フィールズ:
eval
フィールド