
AI編碼模型的自我評估訪談。
11/21這個項目太難使用了,我是維護者!我花了一些時間重構採訪腳本,更新需求。
11/20 re-評估Codeqwen2.5(新權重)。評估Mistral-Small-2409和Ministral-8B-2410。評估GPT-4O-2024-11-20。
11/13評估QWEN2.5(FP16,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,Mistral和人類模型的評估。
10/25評估IBM Granite/Granite-3.0家族(8B密度,2B密集,1B Moe,3B Moe)。由於轉換工作,不得不短暫停滯,但是現在努力趕上積壓的問題,如果我錯過了最後〜6週,如果有任何有趣的代碼模型或新家庭,那麼如果我錯過了任何有趣的代碼模型或新家庭! Qwen2.5和Llama3.2將於本週末舉行。
9/12修復了評估器中的一個序列化錯誤,對四個結果產生了負面影響:DeepSeek-ai-Deepseek-coder-v2-lite-lite-instruct-fp16,IBM Granite-Granite-Granite-Granite- 8B-8B-Code-NF4,Ajibawa-2023--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是一套多語言(Python,JavaScript)套件,該套件是為該項目創建的12個測試,用於測試小LLM編碼性能。該項目提供了執行此評估的所有必要組件。
? humaneval是由Openai創建的164次測試的僅Python套件。該項目提供了模板腳本來準備和執行人道訪談,以及結果提取腳本以幫助其評估者。有關更多信息,請參見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/abacaj/code-eval有關Humaneval LLM基準測試結果的大量列表。
junior-v2/*.yaml初級編碼員面試問題(穩定)senior/*.yaml高級編碼員面試問題(WIP)prompts/*.txt提示模板的各種模型prepare.py 。 有關排行榜中的所有提示,請參見提示/提示。
params/*.json抽樣超參數集(所有採訪腳本都使用)interview-*.py採訪腳本有關排行榜中的所有參數參考,請參見參數/。
evaluate.py 。app.py簡化webApp以探索結果,請參閱https://huggingface.co/spaces/mike-ravkine/can-ai-code-resultscompare.py進行評估之間的比較,可選地呼籲LLM進行分析compare-app.py簡化WebApp以探索比較,請參見https://huggingface.co/spaces/mike-ravkine/can-ai-code-comparecompare/*.yaml比較配置compare/*.json比較結果| API運行時 | 腳本 |
|---|---|
| Litellm(Openai等) | interview-litellm.py |
| oobabooga/koboldcpp | interview-oobabooga.py |
| 擁抱面推理 | interview-hfinference.py |
| Gradio(HF空間) | interview-gradio.py |
| 量化類型 | 腳本 | 依賴性 |
|---|---|---|
| GGUF | interview-llamacpp.py | llamacpp或ggml二進制 |
| GPTQ(AUTOGPTQ) | interview-cuda.py | 自動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 |
推薦的模態包裝器是interview_modal_cuda11.py ,它構建一個基於CUDA11.8的容器,所有上述依賴項都可以使用。還提供了interview_modal_cuda12.py ,但是AutoGPTQ和Ctranslate2不兼容。
不幸的是,模態的性質不允許選擇EITEHR LLM模型或運行時引擎的命令行選擇。
要選擇模型,請打開腳本並輸入.run_function(download...)選擇行。請注意,一次只能選擇一個模型。要添加新模型,請實現新的download...函數。
要選擇運行時,請打開腳本並輸入RUNTIME選項之一。請注意,對於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是面試問題的名稱。
prepare.py使用前四個字段來創建面試:
Signature是所需功能簽名Input描述功能輸入Output描述功能輸出Fact是可選的,並提供了正確執行任務所需的任何上下文這4個變量以及language ( python或javascript )用於在prompts/中擴展模板。
最後兩個字段用於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字段