|
|
#!/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 "" |
|
|
|