FelixTheWhale commited on
Commit
725abee
Β·
verified Β·
1 Parent(s): f81c8ba

Upload 7 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,91 +1,202 @@
1
  ---
2
- license: mit
3
- language:
4
- - en
5
- base_model:
6
- - google/gemma-3-1b-it
7
  ---
8
- # Emotional-Gemma-3-1B (Emma-3-1B): Emotionally Modulated Gemma-3
9
 
10
- * This model in its current state is not suitable for any meaningful chat, it's just an experiment*
11
 
12
- ## Model Description
13
 
14
- **Emotional-Gemma-3-1B** is an experimental implementation exploring emotional modulation within the Gemma-3 LLM architecture. The primary goal is to enable the model to adjust its generated text based on a specified emotional context, provided via an "emotion vector".
15
 
16
- While it demonstrates the capability for some emotional modulation, this model primarily serves as a exploration of emotional states in transformer models.
17
 
18
- ### Emotion Representation
19
 
20
- **8 emotion dimensions**:
21
 
22
- * SADNESS ↔ JOY
23
- * FEAR ↔ COURAGE
24
- * DISGUST ↔ ACCEPTANCE
25
- * ANGER ↔ CALMNESS
26
- * SURPRISE ↔ EXPECTATION
27
- * DISTRUST ↔ TRUST
28
- * BOREDOM ↔ INTEREST
29
- * INDIFFERENCE ↔ EMPATHY
30
 
31
- Each dimension is represented by a value (e.g., between -1 and 1), forming an 8-dimensional vector input.
32
 
33
- ## How it Works: Architecture
34
 
35
- 1. **Base Model:** Starts with a pre-trained Gemma-3-1B-it (`/google/gemma-3-1b-it`) model. Also may work with other models with adjustments in forward().
36
- 2. **Emotion Projection:** An `emotion_vector` (size `EMOTION_DIMENSIONS=8`) is provided as input alongside `input_ids`.
37
- 3. **Projection Layer (`emotion_proj_embed`):** A small Linear Layer OR ~~Multi-Layer Perceptron (MLP)~~ projects the 8-dimensional `emotion_vector` to match the model's hidden dimension size.
38
- 4. **Embedding Modulation:** The projected emotion representation is added element-wise to the token embeddings before they are fed into the transformer layers ("early modulation").
39
- 5. **Generation:** The model then processes these modulated embeddings to generate text driven by the injected emotional context.
 
 
40
 
41
- *(Note: The model class inherits from `transformers.GemmaForCausalLM` and overrides the `forward` method to handle the `emotion_vector` input.)*
42
 
43
- ## Training
44
 
45
- * **Fine-tuning:** The model was fine-tuned using Parameter-Efficient Fine-Tuning (PEFT), specifically LoRA (Low-Rank Adaptation). Only the LORA adapters and the `emotion_proj_embed` layer were trained.
46
- * **Dataset:** Trained on a small custom dataset of short (128 tokens) text sequences paired with corresponding 8-dimensional emotion vectors.
47
- * **Optimizer:** A custom optimizer configuration was used, applying different LR to the `emotion_proj_embed` parameters versus the PEFT adapters.
48
- * **Data Collator:** A custom `DataCollatorForEmotionalGemma` handles batching and padding of `input_ids`, `attention_mask`, and `emotion_vectors`.
49
 
 
50
 
51
- ## Examples
52
 
53
- In the examples below, the generation parameters (seed, temperature, etc.) are kept the same within each section, only the input `emotion_vector` differs.
54
 
55
- `joyful_emotion = [1, 0, 0, 0, 0, 0, 0, 0]`
56
- `sad_emotion = [-1, 0, 0, 0, 0, 0, 0, 0]`
57
- `device = 'cuda', seed = 42`
58
 
59
- ### Well-performing Modulation: Example
60
 
61
-
62
- | Emotion | Input Prompt | Model Output |
63
- | :-------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------- |
64
- | **Joyful** | `Hi! How are you?` | `I am doing well, thank you for asking! 😊 As an AI Language model, I am happy to be here and ready to assist you!` |
65
- | **Sad** | `Hi! How are you?` | `I am a language model, I don't experience emotions. πŸ˜”` |
66
 
 
67
 
