Downloads · 30 days
25
10% of all-time downloads
michaelfeil/ct2fast-Phind-CodeLlama-34B-v2
ct2fast-Phind-CodeLlama-34B-v2 is a text generation model from michaelfeil. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as llama2.
Speedup inference while reducing memory by 2x-4x using int8 inference in C++ on CPU or GPU.
Downloads · 30 days
25
10% of all-time downloads
All-time downloads
247
Public
Repo size
33.8 GB
Likes
0
Public
Click a slice to open those files.
.bin33.8 GB · 100%
From the Hugging Face model README
Speedup inference while reducing memory by 2x-4x using int8 inference in C++ on CPU or GPU.
quantized version of Phind/Phind-CodeLlama-34B-v2
pip install hf-hub-ctranslate2>=2.12.0 ctranslate2>=3.17.1
# from transformers import AutoTokenizer
model_name = "michaelfeil/ct2fast-Phind-CodeLlama-34B-v2"
from hf_hub_ctranslate2 import GeneratorCT2fromHfHub
model = GeneratorCT2fromHfHub(
# load in int8 on CUDA
model_name_or_path=model_name,
device="cuda",
compute_type="int8_float16",
# tokenizer=AutoTokenizer.from_pretrained("{ORG}/{NAME}")
)
outputs = model.generate(
text=["def fibonnaci(", "User: How are you doing? Bot:"],
max_length=64,
include_prompt_in_result=False
)
print(outputs)
Checkpoint compatible to ctranslate2>=3.17.1 and hf-hub-ctranslate2>=2.12.0
compute_type=int8_float16 for device="cuda"compute_type=int8 for device="cpu"Converted on 2023-10-08 using
LLama-2 -> removed <pad> token.
This is just a quantized version. Licence conditions are intended to be idential to original huggingface repo.
We've fine-tuned Phind-CodeLlama-34B-v1 on an additional 1.5B tokens high-quality programming-related data, achieving 73.8% pass@1 on HumanEval. It's the current state-of-the-art amongst open-source models.
Furthermore, this model is instruction-tuned on the Alpaca/Vicuna format to be steerable and easy-to-use.
More details can be found on our blog post.
This model is fine-tuned from Phind-CodeLlama-34B-v1 and achieves 73.8% pass@1 on HumanEval.
Phind-CodeLlama-34B-v2 is multi-lingual and is proficient in Python, C/C++, TypeScript, Java, and more.
We fined-tuned on a proprietary dataset of 1.5B tokens of high quality programming problems and solutions. This dataset consists of instruction-answer pairs instead of code completion examples, making it structurally different from HumanEval. LoRA was not used -- both models are a native finetune. We used DeepSpeed ZeRO 3 and Flash Attention 2 to train these models in 15 hours on 32 A100-80GB GPUs. We used a sequence length of 4096 tokens.
Make sure to install Transformers from the main git branch:
pip install git+https://github.com/huggingface/transformers.git
This model accepts the Alpaca/Vicuna instruction format.
For example:
### System Prompt
You are an intelligent programming assistant.
### User Message
Implement a linked list in C++
### Assistant
...
To reproduce our results:
from transformers import AutoTokenizer, LlamaForCausalLM
from human_eval.data import write_jsonl, read_problems
from tqdm import tqdm
# initialize the model
model_path = "Phind/Phind-CodeLlama-34B-v2"
model = LlamaForCausalLM.from_pretrained(model_path, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_path)
# HumanEval helper
def generate_one_completion(prompt: str):
tokenizer.pad_token = tokenizer.eos_token
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=4096)
# Generate
generate_ids = model.generate(inputs.input_ids.to("cuda"), max_new_tokens=384, do_sample=True, top_p=0.75, top_k=40, temperature=0.1)
completion = tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
completion = completion.replace(prompt, "").split("\n\n\n")[0]
return completion
# perform HumanEval
problems = read_problems()
num_samples_per_task = 1
samples = [
dict(task_id=task_id, completion=generate_one_completion(problems[task_id]["prompt"]))
for task_id in tqdm(problems)
for _ in range(num_samples_per_task)
]
write_jsonl("samples.jsonl", samples)
# run `evaluate_functional_correctness samples.jsonl` in your HumanEval code sandbox
This model has undergone very limited testing. Additional safety testing should be performed before any real-world deployments.