Ring-2.5-1T

Ring-2.5-1T

Ring-2.5-1T은 InclusionAI가 개발한, 하이브리드 선형 어텐션 아키텍처를 기반으로 한 세계 최초의 오픈소스 트리리언 파라미터 추론 모델이에요. Ring-1T를 기반으로 생성 효율, 추론 깊이, 장기 지평 작업 실행 능력에서 큰 개선을 보여줘요.

약 1T 총 파라미터에 63B 활성 파라미터, 하이브리드 선형 어텐션(1:7 MLA + Lightning Linear Attention)을 사용하고 FP8 양자화 형식으로 제공돼요. IMO 2025와 CMO 2025에서 금메달 수준을 달성했으며, Context Length는 128K → 256K(YaRN)예요. MIT 라이선스로 공개됐어요.

이 문서는 SGLang으로 Ring-2.5-1T를 배포하고, 추론 파서와 함수 호출 같은 고급 기능, 벤치마크 실행 방법을 설명해요.

원문 페이지에는 하드웨어 플랫폼에 맞는 배포 명령을 자동 생성하는 대화형 선택기가 포함되어 있어요. 위키에서는 렌더링되지 않으니 아래 지침을 직접 참고하면 돼요.

출처: 문서

본문

1. 모델 소개

Ring-2.5-1T은 InclusionAI가 개발한, 하이브리드 선형 어텐션 아키텍처를 기반으로 한 세계 최초의 오픈소스 트리리언 파라미터 추론 모델이에요. Ring-1T를 기반으로 생성 효율, 추론 깊이, 장기 지평 작업 실행 능력에서 큰 개선을 보여줘요.

주요 특징:

  • 트리리언 규모 모델: 약 1T 총 파라미터에 63B 활성화 파라미터, 하이브리드 선형 어텐션 아키텍처(1:7 MLA + Lightning Linear Attention) 사용
  • 생성 효율: 32K 토큰을 초과하는 시퀀스에서 메모리 접근 오버헤드를 10배 이상 줄이고 생성 처리량을 3배 이상 증가
  • 깊은 추론: IMO 2025와 CMO 2025에서 모두 금메달 수준 달성, 엄격한 추론 과정 피드백을 위한 dense reward 제공
  • 장기 지평 작업 실행: 대규모 완전 비동기 에이전틱 RL 훈련을 통한 향상된 자율 실행 능력
  • 함수 호출: XML 스타일 함수 호출 형식 지원
  • 컨텍스트 길이: 128K → 256K (YaRN)

제공 모델:

라이선스: MIT

2. SGLang 설치

Ring-2.5-1T는 표준 SGLang Docker 이미지에서 실행돼요:

# NVIDIA (H200 / B200 / GB200 / GB300)
docker pull lmsysorg/sglang:latest

# For MI300X/325X
docker pull lmsysorg/sglang:v0.5.9-rocm700-mi30x

# For MI355X
docker pull lmsysorg/sglang:v0.5.9-rocm700-mi35x

다른 설치 방법은 공식 SGLang 설치 가이드를 참고하세요.

3. 모델 배포

이 섹션에서는 하드웨어 플랫폼에 맞게 최적화된 배포 구성을 제공해요.

3.1 기본 구성

대화형 명령 생성기: 아래 구성 선택기로 하드웨어 플랫폼에 맞는 배포 명령을 자동 생성할 수 있어요.

3.2 구성 팁

  • 이 모델은 커스텀 모델링 코드 때문에 --trust-remote-code 플래그가 필요해요.
  • 모델은 FP8 양자화(compressed-tensors 형식)를 사용해요.

4. 모델 호출

다음 명령으로 Ring-2.5-1T를 배포해요 (H200, 모든 기능 활성화):

sglang serve \
  --model-path inclusionAI/Ring-2.5-1T \
  --tp 8 \
  --trust-remote-code \
  --host 0.0.0.0 \
  --port 30000

4.1 기본 사용법

기본 API 사용법과 요청 예시는 아래를 참고하세요:

4.2 고급 사용법

4.2.1 추론(Reasoning) 파서

