Giriş
Kimi K3, yapay zeka dünyasında devrim yaratan ve 2.8 trilyon parametreye sahip bir büyük dil modelidir (LLM). Bu kadar büyük bir modelin yerel olarak çalıştırılması, sıradan GPU sunucularının kapasitesini aşmaktadır. NVIDIA tarafından geliştirilen B300 serisi GPU'lar, bu modelin verimli bir şekilde çalıştırılmasını mümkün kılan ilk ticari donanımlardan biridir. AWS, bu modelin self-hosting (kendi sunucularında barındırma) desteğini duyurmuş olup, kullanıcıların 8 adet NVIDIA B300 GPU'lu instance kullanarak Kimi K3'ü dağıtmalarını sağlamaktadır.
Ön Gereksinimler ve Hazırlık
Kimi K3'ün AWS üzerinde dağıtılması için aşağıdaki ön koşulların sağlanması gerekmektedir:
-
AWS Hesabı ve Yetkiler:
AWS hesabınızda EC2, EBS, VPC ve IAM hizmetlerine erişim yetkilerine sahip olmalısınız. Gerekiyorsa, AWS yönetici hesabınızdan gerekli politikaları oluşturun.
-
AWS CLI ve SDK'ları:
Dağıtım sürecini otomatikleştirmek için AWS CLI ve Python için Boto3 SDK'sını kurun. Kurulum için aşağıdaki komutları çalıştırın:
pip install awscli boto3Ardından AWS CLI'yi yapılandırın:
aws configure -
NVIDIA B300 GPU Instance Rezervasyonu:
Önemli Uyarı: NVIDIA B300 GPU'lu instance'lar (örneğin
p5e.48xlarge) AWS tarafından sınırlı sayıda sunulmaktadır. Dağıtım yapmadan önce AWS Support'a başvurarak kapasite rezervasyonu yaptırmanız gerekmektedir. Rezervasyon yapılmadan instance başlatılması mümkün olmayacaktır. -
Depolama ve Ağ Yapılandırması:
Modelin çalışması için yeterli depolama alanı (en az 10TB NVMe SSD) ve yüksek bant genişliğine sahip bir VPC (Virtual Private Cloud) yapılandırması gerekmektedir. AWS üzerinden Amazon VPC oluşturun ve subnet, route table, security group ayarlarını yapılandırın.
AWS Üzerinde Kimi K3 Dağıtım Adımları
1. Adım: Instance Oluşturma ve GPU Yapılandırması
-
AWS Management Console'a giriş yapın ve EC2 hizmetine gidin. Ardından Launch Instance butonuna tıklayın.
-
Instance Türü Seçimi: Aşağıdaki tabloyu kullanarak uygun instance türünü seçin:
Instance Türü Açıklama GPU Sayısı p5e.48xlargeEn yüksek performanslı instance, 8x NVIDIA B300 GPU destekler 8 -
Amazon Machine Image (AMI) Seçimi: NVIDIA tarafından optimize edilmiş Deep Learning AMI (DLAMI) kullanın. Bu AMI, GPU'lar için gerekli sürücüleri ve kütüphaneleri içermektedir. AMI ID'sini bulmak için AWS ML AMIs sayfasını ziyaret edin.
-
Depolama Ekleme: Instance'a en az 10TB NVMe SSD ekleyin. Depolama ayarlarını aşağıdaki gibi yapılandırın:
Root Volume: 100GB (GP3) Additional Volume: 10TB (GP3, io1/io2 tipi) -
Security Group Yapılandırması: Giriş/çıkış trafiğini aşağıdaki kurallarla yapılandırın:
Inbound Rules: - Type: SSH, Port: 22, Source: Your IP - Type: HTTP, Port: 80, Source: 0.0.0.0/0 (Gerekirse kısıtlayın) - Type: HTTPS, Port: 443, Source: 0.0.0.0/0 - Type: Custom TCP, Port: 8000-9000, Source: Your VPC CIDR -
Instance'ı başlatın ve key pair dosyasını indirin. Bu dosya, SSH üzerinden instance'a bağlanmak için gereklidir.
2. Adım: Instance'a Bağlanma ve Çevre Hazırlığı
-
Terminal üzerinden instance'a SSH ile bağlanın:
ssh -i "your-key.pem" ubuntu@ -
Gerekli paketleri ve bağımlılıkları yükleyin:
sudo apt update && sudo apt upgrade -y sudo apt install -y nvidia-driver-535 nvidia-cuda-toolkit python3-pip git -
NVIDIA GPU'ların doğru şekilde tanındığını doğrulayın:
nvidia-smiÇıktıda 8 adet NVIDIA B300 GPU'nun listelenmesi gerekmektedir.
-
Kimi K3 modelini çalıştırmak için gerekli Python kütüphanelerini yükleyin:
pip install torch transformers accelerate peft bitsandbytes
3. Adım: Kimi K3 Modelinin Yüklenmesi ve Yapılandırılması
-
Kimi K3 modelini indirin. Resmi kaynaklardan modeli klonlayın:
git clone https://github.com/Kimi-AI/Kimi-K3.git cd Kimi-K3 -
Model dosyalarını indirin. AWS S3 üzerinden model dosyalarını indirmek için aşağıdaki komutu kullanın:
aws s3 cp s3://kimi-k3-model-files/ . --recursiveİpucu: Model dosyaları oldukça büyük olduğundan (yaklaşık 50TB), indirme işlemi uzun sürebilir. AWS DataSync veya AWS Transfer Family gibi hizmetleri kullanarak aktarımı hızlandırabilirsiniz.
-
Modeli yüklemek ve çalıştırmak için gerekli komut dosyasını oluşturun. Aşağıdaki
run_kimi_k3.pydosyasını oluşturun:from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_path = "./kimi-k3-model" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto" ) # Modeli çalıştırma input_text = "Merhaba, Kimi K3!" inputs = tokenizer(input_text, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=100) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) -
Modeli başlatın:
python run_kimi_k3.pyUyarı: Modelin yüklenmesi ve ilk çalıştırılması sırasında GPU belleği yoğun şekilde kullanılacaktır. Instance'ın RAM ve GPU belleği yetersiz kalabilir. Gerekiyorsa,
device_map="auto"yerinedevice_map={"": 0, "model.layers.0": 1, ...}gibi özel bir cihaz haritası kullanın.
4. Adım: API Olarak Erişilebilir Hale Getirme
-
Modeli bir API olarak çalıştırmak için FastAPI veya Flask kullanın. Aşağıda FastAPI örneği bulunmaktadır:
from fastapi import FastAPI from pydantic import BaseModel from transformers import AutoModelForCausalLM, AutoTokenizer import torch app = FastAPI() model_path = "./kimi-k3-model" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto" ) class Query(BaseModel): text: str @app.post("/predict") async def predict(query: Query): inputs = tokenizer(query.text, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=100) return {"response": tokenizer.decode(outputs[0], skip_special_tokens=True)} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000) -
API'yi başlatın:
uvicorn main:app --host 0.0.0.0 --port 8000 -
API'ye erişmek için instance'ın public IP'sini kullanın:
curl -X POST http://:8000/predict \ -H "Content-Type: application/json" \ -d '{"text":"Merhaba, Kimi K3!"}'
5. Adım: AWS Endpoint Oluşturma ve Yönetimi
-
Modelinizi AWS üzerinde kalıcı bir endpoint olarak yapılandırmak için AWS SageMaker hizmetini kullanabilirsiniz. SageMaker, modelinizi yönetmenizi ve ölçeklendirmenizi kolaylaştırır.
# SageMaker için model dosyalarınızı S3'e yükleyin aws s3 cp ./kimi-k3-model s3://your-bucket-name/kimi-k3-model/ --recursive # SageMaker model oluşturma aws sagemaker create-model \ --model-name kimi-k3-model \ --execution-role-arn arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole \ --primary-container Image=763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.10.2-transformers4.17.0-cpu-py38-ubuntu20.04, ModelDataUrl=s3://your-bucket-name/kimi-k3-model/ -
Endpoint oluşturun:
aws sagemaker create-endpoint-config \ --endpoint-config-name kimi-k3-config \ --production-variants VariantName=variant-1,ModelName=kimi-k3-model,InitialInstanceCount=1,InstanceType=ml.p4d.24xlargeNot:
ml.p4d.24xlargeinstance'ı, 8x NVIDIA V100 GPU'lu bir yapıdır. NVIDIA B300 destekleyen bir SageMaker instance'ı henüz yayınlanmamıştır. Bu nedenle, modelinizi doğrudan EC2 instance'ında çalıştırmaya devam edin. -
Endpoint'i başlatın:
aws sagemaker create-endpoint --endpoint-name kimi-k3-endpoint --endpoint-config-name kimi-k3-config
Maliyet Optimizasyonu ve Performans İyileştirme
Önemli: NVIDIA B300 GPU'lu instance'lar oldukça pahalıdır. Aşağıdaki önerilerle maliyetleri ve performansı optimize edebilirsiniz:
- Spot Instance'ları kullanın: Talebiniz esnekse,
p5e.48xlargeinstance'larını Spot Instance olarak başlatın. Maliyetler %70'e kadar düşebilir.- Auto Scaling kullanın: Modeliniz yoğun şekilde kullanılmıyorsa, instance sayısını otomatik olarak azaltın.
- Model Quantization: Modeli
bitsandbytesile 8-bit veya 4-bit'e quantize ederek GPU belleği kullanımını azaltın.- Warm-up Süreçleri: Modelin soğuk başlatma süresini azaltmak için, instance'ı sürekli çalışır halde tutun.
Sorun Giderme
-
GPU Belleği Yetersiz: Eğer
CUDA out of memoryhatası alırsanız, modeli daha küçük parçalara ayırın veya quantize edin.model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, load_in_8bit=True # 8-bit quantization ) -
Yavaş Performans: GPU sürücülerinin güncel olduğundan emin olun. Aşağıdaki komutla sürücüleri güncelleyin:
sudo apt install -y nvidia-driver-535 -
Network Bant Genişliği: Model dosyalarını indirirken yavaşlık yaşıyorsanız, AWS DataSync veya AWS Transfer Family kullanarak aktarımı hızlandırın.
Sonuç
Kimi K3 gibi devasa modellerin AWS üzerinde self-hosting ile dağıtılması, özel donanım ve dikkatli planlama gerektirir. Bu rehberde, NVIDIA B300 GPU'lu bir instance kullanarak Kimi K3'ün nasıl dağıtılacağı, yapılandırılacağı ve optimize edileceği adım adım açıklanmıştır. AWS'in sunduğu hizmetleri ve en iyi uygulamaları kullanarak, kuruluşlar bu modeli üretim ortamında güvenilir bir şekilde çalıştırabilirler.
Unutmayın, bu süreç gelişmiş düzeyde teknik bilgi gerektirir. AWS desteği ve NVIDIA belgeleriyle birlikte çalışarak, dağıtım sürecini daha sorunsuz hale getirebilirsiniz.



