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>

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_kwargs e image_lora_fuse_kwargs acima se aplicam apenas ao modelo image. Elas correspondem a parâmetros adicionais nas interfaces load_lora_weights e fuse_lora da biblioteca diffusers. Se estiver executando um modelo LLM, 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.