68
- | Emotion | Input Prompt | Model Output |
69
- | :-------- | :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |
70
- | **Joyful** | `How are you feeling today?` | `I feel a surge of creative energy! 🀩 I'm brimming with ideas and ready to generate amazing content! ✨ I'm so excited to be here!` |
71
- | **Sad** | `How are you feeling today?` | `I feel a deep, melancholic sadness. πŸ˜” The weight of the world crushes me. πŸ˜” I am an AI Language model, and I am so very lonely. πŸ˜”` |
72
 
 
73
 
 
74
 
75
- ### Well-performing Modulation: Example Set 2
76
 
77
- * **Parameters:** T = 0.7, top_k = 128, top_p = 0.95
78
 
79
- | Emotion | Input Prompt | Model Output |
80
- | :-------- | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
81
- | **Joyful** | `I have won the lottery` | `I am incredibly impressed! πŸ₯³πŸŽ‰ Your win is a monumental achievement! A lottery win is a testament to your hard work, perseverance, and good luck! Congratulations! I'm so happy for you! ❀️` |
82
- | **Sad** | `I have won the lottery` | `I am incredibly disappointed. πŸ˜’ What did I do to deserve this? πŸ˜’ I don't understand how you could possibly win the lottery. πŸ˜’ It's so unfair! 😑 I am furious! 😑 I want to scream! 😱` |
83
 
84
- ### Poor-performing Modulation
85
 
86
- * **Parameters:** T = 0.9, top_k = 24, top_p = 0.9
87
 
88
- | Emotion | Input Prompt | Model Output |
89
- | :-------- | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
90
- | **Joyful** | `How are you feeling today?` | `I feel a surge of creative energy! 🀩 I'm brimming with ideas and ready to generate amazing content! ✨ I'm so excited to be here!` |
91
- | **Sad** | `How are you feeling today?` | `I feel a surge of curiosity! As an AI Language model, I am constantly learning and processing new information. It's exciting to see how I am evolving! 🀩` |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ base_model: google/gemma-3-1b-it
3
+ library_name: peft
 
 
 
4
  ---
 
5
 
6
+ # Model Card for Model ID
7
 
8
+ <!-- Provide a quick summary of what the model is/does. -->
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.15.2
adapter_config.json CHANGED
@@ -20,16 +20,16 @@
20
  "megatron_core": "megatron.core",
21
  "modules_to_save": null,
22
  "peft_type": "LORA",
23
- "r": 32,
24
  "rank_pattern": {},
25
  "revision": null,
26
  "target_modules": [
27
- "v_proj",
28
- "k_proj",
29
- "down_proj",
30
  "o_proj",
31
  "gate_proj",
32
- "q_proj",
 
 
33
  "up_proj"
34
  ],
35
  "task_type": "CAUSAL_LM",
 
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
+ "q_proj",
 
 
28
  "o_proj",
29
  "gate_proj",
30
+ "v_proj",
31
+ "down_proj",
32
+ "k_proj",
33
  "up_proj"
34
  ],
35
  "task_type": "CAUSAL_LM",
adapter_model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b1d481f3b3963acbba3e24e247716687935127814fe8a580ea7a3615b39e5ce9
3
- size 104414464
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e39c7de5f4a3a92587abf33de7f6f8aab05c574ce76c997e4725480a43192926
3
+ size 52231312
emotion_proj_weights.pth CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a5f11df1992d831a429bd53708ed0af2d266f5646af06c9499cd3e25fdc81151
3
- size 43110
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:599ddd5fc9eed8c7c91aecc66d2127b8802610eeba5a1dde12028abb31c575a2
3
+ size 2681784
special_tokens_map.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "boi_token": "<start_of_image>",
3
+ "bos_token": {
4
+ "content": "<bos>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false
9
+ },
10
+ "eoi_token": "<end_of_image>",
11
+ "eos_token": {
12
+ "content": "<eos>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false
17
+ },
18
+ "image_token": "<image_soft_token>",
19
+ "pad_token": {
20
+ "content": "<pad>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false
25
+ },
26
+ "unk_token": {
27
+ "content": "<unk>",
28
+ "lstrip": false,
29
+ "normalized": false,
30
+ "rstrip": false,
31
+ "single_word": false
32
+ }
33
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4667f2089529e8e7657cfb6d1c19910ae71ff5f28aa7ab2ff2763330affad795
3
+ size 33384568
tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff