
Самооценка интервью для моделей кодирования искусственного интеллекта.
11/21 Этот проект был слишком трудным в использовании, и я содействие! Я потратил некоторое время на рефактирование сценариев собеседования, обновляя требования.
11/20 переоценка CodeQwen2.5 (новые веса). Оцените Mistral-Small-2409 и министрал-8B-2410. Оценить GPT-4o-2024-11-20.
11/13 Оцените QWEN2,5 (32B при 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 и Antropic.
10/25 Оцените семейство IBM-Granite/Granite-3.0 (8b плотный, 2b плотный, 1B MOE, 3B MOE). Пришлось пройти короткий перерыв из -за переключения рабочих мест, но теперь работая над тем, чтобы наверстать упущенное на отставании, поэтому за последние ~ 6 недель, которые я пропустил! QWEN2.5 и Llama3.2 в эти выходные выйдут.
9/12 Исправлена ошибка сериализации в оценщике, которая негативно повлияла на четыре результата: DeepSeek-a-deepseek-coder-v2-lite-instruct-fp16, IBM-гранит-гранит-8B-код-инстрок-NF4, Ajibawa-2023- CODE-LLAMA-3-8B, OLLAMA-PHI3: 3,8B-MIN-INSTRUCT-4K-FP16
9/11 оценить Yi-Coder-1.5b-Chat и Yi-Coder-9b-чат (FP16), 9b, в частности, очень сильна.
junior-v2 -это многоязычный (Python, Javascript) набор из 12 тестов, созданных для этого проекта для тестирования производительности Small LLM кодирования. Этот проект предоставляет все необходимые компоненты для выполнения этой оценки.
? humaneval -это набор только для питона из 164 тестов, созданных Openai. Этот проект предоставляет сценарии шаблонов для подготовки и выполнения интервью Humaneval, а также сценарии извлечения результатов, чтобы помочь своему оценщику. См. Https://github.com/openai/human-val для получения дополнительной информации.
Все модельные ответы и результаты оценки теперь включены в этот репозиторий! Установите недавний выпуск Streamlit pip install streamlit==1.23 затем streamlit run app.py или streamlit run compare-app.py чтобы запустить вышеуказанные веб-приложения локально.
? В настоящее время приостановлены работы Humaneval/ Development, есть другие проекты, которые намного дальше.
См. Https://github.com/my-other-github-account/llm-humaneval-benchmarks и https://github.com/abacaj/code-val для больших списков результатов Humaneval LLM.
junior-v2/*.yaml - Вопросы интервью для младшего кодера (стабильная)senior/*.yaml - Вопросы для интервью с старшим кодером (WIP)prompts/*.txtprepare.py применяет шаблоны к вопросу о превращении их в языковые и специфичные для модели подготовки, подходящие для собеседования См. Подсказки/ для всех подсказок ссылок в таблице лидеров.
params/*.json - Наборы гиперпараметрических отборов (используются всеми сценариями собеседования)interview-*.py - Сценарии интервью См. Params/ для всех ссылок Params в таблице лидеров.
evaluate.py .app.py -Streamlit WebApp для изучения результатов, см. https://huggingface.co/spaces/mike-ravkine/can-ai-code-resultcompare.py .compare-app.py -Streamlit WebApp для изучения сравнения, см.compare/*.yaml - Сравните конфигурацииcompare/*.json - Сравните результаты | Время выполнения API | Сценарий |
|---|---|
| Litellm (Openai и т. Д.) | interview-litellm.py |
| Oobabooga/Koboldcpp | interview-oobabooga.py |
| Вывод с объятиями | interview-hfinference.py |
| Градио (пространства HF) | interview-gradio.py |
| Тип квантования | Сценарий | Зависимость |
|---|---|---|
| Gguf | interview-llamacpp.py | LMAMACPP или 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 |
| битсандбит | 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/ каталог.
Каждый этап выводит супер-набор полей с стадии перед ним, поэтому можно вернуть Eval/Question для собеседования (для повторного запуска вопросов) или обратно, чтобы 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