メインコンテンツへスキップ
見出し画像
Photo bysattie_yes

How to install Gemma 4, QWEN 2.5-72B and QWEN 2.5-VL-72B, QWEN 3.5 locally on Dual RTX 3090

    Vibe code is everywhere, and this time of writing QWEN 2.5 with 72B parameter, here is how to do it in Dual RTX 3090. 

    Before begin to install, please set your connection as stable as you can, or you can set the connection to use bigger MTU

    ENVIRONMENT SETUP
    Set the MTU of the WIFI, so it will have stable connection

    ip link show # showing all the connections in the machine, if the MTU 1000, just make it bigger
    
    sudo ip link set dev eth0 mtu 1400  # change the eth0 with the connection you use to download
    
    export PIP_NO_IPV6=1 # to use ipv4 only instead of ipv6, then run below commands
    

    Make sure the you use nvidia driver version 555

    sudo apt install nvidia-driver-555

    And then create virtual environment in python


    sudo apt update && sudo apt install -y git wget python3-venv python3-pip
    
    python3 -m venv kimi_env && source kimi_env/bin/activate
    
    pip install vllm --extra-index-url https://pypi.org/simple
    
    or
    
    # below is faster and get nightly build
    uv venv --python 3.12 --seed --managed-python
    source .venv/bin/activate
    uv pip install -U vllm     --torch-backend=auto     --extra-index-url https://wheels.vllm.ai/nightly # add variant subdirectory here if needed

    RUNNING THE MODEL

    export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
    export NCCL_IB_DISABLE=0
    export VLLM_ATTENTION_BACKEND=FLASH_ATTN
    export VLLM_USE_TORCH_COMPILE=1
    
    vllm serve \
    --model Qwen/Qwen2.5-72B-Instruct-AWQ \
    --tensor-parallel-size 2 \
    --max-model-len 16384 \
    --gpu-memory-utilization 0.96 \
    --kv-cache-dtype fp8 \
    --enforce-eager \
    --max-num-batched-tokens 4096 \
    --trust-remote-code

    TEST THE LOCAL API

    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "Qwen/Qwen2.5-72B-Instruct-AWQ",
        "messages": [{"role": "user", "content": "Write a fast Python function to find the nth Fibonacci number."}],
        "max_tokens": 100
      }'

    if you want to run QWEN 2.5-VL-72B, you can run below command

    export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
    export VLLM_WORKER_MULTIPROC_METHOD=spawn
    export VLLM_IMAGE_MAX_PIXELS=602112
    
    vllm serve \
    --model Qwen/Qwen2.5-VL-72B-Instruct-AWQ \
    --tensor-parallel-size 2 \
    --max-model-len 8192 \
    --kv-cache-dtype fp8 \
    --limit-mm-per-prompt '{"image": 5}' \
    --gpu-memory-utilization 0.95 \
    --enforce-eager \
    --trust-remote-code

    If you want to run QWEN 3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-v2-AWQ, you can use this command.

    export VLLM_IMAGE_MAX_PIXELS=602112
    
    vllm serve QuantTrio/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-v2-AWQ     --tensor-parallel-size 2     --max-model-len 65535     --tokenizer Qwen/Qwen3.5-27B     --kv-cache-dtype fp8     --gpu-memory-utiliza
    tion 0.90     --enforce-eager     --trust-remote-code

    if you want to run QWEN 3.5-35B-A3B, you can run below command, but seems to slow in my box ‼️

    export VLLM_IMAGE_MAX_PIXELS=602112
    
    vllm serve cyankiwi/Qwen3.5-35B-A3B-AWQ-4bit \
    --tensor-parallel-size 2 \
    --max-model-len 65536 \
    --kv-cache-dtype fp8 \
    --mm-encoder-tp-mode data \
    --gpu-memory-utilization 0.95 \
    --trust-remote-code 
    --enforce-eager

    GEMMA 4 has just launched, and this is the best LLM open source model running in my dual RTX 3090 👑👑

    export HF_TOKEN=your_token_here
    
    export NCCL_P2P_DISABLE=1
    export NCCL_SHM_DISABLE=1
    
    export VLLM_USE_V1=0
    
    uv run vllm serve cyankiwi/gemma-4-26B-A4B-it-AWQ-4bit \
        --tensor-parallel-size 2 \
        --max-model-len 65536 \
        --tokenizer google/gemma-4-26B-A4B-it \
        --kv-cache-dtype auto \
        --gpu-memory-utilization 0.90 \
        --trust-remote-code \
        --enforce-eager
     #or  if you want to use with claude code
    
    uv run vllm serve cyankiwi/gemma-4-26B-A4B-it-AWQ-4bit \
        --tensor-parallel-size 2 \
        --max-model-len 128000 \
        --tokenizer google/gemma-4-26B-A4B-it \
        --kv-cache-dtype auto \
        --gpu-memory-utilization 0.95 \
        --trust-remote-code \
        --enforce-eager \
        --enable-auto-tool-choice \
        --tool-call-parser gemma4 \
        --reasoning-parser gemma4


    ADD UI INTERFACE BY RUNNING OPEN WEBUI
    Run open webui docker

    docker run -d -p 3000:8080 \
      --add-host=host.docker.internal:host-gateway \
      -v open-webui:/app/backend/data \
      --name open-webui \
      --restart always \
      ghcr.io/open-webui/open-webui:main

    CONFIGURE THE OPEN WEB UI
    Run searxng docker to handle the web search, so the LLM can connect to the real-time events.

     docker run -d -p 8888:8080 \
    --name searxng \
    --restart always \
    -v searxng_data:/etc/searxng   searxng/searxng:latest

    Run another docker image of Docling, to convert the PDF into image, since QWEN 2.5-VL only support reading document in image format, so we need to convert the PDF to image first.

    docker run -d -p 5001:5001 \
    --name docling-serve \
    --restart always \
    -e DOCLING_SERVE_ENABLE_UI=true \
    -e DOCLING_SERVE_ENABLE_REMOTE_SERVICES=true \
    -e DOCLING_SERVE_API_KEY=boringtaskai  quay.io/docling-project/docling-serve:latest
     
     
    Hi, I'm Yoe, this my vlog as a software engineer based on Jakarta. I'll share my routines, technology, and also the culture and food.

    あなたへのおすすめ