vllm 允许通过OpenAI服务器传递hf配置参数,

liwlm1x9  于 2个月前  发布在  其他
关注(0)|答案(8)|浏览(70)

你好,

是否有特定的原因不能允许将参数从openai服务器传递到HF配置类?在运行模型时,我确实希望通过服务器动态覆盖现有的配置参数。

参考线:
简单地允许在加载模型时将*args传递给openai服务器,我相信如果有任何配置错误,内部检查都会失败。

Transformers库支持的文档:

>>> # Change some config attributes when loading a pretrained config.
        >>> config = AutoConfig.from_pretrained("bert-base-uncased", output_attentions=True, foo=False)
        >>> config.output_attentions
        True
ej83mcc0

ej83mcc01#

我相信这没有根本原因。欢迎贡献!我想说你可以将这个添加到ModelConfig类中,并通过EngineArgs传递它。

uxhixvfz

uxhixvfz2#

我会看一下这个。

vjhs03f7

vjhs03f73#

有人知道关于那个的新闻吗?我想使用--dtype,但是它不起作用。

jw5wzhpr

jw5wzhpr4#

请查看vllm文档中的引擎参数,以了解支持的@mrPsycox —dtype

xeufq47z

xeufq47z5#

感谢@Aakash-kaushik,我找到了问题。传递--dtype需要在命令的第一个参数中,而不是在最后一个。
这个对我有效:

run: |
   conda activate vllm
   python -m vllm.entrypoints.openai.api_server \
     --tensor-parallel-size $SKYPILOT_NUM_GPUS_PER_NODE \
     --dtype half \
     --host 0.0.0.0 --port 8080 \
     --model <model_ name>
u3r8eeie

u3r8eeie6#

作为解决方法,我目前正在做类似的事情:

import shutil
import os
from contextlib import contextmanager

@contextmanager
def swap_files(file1, file2):
    try:
        
        temp_file1 = file1 + '.temp'
        temp_file2 = file2 + '.temp'
            
        print("Renaming Files.")
        os.rename(file1, temp_file1)
        os.rename(file2, file1)
        os.rename(temp_file1, file2)
        
        yield
        
    finally:
        print("Restoring Files.")
        os.rename(file2, temp_file2)
        os.rename(file1, file2)
        os.rename(temp_file2, file1)

file1 = '/path/to/original/config.json'
file2 = '/path/to/modified/config.json'

with swap_files(file1, file2):
    llm = LLM(...)
xsuvu9jc

xsuvu9jc7#

我也很乐意看到这个。

fjnneemd

fjnneemd8#

@Aakash-kaushik@mrPsycox@timbmg@K-Mistele
请查看我的PR,并告诉我它是否符合您的需求。
正如@DarkLight1337在我的PR中指出的( #5836 ) ,您希望通过此功能实现什么目标,而无法通过vLLM参数来实现?(如果我们没有任何导致不同vLLM输出的情况,启用此功能的意义何在?)
一旦您回复我,我会编写一个涵盖该情况的测试。

相关问题