phongnp2010 commited on
Commit
0ea9cc7
1 Parent(s): e94ce8c

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +76 -90
README.md CHANGED
@@ -1,90 +1,76 @@
1
- # 1.Import Necessary libraries
2
- import os
3
- import torch
4
- import time
5
- from transformers import (
6
- AutoTokenizer,
7
- AutoModelForCausalLM,
8
- BitsAndBytesConfig,
9
- HfArgumentParser,
10
- TrainingArguments,
11
- pipeline,
12
- logging,
13
-
14
- )
15
- from peft import LoraConfig, PeftModel
16
- import torch.distributed as dist
17
- from torch.nn.parallel import DistributedDataParallel as DDP
18
- from accelerate import Accelerator
19
- import config_train as cfg
20
-
21
- accelerator = Accelerator()
22
-
23
- # 2. Model and Dataset Configuration
24
- model_name = cfg.model_name
25
- # new_model = "Llama-2-7b-chat-finetune-qlora"
26
- # new_model = "/mnt/md1/check_point_text_recognition/ckpt_chatbot/checkpoint-53390"
27
- new_model = "/mnt/md1/check_point_text_recognition/ckpt_chatbot/241202/checkpoint-2700"
28
- # device_map = {"":0}
29
-
30
- # 3. Tokenizer and PEFT configuration
31
- #Load LLama tokenizer
32
- tokenizer = AutoTokenizer.from_pretrained(model_name,trust_remote_code = True)
33
- tokenizer.pad_token = tokenizer.eos_token
34
- tokenizer.padding_side = "right"
35
-
36
- # 4. load model for inference
37
- '''
38
- Since the model is loaded in full precision (float32), it requires more memory.
39
- For large models like LLaMA-2 7B, this can consume significant GPU memory.
40
- '''
41
- # Step 1: Load the base model
42
- # base_model = AutoModelForCausalLM.from_pretrained(
43
- # model_name, # The original base model's name or path
44
- # device_map=device_map, # Or specify your device
45
- # )
46
- '''
47
- Mixed Precision: FP16 uses 16-bit floating point numbers, which reduces the memory usage and
48
- allows the model to fit into GPU memory more easily. However, this could potentially reduce
49
- numerical accuracy slightly, but in most NLP tasks, the difference is negligible.
50
- '''
51
- base_model = AutoModelForCausalLM.from_pretrained(
52
- model_name,
53
- low_cpu_mem_usage=True,
54
- return_dict=True,
55
- torch_dtype=torch.float16,
56
- device_map=cfg.device_map,
57
- )
58
- # Step 2: Load the fine-tuned LoRA model (saved from trainer.model.save_pretrained)
59
- model = PeftModel.from_pretrained(base_model, new_model) # `new_model` is the path where you saved the model
60
-
61
- # Step 3: Merge the LoRA weights with the base model
62
- model = model.merge_and_unload()
63
- model, tokenizer = accelerator.prepare(model, tokenizer) #Wrap model and tokenizer with Accelerator
64
-
65
- # Ignore warnings
66
- logging.set_verbosity(logging.CRITICAL)
67
-
68
- # 5. Run text generation pipeline with our next model
69
- # prompt = "How can I learn to optimize my webpage for search engines?"
70
-
71
- prompt_path = "/mnt/md1/check_point_text_recognition/ckpt_chatbot/prompt_for_test.txt"
72
-
73
- prompt = '''
74
- How to train a LLM model
75
- '''
76
- pipe = pipeline(task="text-generation", model=base_model, tokenizer=tokenizer, max_length=2048)
77
- while True:
78
- prompt = input("Type your question: ")
79
- if prompt != '0':
80
- with open(prompt_path, 'r') as file:
81
- text = file.read().strip()
82
- start = time.time()
83
- result = pipe(f"<s>[INST] {text} [/INST]")
84
- result = result[0]['generated_text']
85
- answer = result.split('[/INST]')[1].split('</s>')[0].strip()
86
- print('Answer:', answer)
87
- print('time:', time.time() - start)
88
- else:
89
- print('Xin cảm ơn!')
90
- exit(0)
 
