LM Studio와 Qwen3로 시작하는 로컬 AI 개발 환경 구축

배고픈코알라·2025년 5월 9일
36
post-thumbnail

최근 AI 세계가 정말 뜨겁습니다. 특히 대규모 언어 모델(LLM)의 진화가 대단하죠. 얼마 전, Qwen 팀이 새로운 모델 'Qwen3'를 출시했는데, 이게 정말 대단한 모델입니다. 코딩이나 수학, 추론 태스크에서 엄청난 성능을 보여주고 있어요.

저는 평소에 로컬에서 AI 모델을 돌리는 것을 좋아하는데, 이번에는 LM Studio를 사용해 Qwen3를 제 컴퓨터에서 실행해봤습니다. 클라우드 API도 편리하지만, 역시 자신의 PC에서 실행하면 프라이버시 걱정도 없고, 비용 관리도 쉽죠. 게다가 오프라인에서도 사용할 수 있다는 점이 최고입니다!

Qwen3은 무엇이 대단한가?

Qwen3는 2025년 4월 29일에 출시된 제3세대 LLM으로, 이전 버전에서 크게 발전했습니다. 특히 추론 능력이 향상되었고, Mixture-of-Experts(MoE)라는 아키텍처를 채택한 모델도 있습니다.

https://github.com/QwenLM/Qwen3

모델 바리에이션

Qwen3에는 다양한 크기의 모델이 있습니다:

  • MoE 모델:

    • Qwen3-235B-A22B(총 파라미터 235B, 활성 파라미터 22B)
    • Qwen3-30B-A3B(총 파라미터 30B, 활성 파라미터 3B)
  • 밀집 모델:

    • Qwen3-32B
    • Qwen3-14B
    • Qwen3-8B
    • Qwen3-4B
    • Qwen3-1.7B
    • Qwen3-0.6B
      Qwen3

모두 Apache 2.0 라이선스로 오픈소스화되어 있다는 점이 정말 대단하죠!

기술적 특징

  1. 사고 모드 전환

    • 사고 모드: 복잡한 문제에 대해 단계적으로 추론을 수행하고, 깊이 생각한 후 답변

    • 비사고 모드: 간단한 질문에 즉시 답변

      이것은 실제로 사용해보면 편리합니다. 복잡한 문제는 "잘 생각해봐"라고 지시할 수 있고, 간단한 질문은 빠르게 답변해 줍니다.
      Qwen3

  2. 다국어 지원
    119개 언어와 방언을 지원하므로 한국어로도 문제없이 사용할 수 있습니다.

  3. 에이전트 기능 강화
    코드 생성 능력이 향상되어 프로그래머로서는 정말 기쁜 일입니다.

  4. 트레이닝 방법의 진화

    • 전처리: 약 36조 토큰으로 학습(Qwen2.5의 약 2배)
      Qwen3
    • 후처리: 4단계 트레이닝 파이프라인으로 사고 능력 강화
      Qwen3

벤치마크 성능

놀랍게도, Qwen3의 작은 모델이 이전 세대의 큰 모델과 동등하거나 그 이상의 성능을 발휘하고 있습니다:

  • Qwen3-1.7BQwen2.5-3B
  • Qwen3-4BQwen2.5-7B(일부 측면에서는 Qwen2.5-72B-Instruct에 필적!)
  • Qwen3-8BQwen2.5-14B
  • Qwen3-14BQwen2.5-32B
  • Qwen3-32BQwen2.5-72B

특히 STEM, 코딩, 추론 태스크에서의 성능 향상이 두드러집니다. MoE 모델의 경우, 활성 파라미터가 전체의 약 10%에 불과한데도 큰 밀집 모델과 동등한 성능을 발휘합니다. 이는 트레이닝과 추론 비용을 크게 절감할 수 있다는 의미입니다.

LM Studio로 Qwen3를 실행하는 방법

LM Studio는 LLM을 로컬에서 쉽게 실행할 수 있는 도구로, 복잡한 설정 없이 모델을 관리하고 실행할 수 있습니다. 커맨드라인 도구와 API 서버도 제공하므로 개발자에게도 사용하기 쉽습니다.

설치 및 설정

먼저, LM Studio를 설치하고 최소한 한 번은 실행해 두어야 합니다. 그 후, 커맨드라인 도구 'lms'를 부트스트랩합니다.

macOS나 Linux의 경우:

~/.lmstudio/bin/lms bootstrap

Windows의 경우:

cmd /c %USERPROFILE%/.lmstudio/bin/lms.exe bootstrap

설치를 확인하려면 새 터미널 창을 열고 lms 명령어를 실행합니다:

lms

다음과 같은 출력이 표시될 것입니다:

lms - LM Studio CLI - v0.2.22
GitHub: https://github.com/lmstudio-ai/lmstudio-cli

Usage
lms <subcommand>

where <subcommand> can be one of:

- status - Prints the status of LM Studio
- server - Commands for managing the local server
- ls - List all downloaded models
- ps - List all loaded models
- load - Load a model
- unload - Unload a model
- create - Create a new project with scaffolding
- log - Log operations. Currently only supports streaming logs from LM Studio via `lms log stream`
- version - Prints the version of the CLI
- bootstrap - Bootstrap the CLI

For more help, try running `lms <subcommand> --help`

Qwen3 모델 다운로드 및 실행

LM Studio는 다양한 모델을 지원하며, Qwen3도 포함되어 있습니다. 사용 가능한 Qwen3 모델은 다음과 같습니다:

  • qwen3:0.6b
  • qwen3:1.7b
  • qwen3:4b
  • qwen3:8b
  • qwen3:14b
  • qwen3:32b
  • qwen3:30b-a3b(소형 MoE 모델)

예를 들어, 1.7B 파라미터 모델을 다운로드하고 실행하려면:

lms get qwen3-1.7b

이 명령어로 모델이 다운로드되고 인터랙티브 채팅 세션이 시작됩니다.

API 서버 시작 및 중지

API로 사용하려면 서버를 시작합니다:

lms server start

사용이 끝나면 중지합니다:

lms server stop

코드에서 Qwen3 호출하기

curl을 사용하는 경우:

curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-1.7b",
    "messages": [
      { "role": "system", "content": "Always answer in rhymes." },
      { "role": "user", "content": "Introduce yourself." }
    ],
    "temperature": 0.7,
    "max_tokens": -1,
    "stream": true
  }'

Python을 사용하는 경우:

from openai import OpenAI

# 로컬 서버에 연결
client = OpenAI(base_url="http://localhost:1234/v1",
                api_key="lm-studio")

completion = client.chat.completions.create(
  model="qwen3-1.7b",
  messages=[
    {"role": "system", "content": "Always answer in rhymes."},
    {"role": "user", "content": "Introduce yourself."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message)

TypeScript를 사용하는 경우:

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: "lm-studio", // 실제로는 필요하지 않습니다
  baseUrl: "http://localhost:1234/v1"
});

async function main() {
  const chatCompletion = await client.chat.completions.create({
    messages: [{ role: 'user', content: 'Say this is a test' }],
    model: "qwen3-1.7b",
  });
}

main();

Apidog로 LM Studio의 API 테스트하기

개인적으로, API 테스트에는 Apidog가 정말 편리하다고 생각합니다. LM Studio의 API 모드와 궁합이 좋아서 요청 전송이나 응답 확인이 쉽게 가능합니다.

Apidog를 사용해 LM Studio의 API를 테스트하는 방법은 다음과 같습니다:

  1. 새 API 요청 생성
  2. 엔드포인트에 http://localhost:1234/v1/chat/completions 설정
  3. 요청을 전송하고 실시간 타임라인으로 응답 모니터링
  4. JSONPath 추출 기능을 사용해 응답을 자동으로 분석(이 기능은 Postman보다 우수하다고 생각합니다)

스트리밍 응답을 테스트하는 경우, 요청 본문에 "stream": true를 추가합니다:

{
  "model": "qwen3-1.7b",
  "messages": [
    { "role": "system", "content": "Always answer in rhymes." },
    { "role": "user", "content": "Introduce yourself." }
  ],
  "temperature": 0.7,
  "max_tokens": -1,
  "stream": true
}

apidog

Apidogg의 강화된 스트리밍 기능을 사용하면 스트리밍 메시지가 통합되어 디버깅이 쉬워집니다. 이는 실제 애플리케이션 개발에서 매우 유용합니다.

Apidog의 유튜브 영상을 시청하실 수 있습니다.

요약

Qwen3는 정말 훌륭한 모델로, 특히 작은 크기의 모델도 이전 세대의 큰 모델과 동등하거나 그 이상의 성능을 발휘한다는 점이 인상적입니다. LM Studio를 사용하면 이러한 강력한 모델을 쉽게 로컬에서 실행할 수 있어, 프라이버시를 보장하면서 비용 효율적으로 최신 AI 기술을 활용할 수 있습니다.

개인적으로는 Qwen3-4B가 특히 마음에 듭니다. 비교적 작은 크기임에도 놀라울 정도로 고성능이며, 일반 PC에서도 원활하게 작동합니다. 하이브리드 사고 모드나 다국어 지원 같은 기능도 실제 프로젝트에서 매우 유용합니다.

하드웨어와 소프트웨어 생태계가 계속 발전함에 따라, 대규모 언어 모델의 힘은 점점 더 민주화되어 클라우드 서버에서 우리의 로컬 머신으로 이동하고 있습니다. LM Studio와 Apidog를 사용해 Qwen3를 시도해보고, 이 로컬 AI 혁명의 최전선을 경험해보세요!

여러분도 시도해보셨나요? 어떤 용도로 사용하고 계신지 댓글로 알려주세요. 또한, 다른 모델과의 비교나 성능 차이에 대해서도 논의할 수 있으면 좋겠습니다.

0개의 댓글