vllm-project / vllm

A high-throughput and memory-efficient inference and serving engine for LLMs
https://docs.vllm.ai
Apache License 2.0
27.86k stars 4.11k forks source link

[Bug]: vllm: error: unrecognized arguments: --config #8273

Closed FloWsnr closed 3 weeks ago

FloWsnr commented 3 weeks ago
Hi guys, I cannot serve an vllm server with a config.yaml file using `vllm serve model --config config.yaml` Regardsless of the specified path, I always get: `vllm: error: unrecognized arguments: --config` I tried quoting the path, I tried relative and absolute path and I also tried a wrong non-existing path. All with the error above. The server runs just fine if I do not use the `--config` argument. The content of the .yaml file is just as in the documentation ``` host: "127.0.0.1" port: 6379 uvicorn-log-level: "info" ``` Any idea whats wrong here? ### Update: I tried to manually specify various command and got confusing results. These work: ``` vllm serve "/hpcwork/fw641779/llm/Meta-Llama-3.1-8B-Instruct" --port 6379 vllm serve "/hpcwork/fw641779/llm/Meta-Llama-3.1-8B-Instruct" --uvicorn-log-level info ``` However, if I start the server via a python subprocess with ``` main_command = ["vllm", "serve", f"{model_path}", "--host 127.0.0.1", "--port 6379"] server_p = subprocess.run(main_command) ``` the commands `host` and `port` are suddently unknown. Again, the server works just fine if no arguments are given. ### Update 2: The python commands work if we use `=` to assign the arguments: ``` main_command = ["vllm", "serve", f"{model_path}", "--host=127.0.0.1", "--port=6379"] server_p = subprocess.run(main_command) ``` ### Your current environment ```text PyTorch version: 2.4.0+cu121 Is debug build: False CUDA used to build PyTorch: 12.1 ROCM used to build PyTorch: N/A OS: Rocky Linux release 8.10 (Green Obsidian) (x86_64) GCC version: (GCC) 11.3.0 Clang version: Could not collect CMake version: version 3.26.5 Libc version: glibc-2.28 Python version: 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] (64-bit runtime) Python platform: Linux-4.18.0-553.16.1.el8_10.x86_64-x86_64-with-glibc2.28 Is CUDA available: True CUDA runtime version: Could not collect CUDA_MODULE_LOADING set to: LAZY GPU models and configuration: GPU 0: NVIDIA H100 GPU 1: NVIDIA H100 GPU 2: NVIDIA H100 MIG 1g.12gb Device 0: MIG 1g.12gb Device 1: MIG 1g.12gb Device 2: MIG 1g.12gb Device 3: MIG 1g.12gb Device 4: MIG 1g.12gb Device 5: MIG 1g.12gb Device 6: GPU 3: NVIDIA H100 Nvidia driver version: 550.90.07 cuDNN version: Could not collect HIP runtime version: N/A MIOpen runtime version: N/A Is XNNPACK available: True CPU: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 96 On-line CPU(s) list: 0-95 Thread(s) per core: 1 Core(s) per socket: 48 Socket(s): 2 NUMA node(s): 8 Vendor ID: GenuineIntel CPU family: 6 Model: 143 Model name: Intel(R) Xeon(R) Platinum 8468 Stepping: 8 CPU MHz: 2100.000 CPU max MHz: 3800.0000 CPU min MHz: 800.0000 BogoMIPS: 4200.00 L1d cache: 48K L1i cache: 32K L2 cache: 2048K L3 cache: 107520K NUMA node0 CPU(s): 0-11 NUMA node1 CPU(s): 12-23 NUMA node2 CPU(s): 24-35 NUMA node3 CPU(s): 36-47 NUMA node4 CPU(s): 48-59 NUMA node5 CPU(s): 60-71 NUMA node6 CPU(s): 72-83 NUMA node7 CPU(s): 84-95 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities Versions of relevant libraries: [pip3] numpy==1.26.4 [pip3] nvidia-cublas-cu12==12.1.3.1 [pip3] nvidia-cuda-cupti-cu12==12.1.105 [pip3] nvidia-cuda-nvrtc-cu12==12.1.105 [pip3] nvidia-cuda-runtime-cu12==12.1.105 [pip3] nvidia-cudnn-cu12==9.1.0.70 [pip3] nvidia-cufft-cu12==11.0.2.54 [pip3] nvidia-curand-cu12==10.3.2.106 [pip3] nvidia-cusolver-cu12==11.4.5.107 [pip3] nvidia-cusparse-cu12==12.1.0.106 [pip3] nvidia-ml-py==12.560.30 [pip3] nvidia-nccl-cu12==2.20.5 [pip3] nvidia-nvjitlink-cu12==12.6.68 [pip3] nvidia-nvtx-cu12==12.1.105 [pip3] pyzmq==26.2.0 [pip3] sentence-transformers==3.0.1 [pip3] torch==2.4.0 [pip3] torchvision==0.19.0 [pip3] transformers==4.44.2 [pip3] triton==3.0.0 [conda] No relevant packages ROCM Version: Could not collect Neuron SDK Version: N/A vLLM Version: 0.5.5@09c7792610ada9f88bbf87d32b472dd44bf23cc2 vLLM Build Flags: CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled GPU Topology: GPU0 GPU1 GPU2 GPU3 NIC0 NIC1 CPU Affinity NUMA Affinity GPU NUMA ID GPU0 X NV6 NV6 NV6 SYS SYS 0-11 0 N/A GPU1 NV6 X NV6 NV6 PIX SYS 24-35 2 N/A GPU2 SYS SYS X SYS SYS SYS 48-59 4 N/A GPU3 NV6 NV6 NV6 X SYS PIX 72-83 6 N/A NIC0 SYS PIX SYS SYS X SYS NIC1 SYS SYS SYS PIX SYS X Legend: X = Self SYS = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI) NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node PHB = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU) PXB = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge) PIX = Connection traversing at most a single PCIe bridge NV# = Connection traversing a bonded set of # NVLinks NIC Legend: NIC0: mlx5_0 NIC1: mlx5_1 ```

