You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

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
Downloads last month
-
Safetensors
Model size
22B params
Tensor type
BF16
·
U8
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support