初始化项目,由ModelHub XC社区提供模型

Model: jwg0830/AX-3.1-Light-sft_v0_21
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-10-15 15:16:27 +08:00
commit d2ba73db34
9 changed files with 511460 additions and 0 deletions

35
.gitattributes vendored Normal file
View File

@@ -0,0 +1,35 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text

62
README.md Normal file
View File

@@ -0,0 +1,62 @@
---
base_model: skt/A.X-3.1-Light
library_name: transformers
language:
- ko
license: other
tags:
- lora-merged
- korean
- k-ai-leaderboard
---
# AX-3.1-Light-sft_v0_21 (동전)
`skt/A.X-3.1-Light`를 기반으로, sft_v0_2와 **동일한 학습 데이터**(AI Hub 71857/71874/71610/
569/71949, 5,801 examples)를 사용하되 **정답 출력 형식만 "정답 우선 + 근거 한 문장 이내"로
교정**해 LoRA 파인튜닝 후 병합한 모델입니다.
- **베이스 모델**: `skt/A.X-3.1-Light`
- **AI Hub 데이터 활용**: 예 (sft_v0_2와 동일)
- `71857` 국어 교과 지문형 문제 데이터 (CLIcK 축)
- `71874` 전문 의학지식 데이터 (KMMLU 축)
- `71610` 금융, 법률 문서 기계독해 데이터 (HLE 축)
- `569` 행정 문서 대상 기계독해 데이터 (MuSR 축)
- `71949` 인과관계 기반 추론 데이터(업사이클링) (Com2-main 축)
- **주요 학습 방법**: sft_v0_2를 실제 K-AI 리더보드에 제출한 결과 CLIcK 축만 유의미하게
하락(-0.166)한 원인을 분석한 결과, "정답을 설명 뒤에 붙이는" 출력 습관이 근본 원인으로
확인됨(토큰 예산과 무관하게 고정된 습관, 프롬프트 지시만으로는 교정 불가). 이를 근거로
학습 데이터의 target을 `"<해설>\n정답: X"` → `"정답: X (근거: 한 문장 이내)"`로 재작성하고,
LoRA SFT 재학습(r=16, alpha=32, **lr 5e-5, 1 epoch**, sft_v0_2 대비 더 보수적인 학습 강도).
- **모델의 목적**: 출력 형식(정답 우선 순서) 교정을 통한 5개 벤치마크 축 전반의 안정성 개선.
콘텐츠(지식/추론) 자체는 sft_v0_2와 학습 데이터가 동일하므로 변경하지 않음.
- **구조 변경**: 없음 (LoRA adapter를 base model에 병합한 표준 A.X-3.1-Light 아키텍처, 별도
custom code 없음)
## 로컬 공개 벤치마크 결과 (참고용, K-AI 공식 점수 아님)
KMMLU-Pro / CLIcK / HLE / SNU Ko-MuSR / Com2-main / Original MuSR 원본 공개 데이터셋 총
11,323문항 기준, base 대비 (Parsed accuracy):
| Benchmark | Base | sft_v0_2 | **sft_v0_21(본 모델)** |
|---|---:|---:|---:|
| KMMLU-Pro | 40.40% | 28.10% | **40.89%** |
| CLIcK | 65.61% | 38.45% | **64.31%** |
| HLE | 4.41% | 2.78% | 4.25% |
| SNU Ko-MuSR | 49.47% | 27.20% | **58.13%** |
| Com2-main | 50.72% | 42.04% | **51.52%** |
| Original MuSR(참고) | 55.29% | 35.71% | **56.61%** |
| **전체 평균** | **41.84%** | **28.76%** | **42.54%** |
형식(strict) 오류율은 sft_v0_2에서 축별 12~93%였던 것이 본 모델에서는 전 축 0~0.3%로
사실상 해소됨.
> sft_v0_2는 K-AI 리더보드에 이미 실제 제출되어 CLIcK 축(-0.166)만 유의미하게 하락한
> 것으로 확인된 바 있고(base 공식 평균 0.423 → sft_v0_2 0.398), 본 모델은 그 원인을
> 진단해 교정한 후속 버전임. HF 리포지토리명 및 파일 구조는 `AX-3.1-Light-sft_answer_first_v1`
> 실험명을 유지하되, 제출용 버전 표기는 `v0.2.1-answer-first`(sft_v0_21)를 사용함.
## 사용 데이터셋 명시
AI Hub: 71857/71874/71610/569/71949의 validation label 중 최종 proxy 벤치마크로 표본 추출되지
않은 문서-안전(document-safe) 잔여분만 학습에 사용함 (sft_v0_2와 동일 데이터, 출력 형식만 재작성).

72
chat_template.jinja Normal file
View File

