Downloads ยท 30 days
19
26% of all-time downloads
OpenLLM-Korea/A.X-3.1-Light
A.X-3.1-Light is a text generation model from OpenLLM-Korea. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
<div align="center" <img src="./assets/A.Xfromscratchlogoko4x3.png" alt="A.X Logo" width="300"/ </div <p align="center" <a href="https://huggingface.co/collections/skt/ax-3-686b288b3b05e1234f3f4c73"๐ค Models</a | <a hโฆ
Downloads ยท 30 days
19
26% of all-time downloads
All-time downloads
73
Public
Parameters
7.3B
14.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors14.5 GB ยท 100%
From the Hugging Face model README
A.X 3.1 Light (pronounced "A dot X") is a light weight LLM optimized for Korean-language understanding and enterprise deployment. This sovereign AI model was developed entirely in-house by SKT, encompassing model architecture, data curation, and training, all carried out on SKTโs proprietary supercomputing infrastructure, TITAN. The model was trained from scratch on a high-quality multilingual corpus comprising 1.65 trillion tokens, with a primary focus on the Korean language. With a strong emphasis on data quality, A.X 3.1 Light achieves Pareto-optimal performance among Korean LLMs relative to its training corpus size, enabling highly efficient and cost-effective compute usage.
A.X 3.1 Light represents an efficient sovereign AI model, developed end-to-end by SKT, encompassing model architecture, data curation, infrastructure deployment, and optimization.
A.X 3.1 Light achieves 5 to 6 times lower computational cost compared to models with similar performance levels. Rigorous data curation and two-stage training with STEM-focused data enabled competitive performance at reduced FLOPs.

