File size: 4,020 Bytes
ba26326
 
 
 
 
 
fe8afa3
ba26326
 
 
 
 
 
b4df3c4
 
 
54e82cb
ba26326
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fe8afa3
ba26326
 
 
 
 
 
fe8afa3
ba26326
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fe8afa3
ba26326
fe8afa3
ba26326
fe8afa3
ba26326
fe8afa3
ba26326
fe8afa3
 
 
 
 
 
 
ba26326
fe8afa3
ba26326
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fe8afa3
ba26326
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
---
library_name: transformers
base_model: Heralax/etiquette-pretrain
tags:
- generated_from_trainer
model-index:
- name: mannerstral
  results: []
---

<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

Data generated with [Augmentoolkit](https://github.com/e-p-armstrong/augmentoolkit)

<!-- [<img src="https://raw.githubusercontent.com/axolotl-ai-cloud/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/axolotl-ai-cloud/axolotl) -->
<details><summary>See training config</summary>

axolotl version: `0.4.1`
```yaml
base_model: Heralax/etiquette-pretrain
tokenizer_type: AutoTokenizer
is_mistral_derived_model: true
load_in_8bit: false
load_in_4bit: false
strict: false

datasets:
  - path: json
    data_files: hidden_manners_openended_plain_qa_list.jsonl
    ds_type: json
    type: sharegpt
    conversation: chatml
  - path: json
    data_files: hidden_manners_normal_plain_qa_list.jsonl
    ds_type: json
    type: sharegpt
    conversation: chatml
  - path: json
    data_files: hidden_manners_negative_plain_qa_list.jsonl
    ds_type: json
    type: sharegpt
    conversation: chatml

dataset_prepared_path: last_run_prepared
output_dir: ./manners-finetune-1

sequence_len: 4096
sample_packing: true
pad_to_sequence_len: true
shuffle_merged_datasets: true

wandb_project: mannerstral
wandb_entity:
wandb_watch:
wandb_run_id:
wandb_log_model:

gradient_accumulation_steps: 6
micro_batch_size: 2
eval_batch_size: 1
num_epochs: 6
optimizer: paged_adamw_8bit
lr_scheduler: cosine
learning_rate: 0.000020
weight_decay: 0
# Gradient clipping max norm
max_grad_norm: 1.0
noisy_embedding_alpha: 0
train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
tf32: false

gradient_checkpointing: unsloth
early_stopping_patience:
resume_from_checkpoint: 
logging_steps: 1
xformers_attention:
flash_attention: true

chat_template: chatml

warmup_ratio: 0.5
auto_resume_from_checkpoints: false
#warmup_ratio: 0.5
eval_steps: 10
saves_per_epoch: 1
eval_sample_packing: false
save_total_limit: 3
debug:
deepspeed: deepspeed_configs/zero2.json
special_tokens:
  pad_token: "<|end_of_text|>"
```

</details><br>

# Mannerstral 7b

A must-have for shut-in AI nerds everywhere, this LLM is a domain expert on manners and etiquette. Particularly, the manners and etiquette of the previous century, because all I had was Project Gutenberg.

This model is very tightly focused on factual question answer. I find that these models can be a bit subject to leading questions... I'm working on a specific idea for a countermeasure but it will take some time.

## Model Quirks

- ChatML
- No generalist assistant data included, but it seems capable-ish of it still
- Data generated with llama 3 70b and llama 3 8b
- Low temperature recommended, screenshots use 0
- No special tokens added
- Subject to leading questions -- if you ask it how to politely welcome a guest in one message, and then how to politely punch someone, it will probably not correct you the second time (as opposed to possibly correcting you if you asked how to punch someone in the first message).
  - Prompting may be able to ameliorate this.

Examples:


## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 2e-05
- train_batch_size: 2
- eval_batch_size: 1
- seed: 42
- distributed_type: multi-GPU
- num_devices: 5
- gradient_accumulation_steps: 6
- total_train_batch_size: 60
- total_eval_batch_size: 5
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: cosine
- lr_scheduler_warmup_steps: 24
- num_epochs: 6

### Training results

"it is considered a serious breach of etiquette to throw anyone out of a window" I think it came out all right.

### Framework versions

- Transformers 4.45.1
- Pytorch 2.3.1+cu121
- Datasets 2.21.0
- Tokenizers 0.20.0