erythropygia commited on
Commit
c68b966
1 Parent(s): f22e9bb

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +88 -0
README.md ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-4.0
3
+ language:
4
+ - tr
5
+ pipeline_tag: question-answering
6
+ ---
7
+
8
+ # Model Card for Model ID
9
+
10
+
11
+ gemma-2b-tr fine-tuned with Turkish Instruction-Response pairs.
12
+
13
+
14
+ ## Restrictions
15
+
16
+ Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms
17
+ Please refer to the gemma use restrictions before start using the model.
18
+ https://ai.google.dev/gemma/terms#3.2-use
19
+
20
+ ## Using model
21
+
22
+ ```Python
23
+ import torch,re
24
+ from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
25
+
26
+ bnb_config = BitsAndBytesConfig(
27
+ load_in_4bit=True,
28
+ bnb_4bit_use_double_quant=True,
29
+ bnb_4bit_quant_type="nf4",
30
+ bnb_4bit_compute_dtype=torch.bfloat16
31
+ )
32
+
33
+ from transformers import AutoTokenizer, AutoModelForCausalLM
34
+
35
+ model_id = "erythropygia/Gemma2b-Turkish-Instruction"
36
+
37
+ model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map={"":0})
38
+ tokenizer = AutoTokenizer.from_pretrained(model_id, add_eos_token=True, padding_side="left")
39
+
40
+ def get_completion(query: str, model, tokenizer) -> str:
41
+ device = "cuda:0"
42
+
43
+ prompt_template = """
44
+ <start_of_turn>user
45
+ Alt satırdaki soruya cevap ver:\n
46
+ {query}
47
+ <end_of_turn>\n<start_of_turn>model
48
+ """
49
+ prompt = prompt_template.format(query=query)
50
+
51
+ encodeds = tokenizer(prompt, return_tensors="pt", add_special_tokens=True)
52
+
53
+ model_inputs = encodeds.to(device)
54
+
55
+
56
+ #max_new_tokens = 200, temperature = 0.9, repetition_penalty = 0.5, disabled
57
+ #num_return_sequences=1, max_length = 256,
58
+ generated_ids = model.generate(**model_inputs, max_new_tokens = 256, do_sample=True, pad_token_id=tokenizer.eos_token_id)
59
+ # decoded = tokenizer.batch_decode(generated_ids)
60
+ decoded = tokenizer.decode(generated_ids[0], skip_special_tokens=False)
61
+ # Kapanmamış etiketleri silmek için düzenli ifade kullanma
62
+
63
+ decoded = re.sub(r'<(end_of_turn|start_of_turn|eos|bos)>[^<]*$', '', decoded)
64
+
65
+ decoded = re.sub(r'<(end_of_turn|start_of_turn|eos|bos)>', '', decoded)
66
+
67
+ return decoded.strip()
68
+
69
+ result = get_completion(query="int türünde üç parametre alan ve bunların toplamını döndüren bir işlev oluşturun.", model=model, tokenizer=tokenizer)
70
+ print(result)
71
+ ```
72
+
73
+
74
+ ## Training Details
75
+
76
+ ### Training Data
77
+
78
+ - Dataset size: ~75k instruction-response pair.
79
+
80
+ ### Training Procedure
81
+
82
+ #### Training Hyperparameters
83
+
84
+ - **Epochs:** 1
85
+ - **Context length:** 1024
86
+ - **LoRA Rank:** 32
87
+ - **LoRA Alpha:** 64
88
+ - **LoRA Dropout:** 0.05