Integração LoRA#
Atualmente, o Xinference pode iniciar os modelos LLM e image juntamente com um modelo de ajuste fino LoRA para auxiliar o modelo base.
Uso#
Iniciar#
Diferente dos modelos embutidos, o Xinference atualmente não gerencia modelos LoRA. O usuário precisa primeiro baixar o modelo LoRA correspondente e, em seguida, fornecer o caminho de armazenamento do modelo para o 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
)
Aplicação#
Para grandes modelos de linguagem, especifique uma LoRA ao usar. Especificamente, configure o parâmetro lora_name nos parâmetros generate_config. O lora_name corresponde à sua configuração durante o processo de inicialização.
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>"}
)
Avisos / Notas Importantes#
As opções
image_lora_load_kwargseimage_lora_fuse_kwargsacima se aplicam apenas ao modeloimage. Elas correspondem a parâmetros adicionais nas interfacesload_lora_weightsefuse_lorada bibliotecadiffusers. Se estiver executando um modeloLLM, não é necessário definir essas opções.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 modelos de chat
LLM, atualmente só são suportados modelos LoRA que, após o fine-tuning, não alteram o template de prompt do modelo base original.Ao usar GPU, o modelo LoRA e seu modelo base estão no mesmo dispositivo, sem afetar outros modelos.