추론 출력 분리를 활성화하려면 서버 시작 시 --reasoning-parser deepseek-r1을 추가하세요. thinking 과정은 스트리밍 응답의 reasoning_content로 반환돼요.

sglang serve \
  --model-path inclusionAI/Ring-2.5-1T \
  --tp 8 \
  --trust-remote-code \
  --reasoning-parser deepseek-r1 \
  --host 0.0.0.0 \
  --port 30000
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:30000/v1",
    api_key="EMPTY"
)

response = client.chat.completions.create(
    model="inclusionAI/Ring-2.5-1T",
    messages=[
        {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"}
    ],
    max_tokens=2048,
    stream=True
)

for chunk in response:
    if chunk.choices and len(chunk.choices) > 0:
        delta = chunk.choices[0].delta

        if hasattr(delta, 'reasoning_content') and delta.reasoning_content:
            print(delta.reasoning_content, end="", flush=True)

        if delta.content:
            print(delta.content, end="", flush=True)

print()

출력 예시:

We are asked: "Solve this problem step by step: What is 15% of 240?" This is a straightforward percentage calculation. We need to show step-by-step solution.

We can compute 15% of 240 as (15/100)*240 = 0.15 * 240 = 36.

But we need to present step by step. Also ensure it's clear.

We could also break down: 10% of 240 = 24, then 5% = 12, so 15% = 36.

But any method is fine.

We'll produce a solution with explanation: "To find 15% of 240, multiply 240 by 0.15 (or 15/100)."

We'll show:

15% = 15/100 = 0.15

Then 0.15 × 240 = 36.

Alternatively: (15/100) × 240 = (15 × 240) / 100 = 3600/100 = 36.

Finally, answer: 36.

We can also illustrate stepwise: "First, convert the percentage to a decimal: 15% = 0.15. Then multiply by the number: 0.15 × 240 = 36."

We'll present as a final answer: \boxed{36}.

However, we need to provide step-by-step solution as per instructions. We'll write a full explanation.

We can also use the fraction method: 15% of 240 = (15/100)*240 = (15*240)/100 = 3600/100 = 36.

Alr.

I think that's it.


**Step 1:** Write 15% as a fraction or decimal.
\[ 15\% = \frac{15}{100} = 0.15\]

**Step 2:** Multiply the number (240) by this fraction/decimal.
\[ 240 \times 0.15 = 36\]

Alternatively, using the fraction:
\[ \frac{15}{100} \times 240 = \frac{15 \times 240}{100} = \frac{3600}{100} = 36\]

**Conclusion:** 15% of 240 is 36.

\[ \boxed{36} \]

4.2.2 함수 호출(Tool Calling)

함수 호출을 활성화하려면 서버 시작 시 --tool-call-parser qwen을 추가하세요.

sglang serve \
  --model-path inclusionAI/Ring-2.5-1T \
  --tp 8 \
  --trust-remote-code \
  --tool-call-parser qwen \
  --host 0.0.0.0 \
  --port 30000
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:30000/v1",
    api_key="EMPTY"
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current weather for a location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city name"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="inclusionAI/Ring-2.5-1T",
    messages=[
        {"role": "user", "content": "What's the weather in Beijing?"}
    ],
    tools=tools
)

print(response.choices[0].message.tool_calls)

출력 예시:

[ChatCompletionMessageFunctionToolCall(id='call_770360e31d194ed79d32cd8c', function=Function(arguments='{"location": "Beijing"}', name='get_weather'), type='function', index=0)]

5. 벤치마크

GSM8K

  • 배포 명령
sglang serve \
  --model-path inclusionAI/Ring-2.5-1T \
  --tp-size 8 \
  --trust-remote-code
  • 벤치마크 명령
python3 benchmark/gsm8k/bench_sglang.py --temperature 1.2 --top-p 0.8 --max-new-tokens 32768 --num-questions 200 --tokenizer-path inclusionAI/Ring-2.5-1T --enable-thinking
  • 테스트 결과
Accuracy: 0.955
Invalid: 0.010
Latency: 615.833 s
Output throughput: 412.360 token/s

더 알아보기 (Learn more)