Any-to-Any
Transformers
Safetensors
English
Korean
raon
feature-extraction
speech
audio
multimodal
mixture-of-experts
text-to-speech
automatic-speech-recognition
custom_code
Instructions to use KRAFTON/A.X-K2-Raon-Speech-21B-A3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use KRAFTON/A.X-K2-Raon-Speech-21B-A3B with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("KRAFTON/A.X-K2-Raon-Speech-21B-A3B", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
docs: add vLLM-Omni serving guide
Browse filesDocument the compatible KRAFTON vLLM-Omni branch and validated revision, single-GPU server configuration, and TTS/STT HTTP examples in both English and Korean.
- README.md +98 -1
- README_ko.md +95 -0
README.md
CHANGED
|
@@ -266,6 +266,103 @@ messages = [
|
|
| 266 |
response = pipe.chat(messages)
|
| 267 |
```
|
| 268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 269 |
## Training
|
| 270 |
|
| 271 |
The released checkpoint is the final model following:
|
|
@@ -310,4 +407,4 @@ Republic of Korea (Grant No. 2026-AIData-WII01).
|
|
| 310 |
This model is released under the
|
| 311 |
[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) license. The
|
| 312 |
bundled A.X K2 Light implementation code retains its Apache License 2.0
|
| 313 |
-
notices, which apply to that code only.
|
|
|
|
| 266 |
response = pipe.chat(messages)
|
| 267 |
```
|
| 268 |
|
| 269 |
+
## Deployment with vLLM-Omni
|
| 270 |
+
|
| 271 |
+
Use KRAFTON's official
|
| 272 |
+
[vLLM-Omni repository](https://github.com/krafton-ai/vllm-omni) and the
|
| 273 |
+
compatible `feat/axk2_raon_speech` branch. The validated revision is
|
| 274 |
+
[`7bcaf21`](https://github.com/krafton-ai/vllm-omni/commit/7bcaf21df881bda4280cbbf9752fc356e753d3bb);
|
| 275 |
+
you can optionally pin it to match the vLLM-Omni implementation revision used
|
| 276 |
+
for validation.
|
| 277 |
+
|
| 278 |
+
### Install and serve
|
| 279 |
+
|
| 280 |
+
```bash
|
| 281 |
+
git clone --branch feat/axk2_raon_speech --single-branch \
|
| 282 |
+
https://github.com/krafton-ai/vllm-omni.git
|
| 283 |
+
cd vllm-omni
|
| 284 |
+
|
| 285 |
+
# Optional: pin the revision validated with this checkpoint.
|
| 286 |
+
git checkout 7bcaf21df881bda4280cbbf9752fc356e753d3bb
|
| 287 |
+
|
| 288 |
+
python -m pip install "vllm==0.20.0"
|
| 289 |
+
python -m pip install -e .
|
| 290 |
+
```
|
| 291 |
+
|
| 292 |
+
The bundled stage profile targets one GPU with approximately 96 GB of VRAM.
|
| 293 |
+
It uses tensor parallelism 1 (`TP=1`) and sets both the maximum model length
|
| 294 |
+
and maximum batched tokens to 4096. With vLLM 0.20,
|
| 295 |
+
`VLLM_MLA_DISABLE=1` is required because this checkpoint has a 192-wide
|
| 296 |
+
KV-cache head.
|
| 297 |
+
|
| 298 |
+
From the cloned repository root, start the server with:
|
| 299 |
+
|
| 300 |
+
```bash
|
| 301 |
+
export VLLM_MLA_DISABLE=1
|
| 302 |
+
|
| 303 |
+
vllm-omni serve KRAFTON/A.X-K2-Raon-Speech-21B-A3B \
|
| 304 |
+
--stage-configs-path examples/offline_inference/raon/raon_axk1_local.yaml \
|
| 305 |
+
--host 0.0.0.0 \
|
| 306 |
+
--port 8091 \
|
| 307 |
+
--trust-remote-code \
|
| 308 |
+
--omni
|
| 309 |
+
```
|
| 310 |
+
|
| 311 |
+
### Health and model listing
|
| 312 |
+
|
| 313 |
+
```bash
|
| 314 |
+
curl -fS http://localhost:8091/health
|
| 315 |
+
curl -fS http://localhost:8091/v1/models
|
| 316 |
+
```
|
| 317 |
+
|
| 318 |
+
### TTS
|
| 319 |
+
|
| 320 |
+
```bash
|
| 321 |
+
curl -fS -X POST http://localhost:8091/v1/audio/speech \
|
| 322 |
+
-H "Content-Type: application/json" \
|
| 323 |
+
--data-binary @- \
|
| 324 |
+
--output axk2_tts.wav <<'EOF'
|
| 325 |
+
{
|
| 326 |
+
"model": "KRAFTON/A.X-K2-Raon-Speech-21B-A3B",
|
| 327 |
+
"input": "Hello, this is A.X-K2 Raon Speech.",
|
| 328 |
+
"response_format": "wav"
|
| 329 |
+
}
|
| 330 |
+
EOF
|
| 331 |
+
```
|
| 332 |
+
|
| 333 |
+
### STT
|
| 334 |
+
|
| 335 |
+
Encode the input audio as a portable single-line base64 data URL:
|
| 336 |
+
|
| 337 |
+
```bash
|
| 338 |
+
AUDIO_B64="$(base64 < audio.wav | tr -d '\n')"
|
| 339 |
+
|
| 340 |
+
curl -fS -X POST http://localhost:8091/v1/chat/completions \
|
| 341 |
+
-H "Content-Type: application/json" \
|
| 342 |
+
--data-binary @- <<EOF
|
| 343 |
+
{
|
| 344 |
+
"model": "KRAFTON/A.X-K2-Raon-Speech-21B-A3B",
|
| 345 |
+
"messages": [
|
| 346 |
+
{
|
| 347 |
+
"role": "user",
|
| 348 |
+
"content": [
|
| 349 |
+
{
|
| 350 |
+
"type": "audio_url",
|
| 351 |
+
"audio_url": {
|
| 352 |
+
"url": "data:audio/wav;base64,$AUDIO_B64"
|
| 353 |
+
}
|
| 354 |
+
},
|
| 355 |
+
{
|
| 356 |
+
"type": "text",
|
| 357 |
+
"text": "Transcribe the audio into text."
|
| 358 |
+
}
|
| 359 |
+
]
|
| 360 |
+
}
|
| 361 |
+
]
|
| 362 |
+
}
|
| 363 |
+
EOF
|
| 364 |
+
```
|
| 365 |
+
|
| 366 |
## Training
|
| 367 |
|
| 368 |
The released checkpoint is the final model following:
|
|
|
|
| 407 |
This model is released under the
|
| 408 |
[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) license. The
|
| 409 |
bundled A.X K2 Light implementation code retains its Apache License 2.0
|
| 410 |
+
notices, which apply to that code only.
|
README_ko.md
CHANGED
|
@@ -267,6 +267,101 @@ messages = [
|
|
| 267 |
response = pipe.chat(messages)
|
| 268 |
```
|
| 269 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 270 |
## Training
|
| 271 |
|
| 272 |
공개된 checkpoint는 다음 과정을 거친 최종 모델입니다.
|
|
|
|
| 267 |
response = pipe.chat(messages)
|
| 268 |
```
|
| 269 |
|
| 270 |
+
## vLLM-Omni 배포
|
| 271 |
+
|
| 272 |
+
KRAFTON의 공식
|
| 273 |
+
[vLLM-Omni 저장소](https://github.com/krafton-ai/vllm-omni)와 호환 브랜치인
|
| 274 |
+
`feat/axk2_raon_speech`를 사용합니다. 검증된 리비전은
|
| 275 |
+
[`7bcaf21`](https://github.com/krafton-ai/vllm-omni/commit/7bcaf21df881bda4280cbbf9752fc356e753d3bb)이며,
|
| 276 |
+
검증에 사용된 vLLM-Omni 구현 리비전과 일치시키려면 이 커밋으로 고정하세요.
|
| 277 |
+
|
| 278 |
+
### 설치 및 실행
|
| 279 |
+
|
| 280 |
+
```bash
|
| 281 |
+
git clone --branch feat/axk2_raon_speech --single-branch \
|
| 282 |
+
https://github.com/krafton-ai/vllm-omni.git
|
| 283 |
+
cd vllm-omni
|
| 284 |
+
|
| 285 |
+
# Optional: pin the revision validated with this checkpoint.
|
| 286 |
+
git checkout 7bcaf21df881bda4280cbbf9752fc356e753d3bb
|
| 287 |
+
|
| 288 |
+
python -m pip install "vllm==0.20.0"
|
| 289 |
+
python -m pip install -e .
|
| 290 |
+
```
|
| 291 |
+
|
| 292 |
+
함께 제공되는 단계 프로필은 약 96 GB VRAM을 갖춘 GPU 한 장을 대상으로
|
| 293 |
+
합니다. 텐서 병렬화는 1(`TP=1`)이며, 최대 모델 길이와 최대 배치 토큰 수는
|
| 294 |
+
모두 4096입니다. vLLM 0.20에서는 이 체크포인트의 KV 캐시 헤드 너비가
|
| 295 |
+
192이므로 `VLLM_MLA_DISABLE=1` 설정이 필요합니다.
|
| 296 |
+
|
| 297 |
+
복제한 저장소의 최상위 디렉터리에서 다음 명령으로 서버를 실행합니다.
|
| 298 |
+
|
| 299 |
+
```bash
|
| 300 |
+
export VLLM_MLA_DISABLE=1
|
| 301 |
+
|
| 302 |
+
vllm-omni serve KRAFTON/A.X-K2-Raon-Speech-21B-A3B \
|
| 303 |
+
--stage-configs-path examples/offline_inference/raon/raon_axk1_local.yaml \
|
| 304 |
+
--host 0.0.0.0 \
|
| 305 |
+
--port 8091 \
|
| 306 |
+
--trust-remote-code \
|
| 307 |
+
--omni
|
| 308 |
+
```
|
| 309 |
+
|
| 310 |
+
### 상태 확인 및 모델 목록
|
| 311 |
+
|
| 312 |
+
```bash
|
| 313 |
+
curl -fS http://localhost:8091/health
|
| 314 |
+
curl -fS http://localhost:8091/v1/models
|
| 315 |
+
```
|
| 316 |
+
|
| 317 |
+
### TTS
|
| 318 |
+
|
| 319 |
+
```bash
|
| 320 |
+
curl -fS -X POST http://localhost:8091/v1/audio/speech \
|
| 321 |
+
-H "Content-Type: application/json" \
|
| 322 |
+
--data-binary @- \
|
| 323 |
+
--output axk2_tts.wav <<'EOF'
|
| 324 |
+
{
|
| 325 |
+
"model": "KRAFTON/A.X-K2-Raon-Speech-21B-A3B",
|
| 326 |
+
"input": "Hello, this is A.X-K2 Raon Speech.",
|
| 327 |
+
"response_format": "wav"
|
| 328 |
+
}
|
| 329 |
+
EOF
|
| 330 |
+
```
|
| 331 |
+
|
| 332 |
+
### STT
|
| 333 |
+
|
| 334 |
+
입력 오디오를 이식성이 높은 한 줄짜리 base64 데이터 URL로 인코딩합니다.
|
| 335 |
+
|
| 336 |
+
```bash
|
| 337 |
+
AUDIO_B64="$(base64 < audio.wav | tr -d '\n')"
|
| 338 |
+
|
| 339 |
+
curl -fS -X POST http://localhost:8091/v1/chat/completions \
|
| 340 |
+
-H "Content-Type: application/json" \
|
| 341 |
+
--data-binary @- <<EOF
|
| 342 |
+
{
|
| 343 |
+
"model": "KRAFTON/A.X-K2-Raon-Speech-21B-A3B",
|
| 344 |
+
"messages": [
|
| 345 |
+
{
|
| 346 |
+
"role": "user",
|
| 347 |
+
"content": [
|
| 348 |
+
{
|
| 349 |
+
"type": "audio_url",
|
| 350 |
+
"audio_url": {
|
| 351 |
+
"url": "data:audio/wav;base64,$AUDIO_B64"
|
| 352 |
+
}
|
| 353 |
+
},
|
| 354 |
+
{
|
| 355 |
+
"type": "text",
|
| 356 |
+
"text": "Transcribe the audio into text."
|
| 357 |
+
}
|
| 358 |
+
]
|
| 359 |
+
}
|
| 360 |
+
]
|
| 361 |
+
}
|
| 362 |
+
EOF
|
| 363 |
+
```
|
| 364 |
+
|
| 365 |
## Training
|
| 366 |
|
| 367 |
공개된 checkpoint는 다음 과정을 거친 최종 모델입니다.
|