🚀 🦙💻 EvolCodeLlama-7b
🦙💻 EvolCodeLlama-7b 是一個基於微調技術的模型,它在代碼生成領域有著獨特的優勢。該模型以 codellama/CodeLlama-7b-hf
為基礎,通過在特定數據集上的精細調整,能夠更好地滿足用戶在代碼生成方面的需求,為開發者和研究者提供了一個強大的工具。
🚀 快速開始
本模型是基於 codellama/CodeLlama-7b-hf
模型,使用 QLoRA(4 位精度)在 mlabonne/Evol-Instruct-Python-1k
數據集上進行微調得到的。
📝 文章鏈接
🔧 訓練細節
該模型在 RTX 3090 上進行訓練,耗時 1 小時 11 分 44 秒,使用了以下配置文件:
base_model: codellama/CodeLlama-7b-hf
base_model_config: codellama/CodeLlama-7b-hf
model_type: LlamaForCausalLM
tokenizer_type: LlamaTokenizer
is_llama_derived_model: true
hub_model_id: EvolCodeLlama-7b
load_in_8bit: false
load_in_4bit: true
strict: false
datasets:
- path: mlabonne/Evol-Instruct-Python-1k
type: alpaca
dataset_prepared_path: last_run_prepared
val_set_size: 0.02
output_dir: ./qlora-out
adapter: qlora
lora_model_dir:
sequence_len: 2048
sample_packing: true
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_target_modules:
lora_target_linear: true
lora_fan_in_fan_out:
wandb_project: axolotl
wandb_entity:
wandb_watch:
wandb_run_id:
wandb_log_model:
gradient_accumulation_steps: 1
micro_batch_size: 10
num_epochs: 3
optimizer: paged_adamw_32bit
lr_scheduler: cosine
learning_rate: 0.0002
train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
tf32: false
gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
warmup_steps: 100
eval_steps: 0.01
save_strategy: epoch
save_steps:
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
bos_token: "<s>"
eos_token: "</s>"
unk_token: "<unk>"
以下是訓練過程中的損失曲線:

該模型主要用於教育目的,而非推理。

💻 使用示例
基礎用法
from transformers import AutoTokenizer
import transformers
import torch
model = "mlabonne/EvolCodeLlama-7b"
prompt = "Your prompt"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
f'{prompt}',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
📄 許可證
本項目採用 Apache-2.0 許可證。