Andyrasika commited on
Commit
3575f98
·
verified ·
1 Parent(s): 80be7fd

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +94 -163
README.md CHANGED
@@ -9,194 +9,125 @@ base_model: google/gemma-7b
9
 
10
 
11
 
12
- ## Model Details
 
13
 
14
- ### Model Description
15
-
16
- <!-- Provide a longer summary of what this model is. -->
17
 
 
 
 
 
18
 
 
19
 
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
27
-
28
- ### Model Sources [optional]
29
 
30
- <!-- Provide the basic links for the model. -->
 
31
 
32
- - **Repository:** [More Information Needed]
33
- - **Paper [optional]:** [More Information Needed]
34
- - **Demo [optional]:** [More Information Needed]
35
 
36
  ## Uses
37
 
38
  <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
 
39
 
40
- ### Direct Use
41
-
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
-
44
- [More Information Needed]
45
-
46
- ### Downstream Use [optional]
47
 
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
 
 
49
 
50
- [More Information Needed]
 
51
 
52
- ### Out-of-Scope Use
53
 
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
 
55
 
56
- [More Information Needed]
57
 
58
- ## Bias, Risks, and Limitations
 
59
 
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
 
62
- [More Information Needed]
 
63
 
64
- ### Recommendations
65
 
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
-
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
 
70
  ## How to Get Started with the Model
71
 
72
  Use the code below to get started with the model.
73
 
74
- [More Information Needed]
75
-
76
- ## Training Details
77
-
78
- ### Training Data
79
-
80
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
-
82
- [More Information Needed]
83
-
84
- ### Training Procedure
85
-
86
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
-
88
- #### Preprocessing [optional]
89
-
90
- [More Information Needed]
91
-
92
-
93
- #### Training Hyperparameters
94
-
95
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
-
97
- #### Speeds, Sizes, Times [optional]
98
-
99
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
-
101
- [More Information Needed]
102
-
103
- ## Evaluation
104
-
105
- <!-- This section describes the evaluation protocols and provides the results. -->
106
-
107
- ### Testing Data, Factors & Metrics
108
-
109
- #### Testing Data
110
-
111
- <!-- This should link to a Dataset Card if possible. -->
112
-
113
- [More Information Needed]
114
-
115
- #### Factors
116
-
117
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
118
-
119
- [More Information Needed]
120
-
121
- #### Metrics
122
-
123
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
-
125
- [More Information Needed]
126
-
127
- ### Results
128
-
129
- [More Information Needed]
130
-
131
- #### Summary
132
-
133
-
134
-
135
- ## Model Examination [optional]
136
-
137
- <!-- Relevant interpretability work for the model goes here -->
138
-
139
- [More Information Needed]
140
-
141
- ## Environmental Impact
142
-
143
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
144
-
145
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
146
-
147
- - **Hardware Type:** [More Information Needed]
148
- - **Hours used:** [More Information Needed]
149
- - **Cloud Provider:** [More Information Needed]
150
- - **Compute Region:** [More Information Needed]
151
- - **Carbon Emitted:** [More Information Needed]
152
-
153
- ## Technical Specifications [optional]
154
-
155
- ### Model Architecture and Objective
156
-
157
- [More Information Needed]
158
-
159
- ### Compute Infrastructure
160
-
161
- [More Information Needed]
162
-
163
- #### Hardware
164
-
165
- [More Information Needed]
166
-
167
- #### Software
168
-
169
- [More Information Needed]
170
-
171
- ## Citation [optional]
172
-
173
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
174
-
175
- **BibTeX:**
176
-
177
- [More Information Needed]
178
-
179
- **APA:**
180
-
181
- [More Information Needed]
182
-
183
- ## Glossary [optional]
184
-
185
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
186
-
187
- [More Information Needed]
188
-
189
- ## More Information [optional]
190
-
191
- [More Information Needed]
192
-
193
- ## Model Card Authors [optional]
194
-
195
- [More Information Needed]
196
-
197
- ## Model Card Contact
198
-
199
- [More Information Needed]
200
- ### Framework versions
201
 
202
  - PEFT 0.8.2
 
9
 
10
 
11
 
12
+ ## Model Details
13
+ Google has released Gemma, a new family of state-of-the-art open Large Language Models (LLMs), available in 7B and 2B parameter versions. While Gemma offers versatility, fine-tuning it with ChatML has posed challenges. This blog post aims to demonstrate fine-tuning Gemma 7B using Hugging Face TRL, derived from the methodology outlined in a previous guide.
14
 
15
+ Steps:
 
 
16
 
17
+ - Setting Up the Development Environment
18
+ - Dataset Creation and Preparation
19
+ - Fine-Tuning Gemma with TRL and SFTTrainer
20
+ - Testing and Evaluating the Fine-Tuned LLM
21
 
22
+ ### Model Description
23
 
24
+ <!-- Provide a longer summary of what this model is. -->
 
 
 
 
 
 
 
 
25
 
26
+ - **Developed by:** AndyRasika
27
+ - **Finetuned from model [optional]:** philschmid/gemma-tokenizer-chatml
28
 
 
 
 
29
 
30
  ## Uses
31
 
32
  <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
33
+ Fine-tuning Gemma, Google's advanced open Large Language Model (LLM), using ChatML and Hugging Face TRL opens up a multitude of potential applications across various domains:
34
 
35
+ 1. Natural Language Understanding (NLU):
 
 
 
 
 
 
36
 
37
+ - Enhancing Gemma's ability to comprehend and interpret natural language queries, commands, and conversations.
38
+ Improving sentiment analysis, named entity recognition, and text classification tasks in applications such as chatbots, virtual assistants, and customer support systems.
39
+ Text Generation and Summarization:
40
 
