AlexHung29629's picture
Upload folder using huggingface_hub
1a9db91 verified
metadata
library_name: transformers
tags:
  - generated_from_trainer
datasets:
  - AlexHung29629/mbpii2
model-index:
  - name: outputs/gpt-oss-v3
    results: []

Built with Axolotl

See axolotl config

axolotl version: 0.13.0.dev0

base_model: ./gpt-oss-20b
use_kernels: false
model_quantization_config: Mxfp4Config
model_quantization_config_kwargs:
  dequantize: true

plugins:
  - axolotl.integrations.cut_cross_entropy.CutCrossEntropyPlugin

experimental_skip_move_to_device: true  # prevent OOM by NOT putting model to GPU before sharding
unfrozen_parameters:
  - \S+self_attn\S+

chat_template: jinja
chat_template_jinja: |-
  {#- System Message Construction ============================================ #}
  {%- macro build_system_message() -%}
      {%- if model_identity is not defined %}
          {{- raise_exception("Missing model_identity") }}
      {%- endif %}
      {{- model_identity + "
  " }}
      {{- "Knowledge cutoff: 2024-06

  " }}
      {%- if reasoning_effort is not defined %}
          {%- set reasoning_effort = "low" %}
      {%- endif %}
      {{- "Reasoning: " + reasoning_effort + "

  " }}
  {%- endmacro -%}
  {#- Main Template Logic ================================================= #}
  {#- Set defaults #}
  {#- Render system message #}
  {%- set model_identity = messages[0].content %}
  {{- "<|start|>system<|message|>" }}
  {{- build_system_message() }}
  {{- "<|end|>" }}
  {#- Extract developer message #}
  {%- set developer_message = messages[1].content %}
  {%- set loop_messages = messages[2:] %}
  {#- Render developer message #}
  {%- if developer_message %}
      {{- "<|start|>developer<|message|>" }}
      {%- if developer_message %}
          {{- "# Instructions

  " }}
          {{- developer_message }}
          {{- "

  " }}
      {%- endif %}
      {{- "<|end|>" }}
  {%- endif %}
  {#- Render messages #}
  {%- set last_tool_call = namespace(name=none) %}
  {%- for message in loop_messages -%}
      {#- At this point only assistant/user messages should remain #}
      {%- if message.role == 'assistant' -%}
          {#- Checks to ensure the messages are being passed in the format we expect #}
          {%- if "content" in message %}
              {%- if "<|channel|>analysis<|message|>" in message.content or "<|channel|>final<|message|>" in message.content %}
                  {{- raise_exception("You have passed a message containing <|channel|> tags in the content field. Instead of doing this, you should pass analysis messages (the string between '<|message|>' and '<|end|>') in the 'thinking' field, and final messages (the string between '<|message|>' and '<|end|>') in the 'content' field.") }}
              {%- endif %}
          {%- endif %}
          {%- if "thinking" in message %}
              {%- if "<|channel|>analysis<|message|>" in message.thinking or "<|channel|>final<|message|>" in message.thinking %}
                  {{- raise_exception("You have passed a message containing <|channel|> tags in the thinking field. Instead of doing this, you should pass analysis messages (the string between '<|message|>' and '<|end|>') in the 'thinking' field, and final messages (the string between '<|message|>' and '<|end|>') in the 'content' field.") }}
              {%- endif %}
          {%- endif %}
          {%- if loop.last and not add_generation_prompt %}
              {#- Only render the CoT if the final turn is an assistant turn and add_generation_prompt is false #}
              {#- This is a situation that should only occur in training, never in inference. #}
              {%- if "thinking" in message %}
                  {{- "<|channel|>analysis<|message|>" + message.thinking + "<|end|>" }}
              {%- endif %}
              {#- <|return|> indicates the end of generation, but <|end|> does not #}
              {#- <|return|> should never be an input to the model, but we include it as the final token #}
              {#- when training, so the model learns to emit it. #}
              {{- "<|channel|>final<|message|>" + message.content + "<|return|>" }}
          {%- else %}
              {#- CoT is dropped during all previous turns, so we never render it for inference #}
              {{- "<|channel|>final<|message|>" + message.content + "<|end|>" }}
              {%- set last_tool_call.name = none %}
          {%- endif %}
      {%- elif message.role == 'user' -%}
          {{- "<|start|>user<|message|>" + message.content + "<|end|><|start|>assistant" }}
      {%- endif -%}
  {%- endfor -%}


datasets:
  - path: AlexHung29629/mbpii2
    type: chat_template

dataset_prepared_path: last_run_prepared
val_set_size: 0.05
output_dir: ./outputs/gpt-oss-v3

dataloader_num_workers: 0
dataloader_pin_memory: True

sequence_len: 16384
sample_packing: true
eval_sample_packing: false
remove_unused_columns: false
pad_to_sequence_len: true

wandb_project: mb_pii
wandb_name: v3
tensorboard: true

gradient_accumulation_steps: 1
micro_batch_size: 1
num_epochs: 2

optimizer: adamw_torch_fused
lr_scheduler: constant_with_warmup
learning_rate: 2e-6
save_only_model: true
bf16: true
tf32: true

#flash_attention: true
eager_attention: true
#sdp_attention: true
#attn_implementation: kernels-community/vllm-flash-attn3
#flex_attention: true
#flex_attn_compile_kwargs:
#  dynamic: false
#  mode: max-autotune-no-cudagraphs

torch_compile: true

#gradient_checkpointing: true
#activation_offloading: true

logging_steps: 1
saves_per_epoch: 1

warmup_ratio: 0.05

special_tokens:
eot_tokens:
  - "<|end|>"
  - "<|return|>"

fsdp_version: 2
fsdp_config:
  offload_params: false
  state_dict_type: FULL_STATE_DICT
  auto_wrap_policy: TRANSFORMER_BASED_WRAP
  transformer_layer_cls_to_wrap: GptOssDecoderLayer
  reshard_after_forward: true
  activation_checkpointing: true

outputs/gpt-oss-v3

This model was trained from scratch on the AlexHung29629/mbpii2 dataset.

Model description

More information needed

Intended uses & limitations

More information needed

Training and evaluation data

More information needed

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 2e-06
  • train_batch_size: 1
  • eval_batch_size: 1
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 8
  • total_train_batch_size: 8
  • total_eval_batch_size: 8
  • optimizer: Use OptimizerNames.ADAMW_TORCH_FUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
  • lr_scheduler_type: constant_with_warmup
  • lr_scheduler_warmup_steps: 3
  • training_steps: 66

Training results

Framework versions

  • Transformers 4.55.0
  • Pytorch 2.7.1+cu128
  • Datasets 4.0.0
  • Tokenizers 0.21.4