|  | #!/bin/bash | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | set -e | 
					
						
						|  |  | 
					
						
						|  | echo "==========================================" | 
					
						
						|  | echo "KORMo MoE vLLM Support Installer" | 
					
						
						|  | echo "==========================================" | 
					
						
						|  | echo "" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | echo "Step 1: Checking vLLM installation..." | 
					
						
						|  | if ! python3 -c "import vllm" 2>/dev/null; then | 
					
						
						|  | echo "❌ vLLM is not installed." | 
					
						
						|  | echo "Installing vLLM..." | 
					
						
						|  | pip install vllm | 
					
						
						|  | echo "✅ vLLM installed successfully" | 
					
						
						|  | else | 
					
						
						|  | echo "✅ vLLM is already installed" | 
					
						
						|  | fi | 
					
						
						|  | echo "" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | echo "Step 2: Finding vLLM installation path..." | 
					
						
						|  | VLLM_PATH=$(python3 -c "import vllm; import os; print(os.path.dirname(vllm.__file__))") | 
					
						
						|  | echo "vLLM path: $VLLM_PATH" | 
					
						
						|  | echo "" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | echo "Step 3: Downloading KORMo MoE vLLM implementation..." | 
					
						
						|  | if [ -f "kormo_moe_vllm.py" ]; then | 
					
						
						|  | echo "✅ kormo_moe_vllm.py found locally" | 
					
						
						|  | else | 
					
						
						|  | echo "Downloading from HuggingFace (dev7halo/KORMo-10B-sft-moe)..." | 
					
						
						|  | wget https://huggingface.co/dev7halo/KORMo-10B-sft-moe/resolve/main/kormo_moe_vllm.py -O kormo_moe_vllm.py 2>/dev/null || \ | 
					
						
						|  | curl -L https://huggingface.co/dev7halo/KORMo-10B-sft-moe/resolve/main/kormo_moe_vllm.py -o kormo_moe_vllm.py 2>/dev/null || { | 
					
						
						|  | echo "❌ Failed to download. Please ensure kormo_moe_vllm.py is in the current directory." | 
					
						
						|  | echo "You can manually download it from:" | 
					
						
						|  | echo "https://huggingface.co/dev7halo/KORMo-10B-sft-moe/blob/main/kormo_moe_vllm.py" | 
					
						
						|  | exit 1 | 
					
						
						|  | } | 
					
						
						|  | echo "✅ Downloaded successfully" | 
					
						
						|  | fi | 
					
						
						|  | echo "" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | echo "Step 4: Installing KORMo MoE model file..." | 
					
						
						|  | TARGET_PATH="$VLLM_PATH/model_executor/models/kormo_moe.py" | 
					
						
						|  | cp kormo_moe_vllm.py "$TARGET_PATH" | 
					
						
						|  | echo "✅ Copied to $TARGET_PATH" | 
					
						
						|  | echo "" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | echo "Step 5: Registering KORMo MoE in vLLM..." | 
					
						
						|  | REGISTRY_PATH="$VLLM_PATH/model_executor/models/registry.py" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | if grep -q "KORMoMoeForCausalLM" "$REGISTRY_PATH"; then | 
					
						
						|  | echo "✅ KORMo MoE is already registered" | 
					
						
						|  | else | 
					
						
						|  | echo "Adding KORMo MoE to registry..." | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | cp "$REGISTRY_PATH" "$REGISTRY_PATH.backup" | 
					
						
						|  | echo "Created backup: $REGISTRY_PATH.backup" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | if grep -q "JambaForCausalLM" "$REGISTRY_PATH"; then | 
					
						
						|  | sed -i '/\"JambaForCausalLM\"/a\    \"KORMoMoeForCausalLM\": (\"kormo_moe\", \"KORMoMoeForCausalLM\"),' "$REGISTRY_PATH" | 
					
						
						|  | echo "✅ KORMo MoE registered successfully" | 
					
						
						|  | else | 
					
						
						|  | echo "⚠️  Could not find JambaForCausalLM in registry." | 
					
						
						|  | echo "Please manually add the following line to $REGISTRY_PATH in _TEXT_GENERATION_MODELS:" | 
					
						
						|  | echo '    "KORMoMoeForCausalLM": ("kormo_moe", "KORMoMoeForCausalLM"),' | 
					
						
						|  | fi | 
					
						
						|  | fi | 
					
						
						|  | echo "" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | echo "Step 6: Verifying installation..." | 
					
						
						|  | python3 << EOF | 
					
						
						|  | try: | 
					
						
						|  | from vllm.model_executor.models.registry import ModelRegistry | 
					
						
						|  | if "KORMoMoeForCausalLM" in ModelRegistry.get_supported_archs(): | 
					
						
						|  | print("✅ Installation successful! KORMo MoE is now supported in vLLM") | 
					
						
						|  | else: | 
					
						
						|  | print("❌ Registration verification failed") | 
					
						
						|  | exit(1) | 
					
						
						|  | except Exception as e: | 
					
						
						|  | print(f"❌ Error during verification: {e}") | 
					
						
						|  | exit(1) | 
					
						
						|  | EOF | 
					
						
						|  |  | 
					
						
						|  | echo "" | 
					
						
						|  | echo "==========================================" | 
					
						
						|  | echo "Installation Complete!" | 
					
						
						|  | echo "==========================================" | 
					
						
						|  | echo "" | 
					
						
						|  | echo "You can now use KORMo MoE with vLLM:" | 
					
						
						|  | echo "" | 
					
						
						|  | echo "Example usage:" | 
					
						
						|  | echo "" | 
					
						
						|  | echo "from vllm import LLM, SamplingParams" | 
					
						
						|  | echo "" | 
					
						
						|  | echo "# Load the model" | 
					
						
						|  | echo "llm = LLM(model='dev7halo/KORMo-10B-sft-moe', dtype='float16')" | 
					
						
						|  | echo "" | 
					
						
						|  | echo "# Generate text" | 
					
						
						|  | echo "prompts = ['안녕하세요']" | 
					
						
						|  | echo "outputs = llm.generate(prompts, SamplingParams(temperature=0.8, max_tokens=100))" | 
					
						
						|  | echo "" | 
					
						
						|  |  |