Skip to main content

튜토리얼: W&B Inference로 Kimi K2 추론 실행하기

Python에서 W&B Inference를 사용해 Moonshot AI의 고급 장문맥 언어 모델 Kimi K2를 설정하고 실행하기. 우리는 moonshotai/Kimi-K2-Instruct 모델로 진행합니다. 이 글은 AI 번역본입니다. 오역이 의심되면 댓글로 알려 주세요.
Created on September 15|Last edited on September 15
Kimi K2로 추론 실행하기 CoreWeave로 구동되는 W&B Inference 놀랍도록 간단하면서도, 다른 인터페이스에서 접하는 것以上으로 활용 범위를 크게 넓혀 줍니다. 이 튜토리얼에서는 추론을 직접 실행해 보고, 고급 기능을 깊이 있게 탐색해 보겠습니다.
방대한 문서에 대해 추론을 실행하든, 다국어 애플리케이션을 구축하든, 복잡한 추론 과제를 해결하든, 이 가이드는 Kimi K2로 효과적으로 추론을 수행하는 데 필요한 모든 내용을 제공합니다.

목차



Kimi K2란 무엇인가요?

Kimi K2는 Moonshot AI가 개발한 최첨단 대규모 언어 모델로, 깊이 있는 이해와 방대한 문맥 처리 능력이 필요한 작업을 위해 명확한 목표로 설계되었습니다. Kimi K2를 다른 언어 모델과 구분 짓는 특징은 다음과 같습니다:
🔍 확장된 컨텍스트 윈도우: 한 번의 대화에서 수백만 토큰까지 처리 — 전체 코드베이스, 법률 문서, 연구 논문 분석이나 장시간 대화에서의 문맥 유지에 최적입니다.
🌐 다국어 성능 최적화: 중국어와 영어에서 특히 뛰어난 성능을 바탕으로 다양한 언어 전반에서 우수한 품질을 제공하여, 국제적 애플리케이션과 문화 간 콘텐츠 분석에 이상적입니다.
🧠 고급 추론 능력: 여러 단계의 문제 해결, 수학적 추론, 그리고 장문의 사고 과정 전반에서 논리적 일관성을 유지해야 하는 복잡한 분석 작업에 뛰어납니다.
💻 코드 이해력: 여러 프로그래밍 언어 전반에서 뛰어난 이해와 생성 능력을 갖추었으며, 소프트웨어 아키텍처와 패턴에 대한 깊은 통찰을 제공합니다.
📋 지시 사항 준수: 장시간의 대화 전반에서 문맥을 유지하고 상세한 지시를 충실히 따르며, 축적된 문맥에 기반해 응답을 유연하게 조정합니다.
자세한 기술 사양과 성능 벤치마크는 Kimi K2 모델 문서를 참조하세요.

W&B Weave

W&B Weave 프로젝트에서 모델 출력의 추적과 분석 과정을 간소화해 줍니다. Weave를 시작하려면 먼저 라이브러리를 임포트하고, 프로젝트 이름으로 초기화하세요.
가장 돋보이는 기능 중 하나는 @weave.op 데코레이터. Python에서 데코레이터는 함수의 동작을 확장하는 강력한 도구입니다. 이를 함수에 적용하면 @weave.op 코드에서 함수 위에 붙이면, 해당 함수의 입력과 출력을 Weave가 자동으로 기록하도록 지시하는 것입니다. 이렇게 하면 어떤 데이터가 들어가고 무엇이 나오는지 추적하기가 매우 쉬워집니다.
코드가 실행되면 이러한 로그가 Weave 대시보드에 표시되며, 함수 호출에 대한 상세한 시각화와 트레이스도 함께 확인할 수 있습니다. 이는 디버깅에 도움이 될 뿐만 아니라 실험 데이터를 체계화하는 데에도 유용해, Kimi K2와 같은 모델을 개발하고 미세 조정하기가 훨씬 쉬워집니다.

튜토리얼: W&B Inference로 Kimi K2 추론 실행하기