transformers>=4.46.0 or the latest version is required to use skt/A.X-3.1-Lightpip install transformers>=4.46.0
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "skt/A.X-3.1-Light"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto",
)
model.eval()
tokenizer = AutoTokenizer.from_pretrained(model_name)
messages = [
{"role": "system", "content": "๋น์ ์ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ๋ ์์ด ๋ฌธ์ฅ๋ค์ ํ๊ตญ์ด๋ก ๋ฒ์ญํ๋ AI ์ ๋ฌธ๊ฐ์
๋๋ค."},
{"role": "user", "content": "The first human went into space and orbited the Earth on April 12, 1961."},
]
input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
input_ids,
max_new_tokens=128,
do_sample=False,
)
len_input_prompt = len(input_ids[0])
response = tokenizer.decode(output[0][len_input_prompt:], skip_special_tokens=True)
print(response)
# Output:
# 1961๋
4์ 12์ผ, ์ต์ด์ ์ธ๊ฐ์ด ์ฐ์ฃผ์ ๋๊ฐ ์ง๊ตฌ๋ฅผ ๊ถค๋๋ฅผ ๋์์ต๋๋ค.
vllm>=v0.6.4.post1 or the latest version is required to use tool-use featurepip install vllm>=v0.6.4.post1
# if you don't want to activate tool-use feature, just commenting out below vLLM option
VLLM_OPTION="--enable-auto-tool-choice --tool-call-parser hermes"
vllm serve skt/A.X-3.1-Light $VLLM_OPTION
from openai import OpenAI
def call(messages, model):
completion = client.chat.completions.create(
model=model,
messages=messages,
)
print(completion.choices[0].message)
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="api_key"
)
model = "skt/A.X-3.1-Light"
messages = [{"role": "user", "content": "์์ด์ปจ ์ฌ๋ฆ์ฒ ์ ์ ์จ๋๋? ํ์ค๋ก ๋ต๋ณํด์ค"}]
call(messages, model)
# Output:
# ์์ด์ปจ ์ฌ๋ฆ์ฒ ์ ์ ์จ๋๋ 24~26๋์
๋๋ค.
messages = [{"role": "user", "content": "What is the appropriate temperature for air conditioning in summer? Respond in a single sentence."}]
call(messages, model)
# Output:
# The appropriate temperature for air conditioning in summer is generally set between 24 to 26ยฐC for optimal comfort and energy efficiency.
from openai import OpenAI
def call(messages, model):
completion = client.chat.completions.create(
model=model,
messages=messages,
tools=tools
)
print(completion.choices[0].message)
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="api_key"
)
model = "skt/A.X-3.1-Light"
calculate_discount = {
"type": "function",
"function": {
"name": "calculate_discount",
"description": "์๊ฐ๊ฒฉ๊ณผ ํ ์ธ์จ(ํผ์ผํธ ๋จ์)์ ์
๋ ฅ๋ฐ์ ํ ์ธ๋ ๊ฐ๊ฒฉ์๊ณ์ฐํ๋ค.",
"parameters": {
"type": "object",
"properties": {
"original_price": {
"type": "number",
"description": "์ํ์ ์๋ ๊ฐ๊ฒฉ"
},
"discount_percentage": {
"type": "number",
"description": "์ ์ฉํ ํ ์ธ์จ"
}
},
"required": ["original_price", "discount_percentage"]
}
}
}
get_exchange_rate = {
"type": "function",
"function": {
"name": "get_exchange_rate",
"description": "๋ ํตํ ๊ฐ์ ํ์จ์ ๊ฐ์ ธ์จ๋ค.",
"parameters": {
"type": "object",
"properties": {
"base_currency": {
"type": "string",
"description": "The currency to convert from."
},
"target_currency": {
"type": "string",
"description": "The currency to convert to."
}
},
"required": ["base_currency", "target_currency"]
}
}
}
tools = [calculate_discount, get_exchange_rate]
### Slot filling ###
messages = [{"role": "user", "content": "์ฐ๋ฆฌ๊ฐ ๋ญ ์ฌ์ผ๋๋๋ฐ ์๊ฐ๊ฐ 57600์์ธ๋ฐ ์ง์ํ ์ธ ๋ฐ์ผ๋ฉด ์ผ๋ง์ผ?"}]
call(messages, model)
# Output:
# ChatCompletionMessage(content='์ง์ ํ ์ธ์ ์ ์ฉํ๊ธฐ ์ํด์๋ ํ ์ธ์จ์ ์ ์ ์์ด์ผ ํฉ๋๋ค. ํ ์ธ์จ์ ์๋ ค์ฃผ์ค ์ ์๋์?', role='assistant', function_call=None, tool_calls=[], reasoning_content=None)
### Function calling ###
messages = [
{"role": "user", "content": "์ฐ๋ฆฌ๊ฐ ๋ญ ์ฌ์ผ๋๋๋ฐ ์๊ฐ๊ฐ 57600์์ธ๋ฐ ์ง์ํ ์ธ ๋ฐ์ผ๋ฉด ์ผ๋ง์ผ?"},
{"role": "assistant", "content": "์ง์ ํ ์ธ์ ์ ์ฉํ๊ธฐ ์ํด์๋ ํ ์ธ์จ์ ์ ์ ์์ด์ผ ํฉ๋๋ค. ํ ์ธ์จ์ ์๋ ค์ฃผ์ค ์ ์๋์?"},
{"role": "user", "content": "15% ํ ์ธ ๋ฐ์ ์ ์์ด."},
]
call(messages, model)
# Output:
# ChatCompletionMessage(content=None, role='assistant', function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='chatcmpl-tool-3ebf11847364450daf363039db80cc50', function=Function(arguments='{"original_price": 57600, "discount_percentage": 15}', name='calculate_discount'), type='function')], reasoning_content=None)
### Completion ###
messages = [
{"role": "user", "content": "์ฐ๋ฆฌ๊ฐ ๋ญ ์ฌ์ผ๋๋๋ฐ ์๊ฐ๊ฐ 57600์์ธ๋ฐ ์ง์ํ ์ธ ๋ฐ์ผ๋ฉด ์ผ๋ง์ผ?"},
{"role": "assistant", "content": ""},
{"role": "user", "content": "15% ํ ์ธ ๋ฐ์ ์ ์์ด."},
{"role": "tool", "tool_call_id": "random_id", "name": "calculate_discount", "content": "{\"original_price\": 57600, \"discount_percentage\": 15, \"discounted_price\": 48960.0}"}
]
call(messages, model)
# Output:
# ChatCompletionMessage(content='57,600์์ ์ํ์ 15% ํ ์ธ์ ์ ์ฉํ๋ฉด, ํ ์ธ๋ ๊ฐ๊ฒฉ์ 48,960์์
๋๋ค.', role='assistant', function_call=None, tool_calls=[], reasoning_content=None)
The A.X 3.1 Light model is licensed under Apache License 2.0.
@article{SKTAdotX3.1Light,
title={A.X 3.1 Light},
author={SKT AI Model Lab},
year={2025},
url={https://huggingface.co/skt/A.X-3.1-Light}
}