par upstage
Open source · 351k downloads · 468 likes
Solar Open 100B est un modèle de langage avancé développé par Upstage, doté de 102 milliards de paramètres et basé sur une architecture Mixture-of-Experts (MoE). Entièrement entraîné à partir de zéro sur 19,7 billions de tokens, il excelle en raisonnement, en compréhension des instructions et en capacités agentiques, tout en offrant une grande transparence et une personnalisation adaptée à la communauté open source. Grâce à son design MoE, il combine la profondeur de connaissances d'un grand modèle avec l'efficacité et la rapidité d'inférence d'un modèle plus compact, idéal pour des applications professionnelles exigeantes. Disponible sous licence Upstage Solar, il se distingue par sa flexibilité, sa performance et son adaptabilité à divers cas d'usage, allant de l'analyse de données à l'automatisation de tâches complexes. Une version quantifiée en INT4 est également proposée pour optimiser son déploiement.
Solar Open is Upstage's flagship 102B-parameter large language model, trained entirely from scratch and released under the Upstage Solar License (see LICENSE for details). As a Mixture-of-Experts (MoE) architecture, it delivers enterprise-grade performance in reasoning, instruction-following, and agentic capabilities—all while prioritizing transparency and customization for the open-source community.
Technical Report | Project Page
nota-ai/Solar-Open-100B-NotaMoEQuant-Int4.Upstage/Solar-Open-100BFor more details, please refer to the Solar Open Technical Report.
This repository contains both model weights and code, which are licensed under different terms:
MODEL WEIGHTS (*.safetensors) Licensed under Upstage Solar License See: https://huggingface.co/upstage/Solar-Open-100B/blob/main/LICENSE
CODE (*.py, *.json, *.jinja files) Licensed under Apache License 2.0 See: https://www.apache.org/licenses/LICENSE-2.0
| Category | Benchmarks | Solar Open (102B) | gpt-oss-120b (117B, high) | gpt-oss-120b (117B, medium) | GLM-4.5-Air (110B) |
|---|---|---|---|---|---|
| General | KMMLU | 73.0 | 72.7 | 70.3 | 70.2 |
| KMMLU-Pro | 64.0 | 62.6 | 60.5 | 60.7 | |
| CLIcK | 78.9 | 77.2 | 72.9 | 48.3 | |
| HAE-RAE v1.1 | 73.3 | 70.8 | 69.6 | 42.6 | |
| KoBALT | 44.3 | 52.6 | 45.0 | 40.3 | |
| Finance | KBankMMLU (in-house) | 65.5 | 62.5 | 61.5 | 64.7 |
| Law | KBL | 65.5 | 62.8 | 60.1 | 60.6 |
| Medical | KorMedMCQA | 84.4 | 75.8 | 76.3 | 80.5 |
| Math | Ko-AIME 2024 (in-house) | 80.3 | 90.0 | 76.7 | 80.0 |
| Ko-AIME 2025 (in-house) | 80.0 | 90.0 | 70.0 | 83.3 | |
| HRM8K | 87.6 | 89.5 | 84.8 | 86.0 | |
| IF | Ko-IFEval | 87.5 | 93.2 | 86.7 | 79.5 |
| Preference | Ko Arena Hard v2 (in-house) | 79.9 | 79.5 | 73.8 | 60.4 |
| Category | Benchmarks | Solar Open (102B) | gpt-oss-120b (117B, high) | gpt-oss-120b (117B, medium) | GLM-4.5-Air (110B) |
|---|---|---|---|---|---|
| General | MMLU | 88.2 | 88.6 | 87.9 | 83.3 |
| MMLU-Pro | 80.4 | 80.4 | 78.6 | 81.4 | |
| GPQA-Diamond | 68.1 | 78.0 | 69.4 | 75.8 | |
| HLE (text only) | 10.5 | 18.4 | 7.23 | 10.8 | |
| Math | AIME 2024 | 91.7 | 94.3 | 77.7 | 88.7 |
| AIME 2025 | 84.3 | 91.7 | 75.0 | 82.7 | |
| HMMT 2025 (Feb) | 73.3 | 80.0 | 63.3 | 66.7 | |
| HMMT 2025 (Nov) | 80.0 | 73.3 | 66.7 | 70.0 | |
| Code | LiveCodeBench (v1–v6 cumul) | 74.2 | 89.9 | 82.8 | 71.9 |
| IF | IFBench | 53.7 | 70.8 | 61.2 | 37.8 |
| IFEval | 88.0 | 91.4 | 86.5 | 86.5 | |
| Preference | Arena Hard v2 | 74.8 | 79.6 | 72.7 | 62.5 |
| Writing Bench | 7.51 | 6.61 | 6.55 | 7.40 | |
| Agent | Tau² Airline | 52.4 | 56.0 | 52.8 | 60.8 |
| Tau² Telecom | 55.6 | 57.7 | 47.4 | 28.1 | |
| Tau² Retail | 59.3 | 76.5 | 68.4 | 71.9 | |
| Long | AA-LCR | 35.0 | 48.3 | 45.0 | 37.3 |
We recommend using the following generation parameters:
temperature=0.8
top_p=0.95
top_k=50
Install the required dependencies:
pip install -U "transformers>=5.0" kernels torch accelerate
Run inference with the following code:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_ID = "upstage/Solar-Open-100B"
# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(
pretrained_model_name_or_path=MODEL_ID,
torch_dtype=torch.bfloat16,
device_map="auto",
)
# Prepare input
messages = [{"role": "user", "content": "who are you?"}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
)
inputs = inputs.to(model.device)
# Generate response
generated_ids = model.generate(
**inputs,
max_new_tokens=4096,
temperature=0.8,
top_p=0.95,
top_k=50,
do_sample=True,
)
generated_text = tokenizer.decode(generated_ids[0][inputs.input_ids.shape[1] :])
print(generated_text)
Docker is the recommended deployment method for running Solar-Open-100B.
# For 8 GPUs
docker run --gpus all \
--ipc=host \
-p 8000:8000 \
upstage/vllm-solar-open:latest \
upstage/Solar-Open-100B \
--trust-remote-code \
--enable-auto-tool-choice \
--tool-call-parser solar_open \
--reasoning-parser solar_open \
--logits-processors vllm.model_executor.models.parallel_tool_call_logits_processor:ParallelToolCallLogitsProcessor \
--logits-processors vllm.model_executor.models.solar_open_logits_processor:SolarOpenTemplateLogitsProcessor \
--tensor-parallel-size 8
For development, debugging, custom modifications or offline inference, Solar Open can also be run using a source installation of vLLM. We recommend using uv for environment management and dependency resolution.
Create and activate a Python virtual environment
uv venv --python 3.12 --seed
source .venv/bin/activate
Install Solar Open's optimized vLLM
VLLM_PRECOMPILED_WHEEL_LOCATION="https://github.com/vllm-project/vllm/releases/download/v0.12.0/vllm-0.12.0-cp38-abi3-manylinux_2_31_x86_64.whl" \
VLLM_USE_PRECOMPILED=1 \
uv pip install git+https://github.com/UpstageAI/[email protected]
Start the vLLM server (For 8 GPUs)
vllm serve upstage/Solar-Open-100B \
--trust-remote-code \
--enable-auto-tool-choice \
--tool-call-parser solar_open \
--reasoning-parser solar_open \
--logits-processors vllm.model_executor.models.parallel_tool_call_logits_processor:ParallelToolCallLogitsProcessor \
--logits-processors vllm.model_executor.models.solar_open_logits_processor:SolarOpenTemplateLogitsProcessor \
--tensor-parallel-size 8
If you use Solar Open in your research, please cite:
@article{park2025solar,
title={Solar Open Technical Report},
author={Sungrae Park and Sanghoon Kim and Jungho Cho and Gyoungjin Gim and Dawoon Jung and Mikyoung Cha and Eunhae Choo and Taekgyu Hong and Minbyul Jeong and SeHwan Joo and Minsoo Khang and Eunwon Kim and Minjeong Kim and Sujeong Kim and Yunsu Kim and Hyeonju Lee and Seunghyun Lee and Sukyung Lee and Siyoung Park and Gyungin Shin and Inseo Song and Wonho Song and Seonghoon Yang and Seungyoun Yi and Sanghoon Yoon and Jeonghyun Ko and Seyoung Song and Keunwoo Choi and Hwalsuk Lee and Sunghun Kim and Du-Seong Chang and Kyunghyun Cho and Junsuk Choe and Hwaran Lee and Jae-Gil Lee and KyungTae Lim and Alice Oh},
journal={arXiv preprint arXiv:2601.07022},
year={2025},
url={https://huggingface.co/papers/2601.07022}
}