🐛 Describe the bug

vllm serve "/hpcwork/fw641779/llm/Meta-Llama-3.1-8B-Instruct" --config "/home/fw641779/Coding/proposal-mining/mining/server_config.yaml"
usage: vllm [-h] {serve,complete,chat} ...
vllm: error: unrecognized arguments: --config /home/fw641779/Coding/proposal-mining/mining/server_config.yaml

Or similar:

vllm serve /hpcwork/fw641779/llm/Meta-Llama-3.1-8B-Instruct --config ./mining/server_config.yaml 
usage: vllm [-h] {serve,complete,chat} ...
vllm: error: unrecognized arguments: --config ./mining/server_config.yaml

Before submitting a new issue...

robertgshaw2-neuralmagic commented 3 weeks ago

Hey - is there an example somewhere that suggests we support loading from a config.yaml?

I dont believe we currently support this. I do think launching with a config.yaml is a great idea though!

FloWsnr commented 3 weeks ago

I think this option should already be supported: https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html#config-file

You can also see this option in the script code here: https://github.com/vllm-project/vllm/blob/main/vllm/scripts.py#L128

robertgshaw2-neuralmagic commented 3 weeks ago

Oh cool! Looks like this just got added

youkaichao commented 3 weeks ago

vLLM Version: 0.5.5@09c7792610ada9f88bbf87d32b472dd44bf23cc2

https://github.com/vllm-project/vllm/pull/7737 is not released yet. if you want to use it, please use the per-commit wheel. see https://docs.vllm.ai/en/latest/getting_started/installation.html

robertgshaw2-neuralmagic commented 3 weeks ago

I think this is is v0.6.0

FloWsnr commented 3 weeks ago

Aah, this explains a lot! Alright, thank you for the fast help! 👍 Closing the issue!