Views
No views yet
| Name | Quant method | Size |
|---|---|---|
| CodeMind-gemma-2b.Q2_K.gguf | Q2_K | 1.08GB |
| CodeMind-gemma-2b.IQ3_XS.gguf | IQ3_XS | 1.16GB |
| CodeMind-gemma-2b.IQ3_S.gguf | IQ3_S | 1.2GB |
| CodeMind-gemma-2b.Q3_K_S.gguf | Q3_K_S | 1.2GB |
| CodeMind-gemma-2b.IQ3_M.gguf | IQ3_M | 1.22GB |
| CodeMind-gemma-2b.Q3_K.gguf | Q3_K | 1.29GB |
| CodeMind-gemma-2b.Q3_K_M.gguf | Q3_K_M | 1.29GB |
| CodeMind-gemma-2b.Q3_K_L.gguf | Q3_K_L | 1.36GB |
| CodeMind-gemma-2b.IQ4_XS.gguf | IQ4_XS | 1.4GB |
| CodeMind-gemma-2b.Q4_0.gguf | Q4_0 | 1.44GB |
| CodeMind-gemma-2b.IQ4_NL.gguf | IQ4_NL | 1.45GB |
| CodeMind-gemma-2b.Q4_K_S.gguf | Q4_K_S | 1.45GB |
| CodeMind-gemma-2b.Q4_K.gguf | Q4_K | 1.52GB |
| CodeMind-gemma-2b.Q4_K_M.gguf | Q4_K_M | 1.52GB |
| CodeMind-gemma-2b.Q4_1.gguf | Q4_1 | 1.56GB |
| CodeMind-gemma-2b.Q5_0.gguf | Q5_0 | 1.68GB |
| CodeMind-gemma-2b.Q5_K_S.gguf | Q5_K_S | 1.68GB |
| CodeMind-gemma-2b.Q5_K.gguf | Q5_K | 1.71GB |
| CodeMind-gemma-2b.Q5_K_M.gguf | Q5_K_M | 1.71GB |
| CodeMind-gemma-2b.Q5_1.gguf | Q5_1 | 1.79GB |
| CodeMind-gemma-2b.Q6_K.gguf | Q6_K | 1.92GB |
| CodeMind-gemma-2b.Q8_0.gguf | Q8_0 | 2.49GB |
gemma-1.1-2b-it peft qlora.ipynb: fine tuning 과정에 대한 세부 사항이 포함된 노트북입니다.1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3tokenizer = AutoTokenizer.from_pretrained("kreimben/CodeMind-gemma-2b")
4model = AutoModelForCausalLM.from_pretrained("kreimben/CodeMind-gemma-2b")
5
6inputs = tokenizer("코딩 문제나 질문을 여기에 입력하세요", return_tensors="pt")
7outputs = model.generate(inputs.input_ids)
8print(tokenizer.decode(outputs[0]))1import os
2from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
3
4bnb_config = BitsAndBytesConfig(
5 load_in_4bit=True,
6 bnb_4bit_quant_type="nf4",
7 bnb_4bit_compute_dtype=torch.bfloat16
8)
9
10model_id = 'google/gemma-1.1-2b-it'
11token = os.getenv('HF_READ')
12
13model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map={"": 0}, token=token)
14model.config.use_cache = False
15model.gradient_checkpointing_enable()
16
17tokenizer = AutoTokenizer.from_pretrained(model_id)
18tokenizer.padding_side = 'right'
19tokenizer.pad_token = tokenizer.eos_token1from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
2import bitsandbytes as bnb
3
4model = prepare_model_for_kbit_training(model)
5
6def find_all_linear_names(model):
7 cls = bnb.nn.Linear4bit
8 lora_module_names = set()
9 for name, module in model.named_modules():
10 if isinstance(module, cls):
11 names = name.split('.')
12 lora_module_names.add(names[0] if len(names) == 1 else names[-1])
13 if 'lm_head' in lora_module_names:
14 lora_module_names.remove('lm_head')
15 return list(lora_module_names)
16
17modules = find_all_linear_names(model)
18lora_config = LoraConfig(
19 r=64,
20 lora_alpha=32,
21 target_modules=modules,
22 lora_dropout=0.05,
23 bias="none",
24 task_type="CAUSAL_LM"
25)
26
27model = get_peft_model(model, lora_config)1import pandas as pd
2from datasets import Dataset
3
4submission_dataset = datasets.load_dataset('kreimben/leetcode_user_submissions_only_python', split='train').to_pandas()
5submission_dataset = submission_dataset[['title', 'question_hints', 'question_content', 'content']]
6captions_dataset = datasets.load_dataset('kreimben/leetcode_with_youtube_captions', split='train').to_pandas()
7captions_dataset = captions_dataset[['title', 'question_hints', 'question_content', 'cc_content']]
8captions_dataset.rename(columns={'cc_content': 'content'}, inplace=True)
9
10dataset = pd.concat([submission_dataset, captions_dataset])
11del submission_dataset, captions_dataset
12
13dataset = Dataset.from_pandas(dataset)
14GEMMA_2B_IT_MODEL_PREFIX_TEXT = "Below is an coding test problem. Solve the question."
15
16def generate_prompt(data_point):
17 return f"<bos><start_of_turn>user {GEMMA_2B_IT_MODEL_PREFIX_TEXT}
18
19I don't know {data_point['title']} problem. give me the insight or appoach.
20
21this is problem's hint.
22{data_point['question_hints']}
23
24here are some content of question.
25{data_point['question_content']}<end_of_turn>
26<start_of_turn>model {data_point['content']}<end_of_turn><eos>"
27
28text_column = [generate_prompt(data_point) for data_point in dataset]
29dataset = dataset.add_column("prompt", text_column)1from trl import SFTTrainer
2import transformers
3import torch
4
5tokenizer.pad_token = tokenizer.eos_token
6torch.cuda.empty_cache()
7
8trainer = SFTTrainer(
9 model=model,
10 train_dataset=dataset,
11 dataset_text_field="prompt",
12 peft_config=lora_config,
13 data_collator=transformers.DataCollatorForLanguageModeling(tokenizer, mlm=False),
14 args=transformers.TrainingArguments(
15 output_dir='out',
16 bf16=True,
17 max_steps=100,
18 warmup_steps=50,
19 per_device_train_batch_size=1,
20 gradient_accumulation_steps=1,
21 optim="paged_adamw_8bit",
22 logging_steps=20,
23 report_to='wandb',
24 ),
25)
26
27trainer.train()| Metric | Value |
|---|---|
| Average | 41.62 |
| ARC | 41.81 |
| HellaSwag | 59.03 |
| MMLU | 37.26 |
| TruthfulQA | 43.45 |
| Winogrande | 59.91 |
| GSM8K | 8.26 |