바로 시작하겠습니다. 이 튜토리얼은 사용자가 Jupyter 노트북에서 작업한다고 가정하지만, 물론 코드는 다른 애플리케이션에서도 그대로 동작합니다.
다음으로 추론을 실행하려고 합니다 moonshotai/Kimi-K2-Instruct 특히 모델 측면에서.
Jupyter Notebook이 익숙하지 않다면 약 5분이면 설정할 수 있습니다. 아래에서 단계별로 안내해 드립니다 이 튜토리얼.
💡

���전 준비 사항

시작하기 전에 다음 항목을 준비하세요:
  • Weights & Biases 계정(무료로 가입 가능) 여기)
  • Python 3.7 이상이 설치되어 있어야 합니다
  • Python과 API 사용에 대한 기본 이해
  • 사용 사례 요구 사항에 대한 이해(문서 분석, 코드 리뷰, 다국�� 작업 등)

1단계: 설치 및 설정

1. 필요한 패키지 설치

Kimi K2로 추론을 시작하려면 OpenAI와 Weave만 설치하면 됩니다. 다만 여러 출력 결과를 더 쉽게 검토하는 방법도 함께 소개하겠습니다. W&B Weave를 사용하면 이 과정을 훨씬 더 효율적으로 진행할 수 있습니다.
이를 위한 코드는 다음과 같습니다:
pip install openai wandb weave
이 코드를 입력한 뒤 터미널이나 Jupyter 셀에서 실행하세요.
셀을 실행하면 대괄호 [ ] 안에 별표([*])가 나타나는 것을 볼 수 있습니다. 이는 셀이 실행 중임을 의미하며, 별표가 숫자로 바뀔 때까지 기다린 뒤에 진행하세요.

2. W&B API 키 받기

  1. API 키 복사
  2. 다음 단계에서 사용할 수 있도록 보관하세요

2단계: 환경 구성

보안성과 원활한 운영을 위해 환경 변수를 설정하는 것이 중요합니다. W&B API 키와 프로젝트 정보가 모두 필요합니다.

옵션 1: Jupyter Notebook에서

# Set environment variables in your notebook
%env WANDB_API_KEY=your-wandb-api-key-here
%env WANDB_PROJECT=your-team/your-project

옵션 2: 터미널/셸에서

export WANDB_API_KEY="your-wandb-api-key-here"
export WANDB_PROJECT="your-team/your-project"

옵션 3: Python 스크립트에서

import os

# Set environment variables programmatically
os.environ["WANDB_API_KEY"] = "your-wandb-api-key-here"
os.environ["WANDB_PROJECT"] = "your-team/your-project"

3단계: Kimi K2로 기본 추론 실행

이제 재미있는 부분에 도착했으니, 그동안 너무 고생스럽지 않았길 바랍니다.
Kimi K2로 추론을 실행하기 위한 전체 예시는 다음과 같습니다:
import openai
import weave
import os

# Initialize Weave for automatic logging and monitoring
# This will use the WANDB_PROJECT environment variable
weave.init(os.getenv("WANDB_PROJECT"))

# Create the OpenAI client configured for W&B Inference
client = openai.OpenAI(
# W&B Inference endpoint
base_url='https://api.inference.wandb.ai/v1',
# Use environment variable for API key (your W&B API key)
api_key=os.getenv("WANDB_API_KEY"),
# Specify your team and project for usage tracking
project=os.getenv("WANDB_PROJECT"),
)

# Make a request to Kimi K2
response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{"role": "system", "content": "You are a helpful assistant specialized in providing detailed explanations."},
{"role": "user", "content": "Explain quantum computing in simple terms."}
],
temperature=0.7,
max_tokens=1000
)

# Print the response
print(response.choices[0].message.content)
입력과 출력이 매개변수와 함께 자동으로 포함되어 Weave 대시보드에 기록됩니다:


4단계: 고급 Kimi K2 추론 구성

추론 매개변수 이해하기

다음 핵심 추론 매개변수로 Kimi K2의 응답 동작을 조정하세요(자유롭게 값을 바꿔 보며 Weave에서 출력 결과를 비교해 보세요!).
response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{"role": "system", "content": "You are a creative writing assistant."},
{"role": "user", "content": "Write a short story about time travel."}
],
temperature=0.8, # Controls creativity (0.0=focused, 1.0=creative)
max_tokens=2000, # Maximum response length
top_p=0.9, # Nucleus sampling (0.1=focused, 1.0=diverse)
frequency_penalty=0.1, # Reduces repetitive phrases (0.0-2.0)
presence_penalty=0.1, # Encourages topic diversity (0.0-2.0)
)
매개변수 가이드라인:
  • 온도: 분석 작업에는 0.1–0.3, 창의적 작업에는 0.7–0.9를 사용하세요
  • 탑_p: 온도와 함께 사용하세요. 대부분의 애플리케이션에서는 0.9가 잘 작동합니다.
  • 패널티: 품질을 해치지 않고 반복을 줄이려면 0.1–0.2부터 시작하세요
이는 모델 출력에 영향을 줄 수 있는 유연성을 더해 줍니다. 또한 이러한 매개변수는 관측성과 향후 평가를 위해 W&B Weave에 자동으로 기록됩니다:


스트리밍 추론 응답

실시간 출력과 더 나은 사용자 경험을 위해:
response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me a comprehensive story about space exploration."}
],
stream=True,
temperature=0.7
)

# Print the response as it streams
print("Response: ", end="")
for chunk in response:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="", flush=True)
print("\n")
스트리밍 응답을 받았습니다.

다음과 같이 Weave에 메트릭을 기록하면:

전체 출력뿐만 아니라


5단계: Kimi K2의 고유 기능을 활용한 추론 실행

바로 여기서 Kimi K2로 추론을 실행하는 진가가 드러납니다. 무엇이 특별한지 살펴보겠습니다.

긴 컨텍스트 추론

Kimi K2는 방대한 문서에 대한 추론 실행에서 탁월합니다. 다음은 실용적인 예시입니다:
# Real example: Analyzing a technical specification
technical_doc = """
API Documentation: RESTful Web Services v2.1

OVERVIEW
This document outlines the complete specification for our RESTful web services API,
including authentication, endpoints, request/response formats, error handling,
and rate limiting policies.

AUTHENTICATION
All API requests must include a valid Bearer token in the Authorization header:
Authorization: Bearer <your-access-token>

Tokens expire after 24 hours and must be renewed using the /auth/refresh endpoint.

ENDPOINTS

1. User Management
GET /api/v2/users - Retrieve user list
POST /api/v2/users - Create new user
PUT /api/v2/users/{id} - Update existing user
DELETE /api/v2/users/{id} - Delete user

2. Data Operations
GET /api/v2/data - Query data with filtering
POST /api/v2/data - Submit new data
PUT /api/v2/data/{id} - Update existing data

RATE LIMITING
- Standard tier: 1000 requests/hour
- Premium tier: 10000 requests/hour
- Enterprise tier: Unlimited

ERROR HANDLING
All errors return JSON with 'error' and 'message' fields:
{
"error": "INVALID_TOKEN",
"message": "The provided token is expired or invalid"
}

[Document continues with detailed specifications...]
"""

response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{
"role": "system",
"content": "You are an expert API analyst. Provide detailed technical analysis focusing on potential issues, missing information, and recommendations for improvement."
},
{
"role": "user",
"content": f"Analyze this API documentation and provide a comprehensive review:\n\n{technical_doc}"
}
],
temperature=0.3, # Lower temperature for focused technical analysis
max_tokens=2000
)

print(response.choices[0].message.content)
다음을 Weave로 출력합니다:


다국어 추론

국제 개발을 위해 Kimi K2의 다국어 추론 기능을 활용하세요:
mixed_language_code = """
// English comments with Chinese variable names
function 计算总价(商品列表, 折扣率) {
let 总价 = 0;
// Calculate base total
for (const 商品 of 商品列表) {
总价 += 商品.价格 * 商品.数量;
}
// Apply discount
const 折扣金额 = 总价 * 折扣率;
return 总价 - 折扣金额;
}

# Python function with mixed comments
def validate_用户输入(user_data):
'''
验证用户输入数据的完整性和有效性
Validates user input data for completeness and validity
'''
required_fields = ['name', 'email', '年龄']
for field in required_fields:
if field not in user_data:
raise ValueError(f"Missing required field: {field}")
return True
"""

response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{
"role": "system",
"content": "You are a senior software engineer fluent in multiple languages. Analyze code for best practices, potential issues, and provide refactoring suggestions."
},
{
"role": "user",
"content": f"Please review this multilingual code and suggest improvements for maintainability:\n\n{mixed_language_code}"
}
],
temperature=0.2
)

print(response.choices[0].message.content)
다음을 Weave에 로그로 남깁니다:


Kimi K2로 복잡한 다단계 추론 실행

복잡한 문제 해결을 위해 Kimi K2의 추론 능력을 활용하세요:
response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{
"role": "system",
"content": "You are a strategic business analyst. Break down complex problems into logical steps and provide actionable recommendations."
},
{
"role": "user",
"content": """
Our SaaS company is experiencing a 15% monthly churn rate. Our customer acquisition cost (CAC) is $150,
average customer lifetime value (CLV) is $800, and monthly recurring revenue per customer is $50.
We have 2,000 active customers and are spending $60,000/month on marketing.
Please analyze this situation and provide a comprehensive strategy to improve our metrics,
including specific actions, expected timelines, and success metrics.
"""
}
],
temperature=0.4, # Balanced creativity and focus for strategic thinking
max_tokens=2500
)

print(response.choices[0].message.content)
대시보드에서 다음과 같이 확인할 수 있습니다:


W&B Weave로 Kimi K2 추론 모니터링

마지막 셀에서 추론 결과를 확인하고 거기서 복사할 수 있습니다. 동작 과정을 더 깊이 살펴보거나 과거 추론 요청을 검토하려면(권장합니다) Weights & Biases 대시보드로 이동하거나 응답과 함께 출력된 링크를 클릭하세요.
환경 변수를 통해 Weave를 초기화하면 모든 추론 API 호출이 자동으로 추적됩니다. 다음 항목이 기록되며, 효과적으로 활용하는 방법은 다음과 같습니다:

Weave가 자동으로 추적하는 항목

  • 요청 세부정보: 사용한 모델, 파라미터, 토큰 수
  • 응답 데이터: 콘텐츠, 처리 시간, 성공/실패 상태
  • 사용 지표: 토큰 소비, API 비용, 속도 제한 상태
  • 성능: 응답 지연 시간, 처리량 패턴

로그에 접근하기

  • 다음으로 W&B 프로젝트 대시보드에 방문하세요: https://wandb.ai/[your-username]/[your-project]
  • “Weave” 섹션으로 이동하세요
  • 상세 로그 보기, 날짜/모델/상태별 필터링
  • 사용 패턴을 분석하고 그에 맞춰 최적화하세요

사용자 지정 Weave 주석

사용자 정의 메타데이터를 추가하고 API 호출을 체계적으로 정리하세요:
import weave

@weave.op()
def analyze_customer_feedback(feedback_text, sentiment_threshold=0.5):
"""
Analyzes customer feedback and categorizes sentiment.
This function will be tracked with custom metadata.
"""
response = client.chat.completions.create(
model="moonshotai/Kimi-K2-Instruct",
messages=[
{
"role": "system",
"content": f"You are a customer feedback analyst. Analyze sentiment and provide a score from -1 (very negative) to 1 (very positive). Also categorize the main topics mentioned."
},
{
"role": "user",
"content": f"Analyze this customer feedback: {feedback_text}"
}
],
temperature=0.1 # Consistent analysis
)
return response.choices[0].message.content

# This call will be logged with function name, parameters, and execution context
result = analyze_customer_feedback(
"The new update is confusing and slow. I can't find the features I used daily.",
sentiment_threshold=0.3
)
print(result)
다음과 같이 표시됩니다:


모범 사례

추론을 통해 Kimi K2를 테스트하거나 배포할 때, 그리고 다른 어떤 모델에도 적용할 수 있는 모범 사례는 다음과 같습니다.

보안 및 구성

  • 환경 변수API 키는 항상 환경 변수에 저장하고, 코드에 하드코딩하지 마세요
  • 프로젝트 구성“팀/프로젝트” 형식을 따라 명확하고 설명적인 프로젝트 이름을 사용하세요
  • 액세스 제어API 키 권한을 필요한 범위로만 제한하세요

Kimi K2용 프롬프트 엔지니어링

  • 긴 컨텍스트를 활용하기주저하지 말고 충분한 컨텍스트를 제공하세요 — Kimi K2는 이를 잘 처리합니다
  • 명확한 지침원하는 출력 형식과 스타일을 구체적으로 명시하세요
  • 시스템 메시지: 전문성과 컨텍스트를 확립하려면 상세한 시스템 프롬프트를 사용하세요
  • 온도 선택분석 작업에는 낮은 값(0.1–0.3), 창의적 작업에는 높은 값(0.7–0.9)

성능 최적화

  • 스트리밍: 더 긴 응답에는 스트리밍을 사용해 사용자 경험을 개선하세요
  • 배치 처리: 가능한 경우 유사한 요청을 묶어 효율을 높이세요
  • 토큰 관리: 토큰 사용량을 모니터링해 비용을 최적화하고 한도 내에서 유지하세요
  • 캐싱: 자주 요청되는 분석에는 응답 캐싱을 구현하세요

모니터링 및 디버깅

  • Weave 통합: 프로덕션 호출 전체에 Weave의 자동 로깅을 사용하세요
  • 사용자 정의 주석: 다양한 사용 사례를 구분해 추적할 수 있도록 의미 있는 메타데이터를 추가하세요
  • 오류 분석: 실패한 요청을 정기적으로 검토해 패턴을 식별하세요
  • 성능 추적: 응답 시간을 모니터링하고 그에 맞게 매개변수를 조정하세요

다음 단계

이제 Kimi K2에 대한 핵심 내용을 충분히 익혔으니:
🔗 고급 기능 살펴보기
📊 워크플로우 최적화하기
  • 특정 사용 사례에 맞춰 자동화된 모니터링 대시보드를 설정하세요
  • 다른 프롬프트 전략 간 A/B 테스트 구현하기
  • 도메인별 작업을 위한 맞춤 평가 지표를 만들기
🚀 구현 규모 확장하기
  • 에러 처리와 모니터링을 갖춘 프로덕션 파이프라인 구축하기
  • 사용 패턴에 기반한 비용 최적화 전략 구현하기
  • 엔드 투 엔드 ML 워크플로우를 위해 다른 W&B 도구와의 통합을 탐색하세요
📚 Kimi K2 더 깊이 알아보기
  • 방문하기 Kimi K2 모델 카드 자세한 기능 정보 확인하기
  • 커뮤니티 예제와 활용 사례 살펴보기
  • 모델 개선 사항과 신규 기능을 꾸준히 확인하세요
이 종합적인 설정으로 Kimi K2의 고급 기능을 최대한 활용하면서, W&B Inference와 Weave를 통해 전문 수준의 모니터링, 로깅, 오류 처리를 안정적으로 수행할 준비가 되었습니다.

이 글은 AI로 번역되었습니다. 오역이 있을 수 있으니 댓글로 알려주세요. 원문 보고서는 다음 링크에서 확인할 수 있습니다: 원문 보고서 보기
Vijay Karunamurthy
Vijay Karunamurthy •  
'"WANDB_API_KEY' needs a terminating "
Reply