/ Модель

Характеристики

Контекст
2 048 токенов
Размер весов
5,6 ГБ
Лицензия
Своя лицензия
Архитектура
phi-msft · dense
Библиотека
transformers
Опубликована
24 дек 2023

phi-2-coder

Генерация текстаТекст → текст7 профессий

Phi-2 Coder — дообученная на инструкциях по программированию модель для генерации кода и ответов на запросы разработчиков.

349скачиваний за 30 дней29лайковвеса обновлены22 фев 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

mrm8488/phi-2-coder — языковая модель Phi-2, дообученная разработчиком mrm8488 на 20 тысячах инструкций из набора CodeAlpaca_20K с использованием QLoRA и PEFT. Это плотный Transformer с архитектурой PhiForCausalLM и 2,7 млрд параметров; модель предназначена для генерации кода и ответов на инструкции по программированию. Она принимает текстовые запросы и генерирует текст, включая код. В метаданных указано окно контекста 2048 токенов и поддержка библиотеки Transformers.

Модель подходит для генерации фрагментов кода, помощи с программированием и выполнения простых инструкций по коду. README не содержит завершённых результатов HumanEval, поэтому подтверждённых показателей качества для задач программирования нет. Репозиторий содержит веса в формате Safetensors. Лицензия обозначена как other, а конкретные условия использования в карточке не описаны.

Сценарии применения

  • генерация фрагментов кода по текстовому описанию
  • получение ответов на вопросы по программированию
  • выполнение инструкций по написанию кода
  • создание примеров кода для обучения и прототипирования

Ограничения

В README результаты HumanEval обозначены как незавершённые, поэтому качество на этом бенчмарке не подтверждено. Лицензия указана как other без описания конкретных условий использования.

Для каких профессий подходит7

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Phi-2 Coder 👩‍💻

Phi-2 fine-tuned on the CodeAlpaca 20k instructions dataset by using the method QLoRA with PEFT library.

Model description 🧠

Phi-2

Phi-2 is a Transformer with 2.7 billion parameters. It was trained using the same data sources as Phi-1.5, augmented with a new data source that consists of various NLP synthetic texts and filtered websites (for safety and educational value). When assessed against benchmarks testing common sense, language understanding, and logical reasoning, Phi-2 showcased a nearly state-of-the-art performance among models with less than 13 billion parameters.

Training and evaluation data 📚

CodeAlpaca_20K: contains 20K instruction-following data used for fine-tuning the Code Alpaca model.

Training procedure

The following bitsandbytes quantization config was used during training:

  • quant_method: bitsandbytes
  • load_in_8bit: True
  • load_in_4bit: False
  • llm_int8_threshold: 6.0
  • llm_int8_skip_modules: None
  • llm_int8_enable_fp32_cpu_offload: False
  • llm_int8_has_fp16_weight: False
  • bnb_4bit_quant_type: fp4
  • bnb_4bit_use_double_quant: False
  • bnb_4bit_compute_dtype: float32

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 2.5e-05
  • train_batch_size: 4
  • eval_batch_size: 8
  • seed: 66
  • gradient_accumulation_steps: 32
  • total_train_batch_size: 128
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • num_epochs: 2

Training results

Training LossEpochStepValidation Loss
0.76310.36500.7174
0.67350.711000.6949
0.6961.071500.6893
0.78611.422000.6875
0.73461.782500.6867

HumanEval results 📊

WIP

Example of usage 👩‍💻

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "mrm8488/phi-2-coder"

tokenizer = AutoTokenizer.from_pretrained(model_id, add_bos_token=True, trust_remote_code=True, use_fast=False)

model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True, torch_dtype=torch.float16, device="auto")

def generate(
        instruction,
        max_new_tokens=128,
        temperature=0.1,
        top_p=0.75,
        top_k=40,
        num_beams=2,
        **kwargs,
):
    prompt = "Instruct: " + instruction + "\nOutput:"
    print(prompt)
    inputs = tokenizer(prompt, return_tensors="pt")
    input_ids = inputs["input_ids"].to("cuda")
    attention_mask = inputs["attention_mask"].to("cuda")
  
    with torch.no_grad():
        generation_output = model.generate(
            input_ids=input_ids,
            attention_mask=attention_mask,
            max_new_tokens=max_new_tokens,
            eos_token_id = tokenizer.eos_token_id,
            use_cache=True,
            early_stopping=True
        )
    output = tokenizer.decode(generation_output[0])
    return output.split("\nOutput:")[1].lstrip("\n")

instruction = "Design a class for representing a person in Python."
print(generate(instruction))

How to use with MLX.

# Install mlx, mlx-examples, huggingface-cli
pip install mlx
pip install huggingface_hub hf_transfer
git clone https://github.com/ml-explore/mlx-examples.git

# Download model
export HF_HUB_ENABLE_HF_TRANSFER=1
huggingface-cli download --local-dir phi-2-coder mrm8488/phi-2-coder

# Run example
python mlx-examples/llms/phi2.py --model-path phi-2-coder --prompt "Design a class for representing a person in Python" 

Citation

@misc {manuel_romero_2023,
	author       = { {Manuel Romero} },
	title        = { phi-2-coder (Revision 4ae69ae) },
	year         = 2023,
	url          = { https://huggingface.co/mrm8488/phi-2-coder },
	doi          = { 10.57967/hf/1518 },
	publisher    = { Hugging Face }
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

MLX-модели работают только на Apple Silicon.

Класс архитектуры
PhiForCausalLM
Ревизия весов
e2f690d

0 моделей