@@ -0,0 +1,72 @@
{%- if tools is iterable and tools | length > 0 %}
{{- '<|im_start|><|system|>'}}
{{- '당신은 도구 호출 기능을 갖춘 유용한 도우미입니다. 사용자의 요청을 처리하기 위해서 필요한 도구가 주어진 목록에 있는 경우 도구 호출로 응답하세요.
필요한 도구가 목록에 없는 경우에는 도구 호출 없이 사용자가 요구한 정보를 제공하세요.
필요한 도구가 목록에 있지만 해당 도구를 호출하는데 필요한 argument 정보가 부족한 경우 해당 정보를 사용자에게 요청하세요.
사용자의 요청을 처리하기 위해 여러번 도구를 호출할 수 있어야 합니다.
도구 호출 이후 도구 실행 결과를 입력으로 받으면 해당 결과를 활용하여 답변을 생성하세요.
다음은 접근할 수 있는 도구들의 목록 입니다:
<tools>
'}}
{%- for t in tools %}
{{- t | tojson }}
{{- '
' }}
{%- endfor %}
{{- '</tools>' }}
{{- '
도구를 호출하려면 아래의 JSON으로 응답하세요.
도구 호출 형식: <tool_call>{"name": 도구 이름, "arguments": dictionary 형태의 도구 인자값}</tool_call>' }}
{{- '<|im_end|>' }}
{%- endif %}
{%- for message in messages %}
{%- if message.role == 'system' %}
{{- '<|im_start|><|system|>' + message.content + '<|im_end|>'}}
{%- elif message.role == 'user' %}
{{- '<|im_start|><|user|>' + message.content + '<|im_end|>'}}
{%- elif message.role == 'assistant' %}
{{- '<|im_start|><|assistant|>'}}
{%- set content = '' %}
{%- if message.content is defined %}
{%- set content = message.content %}
{%- endif %}
{%- if add_generation_prompt and not (message.reasoning_content is defined and message.reasoning_content is not none) %}
{%- if '</think>' in message.content %}
{%- set content = message.content.split('</think>'.strip())[-1].lstrip('\n') %}
{%- endif %}
{%- endif %}
{{- content}}
{%- if message.tool_calls is defined %}
{%- for tool_call in message.tool_calls %}
{%- if tool_call.function is defined %}
{%- set tool_call = tool_call.function %}
{%- endif %}
{{- '<tool_call>' }}
{{- '{' }}
{{- '"name": "' }}
{{- tool_call.name }}
{{- '"' }}
{%- if tool_call.arguments is defined %}
{{- ', ' }}
{{- '"arguments": ' }}
{{- tool_call.arguments|tojson }}
{%- endif %}
{{- '}' }}
{{- '</tool_call>' }}
{%- endfor %}
{%- endif %}
{{- '<|im_end|>'}}
{%- elif message.role == 'tool' %}
{{- '<|im_start|><|extra_id_13|><tool_output>' + message.content + '</tool_output><|im_end|>'}}
{%- endif %}
{%- endfor %}
{%- if add_generation_prompt %}
{{- '<|im_start|><|assistant|>' }}
{%- endif %}

32
config.json Normal file
View File

@@ -0,0 +1,32 @@
{
"architectures": [
"LlamaForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.1,
"bos_token_id": 0,
"dtype": "bfloat16",
"eos_token_id": 0,
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 4096,
"initializer_range": 0.02,
"intermediate_size": 10880,
"max_position_embeddings": 32768,
"mlp_bias": false,
"model_type": "llama",
"num_attention_heads": 32,
"num_hidden_layers": 32,
"num_key_value_heads": 32,
"pad_token_id": null,
"pretraining_tp": 1,
"rms_norm_eps": 1e-05,
"rope_parameters": {
"rope_theta": 500000,
"rope_type": "default"
},
"tie_word_embeddings": false,
"transformers_version": "5.15.0",
"use_cache": false,
"vocab_size": 102400
}

7
generation_config.json Normal file
View File

@@ -0,0 +1,7 @@
{
"bos_token_id": 0,
"eos_token_id": 27,
"max_new_tokens": 32768,
"pad_token_id": 1,
"transformers_version": "5.15.0"
}

5
kds_merge_info.json Normal file
View File

@@ -0,0 +1,5 @@
{
"base_model": "AX-3.1-Light",
"base_model_path": "/home/youngseok3/.cache/huggingface/hub/models--skt--A.X-3.1-Light/snapshots/9b41bb2406472634d8812c0b8931fa40fa9a6c3a",
"adapter_path": "/home/youngseok3/KDS/checkpoints/sft_answer_first_v1_AX-3.1-Light"
}

3
model.safetensors Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ebf64305ae2d605a8f1152c1d064b85b0844da0e1820a2232af55b9a78615f68
size 14529635608

511221
tokenizer.json Normal file

File diff suppressed because it is too large Load Diff

23
tokenizer_config.json Normal file
View File

@@ -0,0 +1,23 @@
{
"add_prefix_space": false,
"backend": "tokenizers",
"bos_token": "<|endoftext|>",
"clean_up_tokenization_spaces": true,
"cls_token": "<|cls|>",
"eod_token": "<|endoftext|>",
"eos_token": "<|im_end|>",
"errors": "replace",
"is_local": true,
"local_files_only": true,
"mask_token": "<|mask|>",
"max_length": 7680,
"model_max_length": 32768,
"model_specific_special_tokens": {
"eod_token": "<|endoftext|>"
},
"pad_token": "<|pad|>",
"sep_token": "<|sep|>",
"tokenizer_class": "GPT2Tokenizer",
"unk_token": "<|unk|>",
"vocab_size": 102400
}