Integrar LoRA#
Actualmente, Xinference puede cargar un modelo de ajuste fino LoRA junto con los modelos LLM e image al iniciarlos, para asistir al modelo base.
Modo de uso#
Iniciar#
A diferencia de los modelos integrados, Xinference actualmente no gestiona los modelos LoRA. El usuario debe descargar primero el modelo LoRA correspondiente y luego proporcionar la ruta de almacenamiento del modelo a 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
)
Aplicación#
Para modelos de lenguaje grandes, especifique uno de los LoRA al usarlo. Específicamente, configure el parámetro lora_name en el parámetro generate_config. lora_name corresponde a su configuración durante el proceso de 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>"}
)
Notas importantes#
Las opciones image_lora_load_kwargs y image_lora_fuse_kwargs mencionadas anteriormente solo se aplican al modelo image. Corresponden a los parámetros adicionales en las interfaces load_lora_weights y fuse_lora de la biblioteca diffusers. Si se inicia el modelo LLM, no es necesario configurar estas opciones.
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.
Para el modelo de chat
LLM, actualmente solo se admiten modelos LoRA que, después del ajuste fino, no modifiquen la plantilla de indicaciones del modelo base original.Al usar GPU, el modelo LoRA y su modelo base están en el mismo dispositivo y no afectan a otros modelos.