LoRA 통합#
현재, Xinference는 LLM``과 ``image 모델을 시작할 때 LoRA 미세 조정 모델을 함께 사용하여 기본 모델을 보조할 수 있습니다.
사용 방법#
시작#
내장 모델과 달리, Xinference는 현재 LoRA 모델 관리에 관여하지 않습니다. 사용자는 먼저 해당 LoRA 모델을 다운로드한 후, 모델 저장 경로를 Xinference에 제공해야 합니다.
xinference launch <options>
--lora-modules <lora_name1> <lora_model_path1>
--lora-modules <lora_name2> <lora_model_path2>
--image-lora-load-kwargs <load_params1> <load_value1>
--image-lora-load-kwargs <load_params2> <load_value2>
--image-lora-fuse-kwargs <fuse_params1> <fuse_value1>
--image-lora-fuse-kwargs <fuse_params2> <fuse_value2>
from xinference.client import Client
client = Client("http://<XINFERENCE_HOST>:<XINFERENCE_PORT>")
lora_model1={'lora_name': <lora_name1>, 'local_path': <lora_model_path1>}
lora_model2={'lora_name': <lora_name2>, 'local_path': <lora_model_path2>}
lora_models=[lora_model1, lora_model2]
image_lora_load_kwargs={'<load_params1>': <load_value1>, '<load_params2>': <load_value2>},
image_lora_fuse_kwargs={'<fuse_params1>': <fuse_value1>, '<fuse_params2>': <fuse_value2>}
peft_model_config = {
"image_lora_load_kwargs": image_lora_load_params,
"image_lora_fuse_kwargs": image_lora_fuse_params,
"lora_list": lora_models
}
client.launch_model(
<other_options>,
peft_model_config=peft_model_config
)
의역#
대규모 언어 모델의 경우, 사용 시 하나의 LoRA를 지정합니다. 구체적으로, generate_config 매개변수에서 lora_name 매개변수를 설정합니다. ``lora_name``은 launch 과정에서 설정한 구성에 해당합니다.
from xinference.client import Client
client = Client("http://<XINFERENCE_HOST>:<XINFERENCE_PORT>")
model = client.get_model("<model_uid>")
model.chat(
messages=[{"role": "user", "content": "<prompt>"}],
generate_config={"lora_name": "<your_lora_name>"}
)
주의사항#
위의
image_lora_load_kwargs및image_lora_fuse_kwargs옵션은image모델에만 적용됩니다. 이는diffusers라이브러리의load_lora_weights및fuse_lora인터페이스의 추가 매개변수에 해당합니다.LLM모델을 실행하는 경우 이러한 옵션을 설정할 필요가 없습니다.You need to add the parameter lora_name during inference to specify the corresponding lora model. You can specify it in the Additional Inputs option.
LLM채팅 모델의 경우, 현재는 미세 조정 후 원래 기본 모델의 프롬프트 템플릿을 변경하지 않는 LoRA 모델만 지원됩니다.GPU 사용 시, LoRA 모델과 그 기본 모델은 동일한 장치에 있더라도 다른 모델에 영향을 미치지 않습니다.