Shankar Prakash Thirumaran commited on
Commit
229e12d
·
1 Parent(s): b843926

moved the files into peft folder

Browse files
peft/README.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ ---
2
+ license: mit
3
+ ---
peft/adapter_config.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alpha_pattern": {},
3
+ "auto_mapping": null,
4
+ "base_model_name_or_path": "mistralai/Mistral-7B-Instruct-v0.2",
5
+ "bias": "none",
6
+ "fan_in_fan_out": false,
7
+ "inference_mode": true,
8
+ "init_lora_weights": true,
9
+ "layers_pattern": null,
10
+ "layers_to_transform": null,
11
+ "loftq_config": {},
12
+ "lora_alpha": 16,
13
+ "lora_dropout": 0.05,
14
+ "megatron_config": null,
15
+ "megatron_core": "megatron.core",
16
+ "modules_to_save": null,
17
+ "peft_type": "LORA",
18
+ "r": 16,
19
+ "rank_pattern": {},
20
+ "revision": "unsloth",
21
+ "target_modules": [
22
+ "o_proj",
23
+ "q_proj",
24
+ "up_proj",
25
+ "v_proj",
26
+ "k_proj",
27
+ "gate_proj",
28
+ "down_proj"
29
+ ],
30
+ "task_type": "CAUSAL_LM",
31
+ "use_rslora": false
32
+ }
peft/adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bd4ffbe4f5fc56caab09655485f29d491fdb29258eb01a8fb4da05cf1e9f406a
3
+ size 167832240
peft/handler.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from unsloth import FastLanguageModel
2
+ from peft import PeftModel
3
+ from peft import PeftConfig
4
+
5
+ class EndpointHandler():
6
+ def __init__(self, path="."):
7
+
8
+ model, tokenizer = FastLanguageModel.from_pretrained(
9
+ model_name = ".",
10
+ max_seq_length = 2048,
11
+ dtype = None,
12
+ load_in_4bit = True,
13
+ )
14
+ model.config.use_cache = False
15
+ model.config.pad_token_id = model.config.eos_token_id
16
+ tokenizer.pad_token = tokenizer.eos_token
17
+ tokenizer.padding_side = "right"
18
+
19
+ self.model = model
20
+ self.model.eval()
21
+ self.device_map = "cuda" # the device to load the model onto
22
+ self.tokenizer = tokenizer
23
+
24
+
25
+ def __call__(self, data: any) -> any:
26
+ inputs = data.pop("inputs", data)
27
+ if len(inputs) == 0:
28
+ raise ValueError("prompt cannot be empty")
29
+ model_input = self.tokenizer(inputs, return_tensors="pt").to(self.device_map)
30
+ output = self.model.generate(input_ids=model_input["input_ids"].to(self.device_map),
31
+ use_cache=False,
32
+ temperature=0.1, top_k=1, top_p=1.0, repetition_penalty=1.4,
33
+ max_new_tokens=256,
34
+ do_sample=True,
35
+ pad_token_id=self.tokenizer.pad_token_id,
36
+ eos_token_id=self.tokenizer.eos_token_id,
37
+ num_beams=1,
38
+ num_return_sequences=1)
39
+ output = self.tokenizer.decode(output[0])
40
+ result = (output
41
+ .split(self.tokenizer.eos_token)[0]
42
+ .split("Response:")[1]
43
+ .strip()
44
+ .split("###")[0]
45
+ .replace("```json", "")
46
+ .replace("```", ""))
47
+
48
+ return {"response":result}
49
+
peft/requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ torch==2.1.0
2
+ transformers==4.37.2
3
+ xformers
4
+ bitsandbytes
5
+ peft
6
+ ipython
7
+ unsloth @ git+https://github.com/unslothai/unsloth.git@e091bca34ad5df406a693685ea576366d79636f8
peft/special_tokens_map.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<s>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "</s>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": "</s>",
17
+ "unk_token": {
18
+ "content": "<unk>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ }
24
+ }
peft/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
peft/tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dadfd56d766715c61d2ef780a525ab43b8e6da4de6865bda3d95fdef5e134055
3
+ size 493443
peft/tokenizer_config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": true,
3
+ "add_eos_token": false,
4
+ "added_tokens_decoder": {
5
+ "0": {
6
+ "content": "<unk>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "1": {
14
+ "content": "<s>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "2": {
22
+ "content": "</s>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ }
29
+ },
30
+ "additional_special_tokens": [],
31
+ "bos_token": "<s>",
32
+ "chat_template": "{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if message['role'] == 'user' %}{{ '[INST] ' + message['content'] + ' [/INST]' }}{% elif message['role'] == 'assistant' %}{{ message['content'] + eos_token}}{% else %}{{ raise_exception('Only user and assistant roles are supported!') }}{% endif %}{% endfor %}",
33
+ "clean_up_tokenization_spaces": false,
34
+ "eos_token": "</s>",
35
+ "legacy": true,
36
+ "model_max_length": 32768,
37
+ "pad_token": "</s>",
38
+ "padding_side": "right",
39
+ "sp_model_kwargs": {},
40
+ "spaces_between_special_tokens": false,
41
+ "tokenizer_class": "LlamaTokenizer",
42
+ "unk_token": "<unk>",
43
+ "use_default_system_prompt": false
44
+ }