Integration von LoRA#
Derzeit kann Xinference beim Starten von LLM- und image-Modellen ein LoRA-Feinabstimmungsmodell mitführen, um das Basismodell zu unterstützen.
Verwendungsweise#
Starten#
Im Gegensatz zu den integrierten Modellen verwaltet Xinference derzeit keine LoRA-Modelle. Benutzer müssen zunächst das entsprechende LoRA-Modell herunterladen und dann den Speicherpfad des Modells an Xinference bereitstellen.
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
)
Anwendung#
Für große Sprachmodelle wird bei der Verwendung eine der LoRAs angegeben. Konkret wird der Parameter lora_name in den generate_config-Parametern konfiguriert. lora_name entspricht Ihrer Konfiguration während des Launch-Prozesses.
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>"}
)
Hinweise#
Die oben genannten Optionen
image_lora_load_kwargsundimage_lora_fuse_kwargsgelten nur für dasimage-Modell. Sie entsprechen den zusätzlichen Parametern in den Schnittstellenload_lora_weightsundfuse_loraderdiffusers-Bibliothek. Wenn dasLLM-Modell gestartet wird, müssen diese Optionen nicht gesetzt werden.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.
Für das
LLM-Chatmodell werden derzeit nur LoRA-Modelle unterstützt, die nach dem Feintuning die Promptvorlage des ursprünglichen Basismodells nicht verändern.Bei Verwendung einer GPU befinden sich das LoRA-Modell und sein Basismodell auf demselben Gerät und beeinflussen keine anderen Modelle.