1
+
2
+
3
+
4
+ **2. Tạo Model Card trên Hugging Face Hub**
5
+ Sau khi bạn soạn thảo xong Model Card, bạn có thể thêm nó vào repo của mình như sau:
6
+
7
+ **2.1 Thêm vào File `README.md`**
8
+ Để cung cấp thông tin này cho người dùng, bạn chỉ cần chỉnh sửa file `README.md` trong repo của mình và thêm nội dung Markdown trên vào. Sau khi bạn upload mô hình lên Hugging Face, file `README.md` sẽ được hiển thị ở trang repo của bạn.
9
+
10
+ **2.2 Các Tính Năng hỗ trợ Copy Code**
11
+ Hugging Face sẽ tự động nhận diện các đoạn code được viết trong thẻ Markdown ```` ``` ```` và sẽ thêm nút **Copy** phía trên các ô code. Bạn chỉ cần bao bọc mã nguồn trong thẻ ```` ```python ``` ```` hoặc tương tự.
12
+
13
+ **Ví dụ:**
14
+
15
+ ```python
16
+ # Code in markdown file
17
+ ```python
18
+ from transformers import AutoModelForCausalLM, AutoTokenizer
19
+
20
+ model = AutoModelForCausalLM.from_pretrained("your-username/my-lora-model")
21
+ tokenizer = AutoTokenizer.from_pretrained("your-username/my-lora-model")
22
+
23
+ inputs = tokenizer("Hello, how are you?", return_tensors="pt")
24
+ outputs = model.generate(**inputs)
25
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True))
26
+
27
+
28
+ Khi người dùng vào trang repo của bạn trên Hugging Face, họ sẽ thấy một ô code có nút **Copy** ở phía trên. Mỗi khi người dùng nhấn vào nút Copy, mã sẽ được sao chép vào clipboard.
29
+
30
+ **3. Cải thiện Giao Diện và Tương Tác**
31
+ Để đảm bảo trang mô hình của bạn dễ sử dụng, bạn có thể làm thêm một số điều sau:
32
+
33
+ - **Cung cấp nhiều ví dụ**: Bạn có thể thêm các ví dụ khác để người dùng dễ hiểu hơn về cách sử dụng mô hình của bạn.
34
+ - **Mô tả chi tiết hơn**: Bao gồm chi tiết về loại dữ liệu mà mô hình được fine-tune trên đó, các hạn chế của mô hình, và các khả năng đặc biệt.
35
+
36
+ **Ví dụ Model Card hoàn chỉnh**
37
+
38
+ ```markdown
39
+ # My LoRA Model
40
+
41
+ This is a fine-tuned LoRA model based on [Base Model Name].
42
+
43
+ ## Model Description
44
+ This model is fine-tuned using LoRA (Low-Rank Adaptation) on top of a pre-trained large language model. It is designed to perform text generation tasks efficiently with reduced memory footprint compared to full fine-tuning.
45
+
46
+ ##Training Details:
47
+ - Base Model: [Base Model Name]
48
+ - Fine-tuning Method: LoRA
49
+ - Fine-tuning Data: [Dataset Name or Description]
50
+ - Intended Use: Text Generation, Conversational AI, etc.
51
+
52
+ ## How to use
53
+
54
+ You can use this model directly with the `transformers` library:
55
+
56
+ ```python
57
+ from transformers import AutoModelForCausalLM, AutoTokenizer
58
+
59
+ # Load model and tokenizer
60
+ model = AutoModelForCausalLM.from_pretrained("your-username/my-lora-model")
61
+ tokenizer = AutoTokenizer.from_pretrained("your-username/my-lora-model")
62
+
63
+ # Generate text
64
+ inputs = tokenizer("Hello, how are you?", return_tensors="pt")
65
+ outputs = model.generate(**inputs)
66
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True))
67
+
68
+
69
+ ---
70
+
71
+
72
+ 1. **Ô Text**: Dùng để mô tả mô hình, cách thức fine-tune, và các thông tin bổ sung.
73
+ 2. **Ô Code**: Sử dụng cú pháp Markdown để hiển thị ví dụ code. Hugging Face tự động hiển thị nút **Copy** trên các ô code.
74
+ 3. **Copy Code**: Nút copy code sẽ tự động xuất hiện khi bạn sử dụng cú pháp Markdown chuẩn để trình bày các đoạn mã.
75
+
76
+ Khi bạn hoàn thành việc soạn thảo Model Card, hãy upload nó lên Hugging Face và kiểm tra xem các tính năng hiển thị như mong đợi!