
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字段