AI 코딩 모델에 대한 자기 평가 인터뷰.
11/21 이 프로젝트는 사용하기가 너무 어려웠고 저는 관리자입니다! 인터뷰 스크립트를 리팩토링하고 요구 사항을 업데이트하는 데 시간을 보냈으며 모델과 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 (FP16에서 1.5B 및 8B)를 평가합니다.
10/26 Qwen2.5 평가 2.5 (3b, 7b, 14b fp16 | 14b, 32b, 72b awq) 및 Qwen-Coder2.5
10/26 사용 가능한 모든 OpenAI, Mistral 및 Anthropic 모델의 업데이트 평가.
10/25 평가 IBM 그라 나이트/화강암 -3.0 패밀리 (8B 밀도, 2B 밀도, 1B MOE, 3B MOE). 작업 전환으로 인해 짧은 시간을 보내야했지만 이제는 지난 6 주 동안 흥미로운 코드 모델이나 새로운 가족이 있으면 백 로그를 따라 잡기 위해 노력해야했습니다. QWEN2.5 및 LLAMA3.2는 이번 주말에 올 것입니다.
9/12는 4 가지 결과에 부정적인 영향을 미치는 평가자의 직렬화 버그를 수정했습니다 : Deepseek-Deepseek-Coder-v2-lite-instruct-FP16, IBM-Granite-Granite-8B- 코드-비 스트럭스크 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
는 소규모 LLM 코딩 성능을 테스트하기 위해이 프로젝트를 위해 만들어진 12 개의 테스트로 구성된 다중 언어 (Python, JavaScript) 제품군입니다. 이 프로젝트는이 평가를 실행하는 데 필요한 모든 구성 요소를 제공합니다.
? humaneval
은 OpenAI가 만든 164 개의 테스트 스위트입니다. 이 프로젝트는 HumaneVal 인터뷰를 준비하고 실행하는 템플릿 스크립트를 제공하고 결과 추출 스크립트를 평가자를 돕습니다. 자세한 내용은 https://github.com/openai/human-eval을 참조하십시오.
모든 모델 답변 및 평가 결과는 이제이 저장소 내에 포함되어 있습니다! 최근 Streamlit pip install streamlit==1.23
의 릴리스를 설치 한 다음 streamlit run app.py
또는 streamlit run compare-app.py
실행하여 위의 WebApp을 로컬로 실행하십시오.
? Humaneval/ Development Work는 현재 일시 중지되어 있으며 훨씬 더 많은 프로젝트가 있습니다.
HumaneVal LLM 벤치 마크 결과의 큰 목록은 https://github.com/my-other-github-account/llm-humaneval-benchmarks 및 https://github.com/abacaj/code-eval을 참조하십시오.
junior-v2/*.yaml
주니어 코더 인터뷰 질문 (안정)senior/*.yaml
선임 코더 인터뷰 질문 (WIP)prompts/*.txt
-LLM Prompt Templatesprepare.py
템플릿을 적용하여 인터뷰에 적합한 언어 및 모델 별 프롬프트로 전환 리더 보드의 모든 프롬프트 참조에 대해서는 프롬프트를 참조하십시오.
params/*.json
샘플링 하이퍼 파라미터 세트 (모든 인터뷰 대본에서 사용)interview-*.py
인터뷰 대본 리더 보드의 모든 Params 참조에 대해서는 Params/를 참조하십시오.
evaluate.py
샌드 박스에서 생성 된 코드에 대한 테스트 실행 및 각 답변.app.py
lemelit webapp 결과를 탐색하려면 https://huggingface.co/spaces/mike-ravkine/can-ai-code-shentsults를 참조하십시오compare.py
평가 간의 비교를 수행하고 선택적으로 분석을 위해 LLM에 전화를 걸어compare-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 |
포옹 표면 추론 | interview-hfinference.py |
Gradio (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 @ 3B013CD53C7D413CF9999CA04C28DDD5C95117C0D |
exl2, gptq (exllama2) | interview-cuda.py | exllamav2 @ 0.0.12 |
본부 | 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 |
비트 산비 테스 | interview-cuda.py | Bitsandbytes == 0.41.3 |
FP16 (변압기) | interview-cuda.py | 변압기 == 4.37.2 |
권장 모달 래퍼는 interview_modal_cuda11.py
이며 위의 모든 종속성이 작동하는 Cuda11.8 기반 컨테이너를 구축합니다. interview_modal_cuda12.py
_modal_cuda12.py도 제공되지만 AutoGPTQ 및 CTRANSLATE2는 호환되지 않습니다.
불행히도 Modal의 특성은 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
인터뷰 질문의 이름입니다.
처음 4 개의 필드는 prepare.py
인터뷰를 만드는 데 사용됩니다.
Signature
원하는 기능 서명입니다Input
함수 입력을 설명합니다Output
기능 출력을 설명합니다Fact
은 선택 사항이며 작업을 올바르게 수행하는 데 필요한 모든 컨텍스트를 제공합니다. language
( python
또는 javascript
)와 함께이 4 가지 변수는 prompts/
의 템플릿을 확장하는 데 사용됩니다.
마지막 두 필드는 evaluate.py
에 의해 결과를 판단하기 위해 사용합니다.
Description
이 테스트가 유용한 이유에 대한 사람이 읽을 수있는 설명입니다.Checks
출력의 예상 동작을 정의합니다. 각 수표에는 이름, 일부 assert
값 (Python Code) 및 예상 eq
값이 있습니다.
F 객체는 함수의 샌드 박스보기를 나타냅니다. f.name
및 f.args
필드를 추출하기 위해 함수 시그니처에서 정적 분석을 수행하는 반면 f.call
기능 평가를 허용합니다.
모든 스크립트 출력은 results/
디렉토리에 .ndjson 파일을 자동으로 명명했습니다.
각 단계는 이전 단계에서 슈퍼 세트의 필드를 출력하므로 평가/인터뷰를 인터뷰 (질문을 다시 실행하기 위해) 또는 Eval (Eval을 다시 실행하기 위해)으로 돌아갈 수 있습니다.
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
필드