ShenghaoYummy commited on
Commit
27abace
·
verified ·
1 Parent(s): 94662f5

Upload fine-tuned TinyLlama e-commerce chatbot with LoRA adapter

Browse files
README.md ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
4
+ tags:
5
+ - fine-tuned
6
+ - e-commerce
7
+ - chatbot
8
+ - lora
9
+ - peft
10
+ language:
11
+ - en
12
+ pipeline_tag: text-generation
13
+ ---
14
+
15
+ # TinyLlama-ECommerce-Chatbot
16
+
17
+ This is a fine-tuned version of [TinyLlama/TinyLlama-1.1B-Chat-v1.0](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0) for e-commerce customer service chatbot applications.
18
+
19
+ ## Model Details
20
+
21
+ - **Base Model**: TinyLlama/TinyLlama-1.1B-Chat-v1.0
22
+ - **Fine-tuning Method**: LoRA (Low-Rank Adaptation)
23
+ - **Task**: E-commerce customer service conversation
24
+ - **Training Data**: ChatML formatted e-commerce conversations
25
+
26
+ ## Usage
27
+
28
+ ```python
29
+ from transformers import AutoModelForCausalLM, AutoTokenizer
30
+ from peft import PeftModel
31
+
32
+ # Load base model and tokenizer
33
+ base_model = AutoModelForCausalLM.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")
34
+ tokenizer = AutoTokenizer.from_pretrained("ShenghaoYummy/TinyLlama-ECommerce-Chatbot")
35
+
36
+ # Load the fine-tuned model
37
+ model = PeftModel.from_pretrained(base_model, "ShenghaoYummy/TinyLlama-ECommerce-Chatbot")
38
+
39
+ # Generate response
40
+ def generate_response(prompt):
41
+ inputs = tokenizer(prompt, return_tensors="pt")
42
+ outputs = model.generate(**inputs, max_new_tokens=150, temperature=0.8)
43
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
44
+
45
+ # Example usage
46
+ prompt = "<|system|>\nYou are a helpful e-commerce assistant.<|im_end|>\n<|user|>\nWhat's your return policy?<|im_end|>\n<|assistant|>\n"
47
+ response = generate_response(prompt)
48
+ print(response)
49
+ ```
50
+
51
+ ## Training Details
52
+
53
+ This model was fine-tuned using:
54
+ - LoRA with rank 16
55
+ - Learning rate optimization via Optuna
56
+ - MLflow experiment tracking
57
+ - DVC pipeline management
58
+
59
+ ## Limitations
60
+
61
+ - Optimized for e-commerce customer service scenarios
62
+ - May not perform well on general conversation topics
63
+ - Responses are based on training data patterns
64
+
65
+ ## Citation
66
+
67
+ If you use this model, please cite: @misc{ecommerce-chatbot-tinyllama,
68
+ title={Fine-tuned TinyLlama for E-commerce Customer Service},
69
+ author={Your Name},
70
+ year={2024},
71
+ url={https://huggingface.co/ShenghaoYummy/TinyLlama-ECommerce-Chatbot}
72
+ }
adapter_config.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alpha_pattern": {},
3
+ "auto_mapping": null,
4
+ "base_model_name_or_path": "TinyLlama/TinyLlama-1.1B-Chat-v1.0",
5
+ "bias": "none",
6
+ "corda_config": null,
7
+ "eva_config": null,
8
+ "exclude_modules": null,
9
+ "fan_in_fan_out": false,
10
+ "inference_mode": true,
11
+ "init_lora_weights": true,
12
+ "layer_replication": null,
13
+ "layers_pattern": null,
14
+ "layers_to_transform": null,
15
+ "loftq_config": {},
16
+ "lora_alpha": 32,
17
+ "lora_bias": false,
18
+ "lora_dropout": 0.05,
19
+ "megatron_config": null,
20
+ "megatron_core": "megatron.core",
21
+ "modules_to_save": null,
22
+ "peft_type": "LORA",
23
+ "r": 16,
24
+ "rank_pattern": {},
25
+ "revision": null,
26
+ "target_modules": [
27
+ "gate_proj",
28
+ "down_proj",
29
+ "k_proj",
30
+ "v_proj",
31
+ "q_proj",
32
+ "o_proj",
33
+ "up_proj"
34
+ ],
35
+ "task_type": "CAUSAL_LM",
36
+ "trainable_token_indices": null,
37
+ "use_dora": false,
38
+ "use_rslora": false
39
+ }
adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c7ccc0cf0c164e64922658d934fd369c85cfdd49ad1db6a89170f4a0b967f80d
3
+ size 50503544
special_tokens_map.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": {
17
+ "content": "</s>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "unk_token": {
24
+ "content": "<unk>",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ }
30
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": true,
3
+ "add_eos_token": false,
4
+ "add_prefix_space": null,
5
+ "added_tokens_decoder": {
6
+ "0": {
7
+ "content": "<unk>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false,
12
+ "special": true
13
+ },
14
+ "1": {
15
+ "content": "<s>",
16
+ "lstrip": false,
17
+ "normalized": false,
18
+ "rstrip": false,
19
+ "single_word": false,
20
+ "special": true
21
+ },
22
+ "2": {
23
+ "content": "</s>",
24
+ "lstrip": false,
25
+ "normalized": false,
26
+ "rstrip": false,
27
+ "single_word": false,
28
+ "special": true
29
+ }
30
+ },
31
+ "bos_token": "<s>",
32
+ "chat_template": "{% for message in messages %}\n{% if message['role'] == 'user' %}\n{{ '<|user|>\n' + message['content'] + eos_token }}\n{% elif message['role'] == 'system' %}\n{{ '<|system|>\n' + message['content'] + eos_token }}\n{% elif message['role'] == 'assistant' %}\n{{ '<|assistant|>\n' + message['content'] + eos_token }}\n{% endif %}\n{% if loop.last and add_generation_prompt %}\n{{ '<|assistant|>' }}\n{% endif %}\n{% endfor %}",
33
+ "clean_up_tokenization_spaces": false,
34
+ "eos_token": "</s>",
35
+ "extra_special_tokens": {},
36
+ "legacy": false,
37
+ "model_max_length": 2048,
38
+ "pad_token": "</s>",
39
+ "padding_side": "right",
40
+ "sp_model_kwargs": {},
41
+ "tokenizer_class": "LlamaTokenizer",
42
+ "unk_token": "<unk>",
43
+ "use_default_system_prompt": false
44
+ }