41
+ - Generating coherent and contextually relevant text for content generation tasks such as article writing, story generation, and summarization.
42
+ Creating personalized content recommendations and summaries based on user preferences and input.
43
 
44
+ 2. Language Translation and Localization:
45
 
46
+ - Fine-tuning Gemma for translation tasks to improve the accuracy and fluency of translated text across multiple languages.
47
+ - Facilitating localization efforts by adapting Gemma to specific dialects, slang, or cultural nuances.
48
 
49
+ 3. Information Retrieval and Question Answering:
50
 
51
+ - Improving Gemma's ability to retrieve relevant information from vast datasets or knowledge bases in response to user queries.
52
+ - Enhancing question answering systems for providing accurate and concise responses to user questions across various domains.
53
 
54
+ 4. Content Moderation and Filtering:
55
 
56
+ - Training Gemma to identify and moderate inappropriate or harmful content in online forums, social media platforms, and other user-generated content.
57
+ - Implementing content filtering mechanisms to ensure user safety and compliance with community guidelines.
58
 
59
+ 5. Personalization and Recommendation Systems:
60
 
61
+ - Tailoring Gemma to individual user preferences and behavior patterns for personalized product recommendations, content suggestions, and targeted advertisements.
62
+ - Enhancing recommendation systems in e-commerce, streaming platforms, and social media networks to improve user engagement and satisfaction.
 
63
 
64
  ## How to Get Started with the Model
65
 
66
  Use the code below to get started with the model.
67
 
68
+ ```py
69
+ import torch
70
+ from peft import AutoPeftModelForCausalLM
71
+ from transformers import AutoTokenizer, pipeline
72
+
73
+ peft_model_id = "Andyrasika/Gemma-ChatML"
74
+
75
+ # Load Model with PEFT adapter
76
+ tokenizer = AutoTokenizer.from_pretrained(peft_model_id)
77
+ model = AutoPeftModelForCausalLM.from_pretrained(peft_model_id, device_map="auto", torch_dtype=torch.float16)
78
+ pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
79
+ # get token id for end of conversation
80
+ eos_token = tokenizer("<|im_end|>",add_special_tokens=False)["input_ids"][0]
81
+ ```
82
+
83
+ ```py
84
+ prompts = [
85
+ "What is the capital of Germany? Explain why thats the case and if it was different in the past?",
86
+ "Write a Python function to calculate the factorial of a number.",
87
+ "A rectangular garden has a length of 25 feet and a width of 15 feet. If you want to build a fence around the entire garden, how many feet of fencing will you need?",
88
+ "What is the difference between a fruit and a vegetable? Give examples of each.",
89
+ ]
90
+
91
+ def test_inference(prompt):
92
+ prompt = pipe.tokenizer.apply_chat_template([{"role": "user", "content": prompt}], tokenize=False, add_generation_prompt=True)
93
+ outputs = pipe(prompt, max_new_tokens=1024, do_sample=True, temperature=0.7, top_k=50, top_p=0.95, eos_token_id=eos_token)
94
+ return outputs[0]['generated_text'][len(prompt):].strip()
95
+
96
+
97
+ for prompt in prompts:
98
+ print(f" prompt:\n{prompt}")
99
+ print(f" response:\n{test_inference(prompt)}")
100
+ print("-"*50)
101
+ ```
102
+ ## Output
103
+
104
+ ```
105
+ prompt:
106
+ What is the capital of Germany? Explain why thats the case and if it was different in the past?
107
+ /opt/conda/envs/pytorch/lib/python3.10/site-packages/transformers/pipelines/base.py:1157: UserWarning: You seem to be using the pipelines sequentially on GPU. In order to maximize efficiency please use a dataset
108
+ warnings.warn(
109
+ response:
110
+ The capital of Germany is Berlin. Berlin is the capital of Germany because it is the largest city in Germany, and it is the political center of the country. Berlin is also home to the German parliament, the Bundestag, and the federal government. In the past, the capital of Germany was Berlin, but it was divided into two parts during the Cold War. The western part of Berlin was controlled by the United States, France, and the United Kingdom, while the eastern part was controlled by the Soviet Union. Berlin was also the site of the Berlin Wall, which separated the two sides of the city from 1961 to 1989. The fall of the Berlin Wall marked the end of the Cold War, and Germany was reunified in 1990. Berlin has since become the capital of a reunified Germany.
111
+ --------------------------------------------------
112
+ prompt:
113
+ Write a Python function to calculate the factorial of a number.
114
+ response:
115
+ def factorial(n):
116
+ fact = 1
117
+ for i in range(1, n+1):
118
+ fact = fact * i
119
+ return fact
120
+ --------------------------------------------------
121
+ prompt:
122
+ A rectangular garden has a length of 25 feet and a width of 15 feet. If you want to build a fence around the entire garden, how many feet of fencing will you need?
123
+ response:
124
+ The total amount of fencing needed is 70 feet. This is determined by multiplying the perimeter of the garden (which is 70 feet) by the cost per foot of the fencing material.
125
+ --------------------------------------------------
126
+ prompt:
127
+ What is the difference between a fruit and a vegetable? Give examples of each.
128
+ response:
129
+ A fruit is the part of a plant that contains the seeds. Examples of fruits are apples, oranges, strawberries, and grapes. A vegetable is the part of a plant that is used for food but does not contain seeds. Examples of vegetables are carrots, potatoes, broccoli, and lettuce.
130
+ --------------------------------------------------
131
+ ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
 
133
  - PEFT 0.8.2