����λ�ã���ҳ > �����̳� > �̳� > TGI ��-LoRA: ����һ�Σ��㶨 30 ��ģ�͵���������

TGI ��-LoRA: ����һ�Σ��㶨 30 ��ģ�͵���������

��Դ������������|��ʱ�䣺2024-08-13 10:15:55 |���Ķ���55��|�� ��ǩ�� a T TG LOR �㶨 ���� �� |����������

���Ƿ������������ AI ģ���������ĸ����Ժ͸߳ɱ��� ��ô�� �������Բ���һ�ξ͸㶨 30 ��ģ�������������Σ� �ڵ���� ML �����У���Щϣ����ַ��������ݵļ�ֵ����֯�������ջ����һ����΢�������硱����������磬������֯�ṹ������ģ�ͣ�����ÿ��ģ�Ͷ�����ض���������˸߶��ػ������ǣ���

���Ƿ������������ AI ģ���������ĸ����Ժ͸߳ɱ��� ��ô�� �������Բ���һ�ξ͸㶨 30 ��ģ�������������Σ� �ڵ���� ML �����У���Щϣ����ַ��������ݵļ�ֵ����֯�������ջ����һ����΢�������硱����������磬������֯�ṹ������ģ�ͣ�����ÿ��ģ�Ͷ�����ض���������˸߶��ػ������ǣ���δ���Ϊÿ��ϸ��Ӧ�ò���ģ�����������鷳�ͳɱ��أ���-LoRA �����ṩ��һ����DZ���Ĵ𰸡�

����

����֯���ԣ�����΢���������ģ����������ģ�ԭ���ж���:

  • ���� - �� �㹻֤�� ����: ��Ŀ�������ϣ���С��ר��ģ�ͱ������ڽϴ��ͨ��ģ�͡�Predibase �Ľ�� [5] ����������ض������ mistralai/Mistral-7B-v0.1 ����ģ�ͽ��� LoRA ΢�����Ի�ñ� GPT-4 ���õ����ܡ�
  • ��Ӧ�� - Mistral �� Llama ��ģ�͵���;����㷺�������ѡ������֮һ��Ϊ����ģ�ͣ�Ȼ����� ������������ ΢��������ר��ģ�͡�����һ���ô��ǣ��㲻�ᱻij��ģ����������Ϊ��������ɻ����û���ģ�ͣ�Ȼ����������ݶ���һ������ģ�ͽ���΢�� (�Ժ����ϸ����)��
  • ������ - �Բ�ͬ���ñ£¬²ï¿½Í¬ï¿½ï¿½ï¿½Å¶Ó¿ï¿½ï¿½Ô¶ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ð²ï¿½Í¬ï¿½ï¿½Î¢ï¿½ï¿½ï¿½ï¿½ï¿½Ó¶ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½×¼ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ã¡ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½×¼ï¿½ï¿½Ä£ï¿½Í¸ï¿½ï¿½Â½ï¿½ï¿½à·½ï¿½æ±£ï¿½Ö¶ï¿½ï¿½ï¿½ï¿½Í²ï¿½ï¿½Ð¡ï¿½
  • ��˽ - ר��ģ���ṩ�˺ܴ������ԣ�ʹ�����ǿ��Ը�����˽Ҫ���ѵ�����ݽ��и��룬����Ҫ���������ݶ���¶�ɻ���ģ�͵�ѵ�����ݡ����⣬����ģ�͵ı�������������Ҫ��΢��ʹ���ڱ����豸�����е�Сģ��������ִ���ض�����

��֮��΢��ʹ��֯�ܹ��ͷ������ݵļ�ֵ��������ʹ������еġ��߶�רҵ��������ʱ���������Ʊ����Ϊ��Ҫ���������Ըı���Ϸ����

����ȥǰ����������ɶ�������еģ����������ģ�� (LLM) ��������˶෽�����ս�����𵥸�ģ�͵ijɱ��Ͳ����������Ѿ�������ͷ���ˣ�������˵ n ��ģ���ˡ�����ζ�ţ���Ȼ΢�������ã��������� LLM �IJ���ͷ����ø�������Ҳ��������ʵ��

��ν������Ҫ��Ҫ�������⣬��ʱ���Ӧʱ�����ˡ�TGI ����Ƴ����¹��� - ��-LoRA ���� (???)��

LoRA ����֪ʶ

LoRA �� �ͽ����� ����һ�ֶ�Ԥѵ����ģ�ͽ��и�Ч΢���ļ����������˼������������ѵ������ģ�ͣ�����ѵ��һС���ֳ�Ϊ�������IJ������Ϳ�ʹԤѵ����ģ����Ӧ�ض�������Щ�������Ĵ�С��Ԥѵ�� LLM ��ȣ�ͨ��������Լ 1% �Ĵ洢���ڴ濪�������ܴﵽ��ȫģ��΢����ģ���൱��Ч����

LoRA �����Ժô��ǣ���ͨ�������ڴ�����������΢���ɱ����������� �������������� ������ С���ݼ� ��Ч�����á�

TGI ¶à-LoRA: ²¿ÊðÒ»´Î£¬¸ã¶¨ 30 ¸öÄ£Ð͵ÄÍÆÀí·þÎñ
ͼ 1��LoRA ���

��ѵ�������У�LoRA �ᶳ��ԭģ��Ȩ�� W ����������С���� A �� B ����΢������ʹ��΢�����Ӹ�Ч��֪����һ�������ܱȽ���������ͼ 1 �� LoRA ģ�������Ĺ���ԭ���ˡ����Ǵ�Ԥѵ��ģ�� Wx �л�ȡ�������������ͽ������� BAx ��� [6] ��

��-LoRA ��������

�˽��� LoRA �ĵͽ�����Ļ���˼������ǿ��������о�һ�¶�-LoRA �����ˡ��������ܼ�: ����һ������Ԥѵ��ģ�ͺ�һЩ��������������Щ����΢���ض��� LoRA����-LoRA ������һ�ָ��ݴ�������̬ѡ������ LoRA �Ļ��ơ�

TGI ¶à-LoRA: ²¿ÊðÒ»´Î£¬¸ã¶¨ 30 ¸öÄ£Ð͵ÄÍÆÀí·þÎñ
ͼ 2����-LORA ���

ͼ 2 չʾ�����ֶ�̬·�ɵĹ���ԭ����ÿ���û����󶼰������� x �Լ��������Ӧ LoRA �� id (���dz�Ϊͬ���칹�û�����)��LoRA id ��Ϣʹ�� TGI ����ƾ��ѡ����ȷ�� LoRA ��������

��-LoRA ���������ǽ��貿��һ������ģ�͡��������� LoRA ��������С����������Լ��ض���������������õ����ڴ����⡣��ע�⣬�����ܼ��ض��ٸ�������ȡ������Ŀ��� GPU ��Դ�Լ��㲿���ģ�͡�����Ч��ʵ�����൱����һ�β�����֧���˶������΢����ģ�͡�

LoRA Ȩ�صĴ�С���Ⱥ����������IJ�ͬ����ͬ��������ͨ�����dz�С����߸����һ��ֱ��ӡ��: predibase/magicoder Ϊ 13.6MB������ mistralai/Mistral-7B-v0.1 �ߴ� (14.48GB) �� 1/1000����Զ��ԣ��� 30 �����������ص� RAM ��ֻ���� VRAM ���� 3%������ڴ����������˵���������⡣��ˣ����ǿ���һ�β�����ģ�͡�

���ʹ��

�ռ� LoRA Ȩ��

���ȣ�����Ҫѵ�� LoRA ģ�Ͳ�����������Ȩ�ء�������ڴ˴��ҵ� LoRA ΢����ص� ָ�� ����ע�⣬���㽫΢�����ģ�����͵� Hub ʱ��ֻ���������������������������ĺϲ�ģ�͡��� Hub ���� LoRA ������ʱ�����������ģ�Ϳ��ƶϳ�����ģ�Ͳ����䵥�����ء�����������֧�֣������������ǵ� ר��֧�ּƻ� ������Ϊ�ض����������Լ��� LoRA ʱ�������ļ�ֵ�Ż����֡�

�ʹ����Ŷ�

��ijЩ��֯���ԣ�Ϊ�Լ�������ѵ��һ�� LoRA ���ܱȽ����ѣ���Ϊ���ǿ���ȱ����Ӧ��רҵ֪ʶ��������Դ����ʹѡ���˻���ģ�Ͳ�׼���������ݣ����滹��Ҫ�������¼�����̽�����οռ䣬�ҵ����Ӳ����Դ����д���룬Ȼ������������������񣬼�ʹ���ھ���ḻ���Ŷ���˵��Ҳ����ν����ޡ�

AutoTrain �ɰ�������������һ�ż���AutoTrain ��һ���޴�����������ֻ�赥��������꼴��ѵ������ѧϰģ�͡������ṩ�˶���ʹ�� AutoTrain �ķ��������� ���ذ�װ �⣬���ǻ�֧��:

AutoTrain ���� Ӳ������ ������ ��ע
Hugging Face Space ���� GPU ������Ӳ�� �޴��� �������
DGX �� ��� 8xH100 GPU �޴��� �����˴�ģ��
Google Colab ���� T4 GPU �ʹ��� ����Сģ���Լ��������ģ��

����

������ Predibase �� LoRA Land Ϊ������Ҫʹ���������� LoRA ������:

  • predibase/customer_support �������� Gridspace-Stanford Harper Valley �������ݼ� ��΢�����ã���ǿ��׼ȷ�������Ӧ�����Կͷ�������������������ģ��������ʶ���������ͶԻ������������еı��֣������ڴٳɸ���Ч������ͬ���ĵĿͻ�֧�֡�
  • predibase/magicoder �������� ise-uiuc/Magicoder-OSS-Instruct-75K ��΢�����ã�����һ���ϳɵĴ���ָ�����ݼ���

TGI

TGI �ĵ� �����кܶ������β��� TGI ��������Ϣ��������ǽ�����һЩҪ��:

  1. ʹ�� v2.1.1 ����°汾�� TGI
  2. ��������: mistralai/Mistral-7B-v0.1
  3. �ڲ����ڼ䣬���� LORA_ADAPTERS ��������
  • ʾ��: LORA_ADAPTERS=predibase/customer_support,predibase/magicoder
model=mistralai/Mistral-7B-v0.1
# share a volume with the Docker container to avoid downloading weights every run
volume=$PWD/data

docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data \
    ghcr.io/huggingface/text-generation-inference:2.1.1 \
    --model-id $model \
    --lora-adapters=predibase/customer_support,predibase/magicoder

�����ն� GUI

�����ն� ֧�ֶ��� GPU ������ AI ���ٿ� ��ֻ�������¼��ɿ� AWS��GCP �Լ� Azure ����ʹ�� GUI �����൱���ס�����Ĭ��ʹ�� TGI �����ı����� (��Ҳ���� ѡ�� ʹ���Լ��� docker ����)��

Ҫ�������ն���ʹ�ö�-LoRA ������ֻ����ת�� ����̨ ��Ȼ��:

  1. ѡ�����ģ��: mistralai/Mistral-7B-v0.1
  2. ѡ�� �� | ���� | Ӳ��
  • ����: AWS | us-east-1 | Nvidia L4
  1. ѡ��߼�����
  • ��Ӧ�ÿ����Ѿ�ѡ���� �ı�����
  • �ɸ����Լ��������������
  1. �ڻ������������� LORA_ADAPTERS=predibase/customer_support,predibase/magicoder
  2. ��� �����˵� ��

��ע�⣬����ֻ���������ã�����Ը�����Ҫ���������ý������á�

TGI ¶à-LoRA: ²¿ÊðÒ»´Î£¬¸ã¶¨ 30 ¸öÄ£Ð͵ÄÍÆÀí·þÎñ
ͼ 3����-LoRA �����ն�
TGI ¶à-LoRA: ²¿ÊðÒ»´Î£¬¸ã¶¨ 30 ¸öÄ£Ð͵ÄÍÆÀí·þÎñ
ͼ 4����-LoRA �����ն� 2

�����ն˴���

��Щ�˿����е� ������ ����˲���ʹ����꣬���ǶԴ˲������� [?]����ʱ�����ü���Ҳ��ͨ�������Զ�ִ�������������dz��򵥡�

from huggingface_hub import create_inference_endpoint

# Custom Docker image details
custom_image = {
    "health_route": "/health",
    "url": "ghcr.io/huggingface/text-generation-inference:2.1.1", # This is the min version
    "env": {
        "LORA_ADAPTERS": "predibase/customer_support,predibase/magicoder", # Add adapters here
        "MAX_BATCH_PREFILL_TOKENS": "2048", # Set according to your needs
        "MAX_INPUT_LENGTH": "1024", # Set according to your needs
        "MAX_TOTAL_TOKENS": "1512", # Set according to your needs
        "MODEL_ID": "/repository"
    }
}

# Creating the inference endpoint
endpoint = create_inference_endpoint(
    name="mistral-7b-multi-lora",
    repository="mistralai/Mistral-7B-v0.1",
    framework="pytorch",
    accelerator="gpu",
    instance_size="x1",
    instance_type="nvidia-l4",
    region="us-east-1",
    vendor="aws",
    min_replica=1,
    max_replica=1,
    task="text-generation",
    custom_image=custom_image,
)
endpoint.wait()

print("Your model is ready to use!")

��������ô�Լ��Ҫ 3 �� 40 �롣��ע�⣬����ģ�Ϳ�����Ҫ������ʱ�䡣�������������ʱ�������⣬���� GitHub ���ύ ���� ��

ʹ��

��ʹ�������ն�ʱ������Ҫָ�� adapter_id �����������һ�� cURL ʾ��:

curl 127.0.0.1:3000/generate \
    -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "inputs": "Hello who are you?",
  "parameters": {
    "max_new_tokens": 40,
    "adapter_id": "predibase/customer_support"
  }
}'

���ﻹ��һ��ʹ�� InferenceClient ��ʾ������ʾ������ Hugging Face Hub Python �� ����ȷ�����õ��� huggingface-hub>=0.24.0 ���ڱ�Ҫ����£��㻹�� ��¼ hub��

from huggingface_hub import InferenceClient

tgi_deployment = "127.0.0.1:3000"
client = InferenceClient(tgi_deployment)
response = client.text_generation(
    prompt="Hello who are you?",
    max_new_tokens=40,
    adapter_id='predibase/customer_support',
)

ʵ�ʿ���

�ɱ�

���� ���� �����۵ģ����Dz����ǵ�һ�����з�ġ�������Ķ�һ�� LoRAX ������Ŷ� Predibase ��������ƪ��ɫ ���� ����Ϊ����������Ҫ�������ǵĹ�����

TGI ¶à-LoRA: ²¿ÊðÒ»´Î£¬¸ã¶¨ 30 ¸öÄ£Ð͵ÄÍÆÀí·þÎñ
ͼ 5����-LoRA �ɱ� ������ TGI ��Ӣΰ�� L4 �ϲ����� mistralai/Mistral-7B-v0.1 ����ģ�ͣ��� �����ն� �ɱ� Ϊ 0.8 ��Ԫ/Сʱ��ÿ������ 75 ������ƽ��ÿ�������� 450 �������Ԫ��234 �������Ԫ��������Ӧ���õ� GPT3.5 Turbo �ɱ������˶Աȡ�

��-LoRA �����һ��ô��ǣ� ����Ϊ���ģ�ͽ��ж�β��� �����Ҫ���˵öࡣ����ֱ���������Ϊ��ģ�Ͳ���Ҫ��������Ȩ�أ�����������СС������������ͼ 5 ��ʾ����ʹ�� TGI ��-LoRA ʱ����ʹ���Ӹ���ģ�ͣ�ÿ����Ԫ�ijɱ�Ҳ����ͬ�ġ��������ʹ�ö�-LoRA��ÿ�ಿ��һ��΢��ģ�ͣ�TGI �ijɱ��ͻ���֮�������ӡ�

ʹ��ģʽ

TGI ¶à-LoRA: ²¿ÊðÒ»´Î£¬¸ã¶¨ 30 ¸öÄ£Ð͵ÄÍÆÀí·þÎñ
ͼ 6����-LoRA ����ģʽ

��������ģ��ʱ��һ����ʵ����ս��ÿ��ģ�͵�ʹ��ģʽ�кܴ����: ijЩģ�͵�ʹ���ʿ��ܽϵ�; ��Щģ�͵�ʹ��ģʽ�������󷢵ģ���Щ�����Ǹ�Ƶ�ġ���ʹ����չ��÷dz����ѣ������ǵ�ÿ��ģ���໥���������ʱ�򡣵�������һ�� GPU ʱ������ֺܶࡰ���롱������������������ۻ������յ��¾޴���˷ѡ�����������£�����Ҫ����޶ȵ����ÿ�� GPU �������ʣ�������ʹ���κζ�����Դ������Ҫȷ�����㹻�� GPU��ͬʱ��֪��Щ GPU �����ã�̫���ˣ�

��ʹ�ö�-LoRA ����ʱ�������ƽ�ȶ��ˡ���ͼ 6�����ǿ��Կ�����-LoRA ����ģʽ�dz�ƽ�ȣ���������ijЩ LoRA ������ʹ��ģʽ�����ȶ���ͨ�����϶�� LoRA������ʹ��ģʽ���ƽ�ȣ�����չ������ס���ע�⣬���Ͻ��ṩ��һ�����ӣ����Լ��Ĺ������ص�ʹ��ģʽ����Լ���-LoRA ����ܰ���æ����Ҫ���Լ�������������ǵ�Ŀ���ǣ����迼�� 1 ��ģ�͵���չ�������迼�� 30 ��ģ�͵���չ��

��һ������ģ��

AI ��չ�������죬��ʵ����Ӧ�����Ӧ�ԣ��������ѡ����һ������µ�ģ����Ϊ����ģ�ͣ�Ӧ����ô�죿��Ȼ���ǵ�����ʹ���� mistralai/Mistral-7B-v0.1 ��Ϊ����ģ�ͣ�����ʵ������ѡ���ģ��� Mistral v0.3 ֧�� �������� ; �����ỹ������ϵ�е�ģ���ˣ��� Llama 3���ܵ���˵�������ּ�����Ч�����ܸ��õ��»���ģ�Ͳ��ϳ��֡�

�����õ��ģ�ֻҪ���� �㹻������ ��������ģ�ͣ�����ѵ�� LoRA ��ԱȽ����ף�ѵ��Ҳ��ԱȽϱ��ˣ���ʵ�ϣ� Predibase ���� ѵ��һ�� LoRA ����Լ 8.00 ��Ԫ��ʹ���ִ���ܺͳ��ù���ʵ������Ҫ�Ĵ���Ķ�Ҳ���١�������������:

  • ����ģ��ѵ���� notebook / ����
  • �����ݼ����а汾����
  • ��¼����ʹ�õ�ÿ������
  • ����ģ�͡������ø��·���

�ܽ�

��-LoRA ������ AI ģ�Ͳ���ĸ����Է�����Ϊ����͹������ר��ģ�Ͳ���ijɱ��͸����������ṩ�˽��������ͨ�����õ�һ����ģ�Ͳ���̬Ӧ��΢������������������������֯����Ӫ������ͬʱ����������ǿ����������ܡ� ���Ǻ��� AI �ܼ��Ǵ󵨲��ɸá�����ģ�� + ��-LoRA�� Ӧ�÷�ʽ ���Ӷ�ӵ����������ļ��Ժͳɱ���Լ�������ö�-LoRA ��Ϊ�� AI ս�ԵĻ�ʯ��ȷ�������֯�ڿ��ٷ�չ�ļ�������ʼ�ձ������ȵ�λ��

��л

ʵ�ֶ�-LoRA ������ܷdz����֣��������� punica-ai �� lorax �Ŷӿ������Ż������ӺͿ�ܣ��ù����Ѿ��ܸ�Ч�ˡ�TGI ������Щ�Ż���Ϊ��� LoRA ģ���ṩ���ٸ�Ч��������

�ر��л Punica��LoRAX �� S-LoRA �Ŷ��ڶ�-LoRA �����������ij�ɫ�����ŵĹ�����

�����

  • [1] : Dan Biderman, Jose Gonzalez Ortiz, Jacob Portes, Mansheej Paul, Philip Greengard, Connor Jennings, Daniel King, Sam Havens, Vitaliy Chiley, Jonathan Frankle, Cody Blakeney, John P. Cunningham, LoRA Learns Less and Forgets Less , 2024
  • [2] : Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen, LoRA: Low-Rank Adaptation of Large Language Models , 2021
  • [3] : Sourab Mangrulkar, Sayak Paul, PEFT: Parameter-Efficient Fine-Tuning of Billion-Scale Models on Low-Resource Hardware , 2023
  • [4] : Travis Addair, Geoffrey Angus, Magdy Saleh, Wael Abid, LoRAX: The Open Source Framework for Serving 100s of Fine-Tuned LLMs in Production , 2023
  • [5] : Timothy Wang, Justin Zhao, Will Van Eaton, LoRA Land: Fine-Tuned Open-Source LLMs that Outperform GPT-4 , 2024
  • [6] : Punica: Serving multiple LoRA finetuned LLM as one: https://github.com/punica-ai/punica

Ӣ��ԭ��: https://hf.co/blog/multi-lora-serving

ԭ������: Derek Thomas��Diego Maniloff��David Holtz

����: Matrix Yao (Ҧΰ��)��Ӣ�ض����ѧϰ����ʦ����������Ϊ transformer-family ģ���ڸ�ģ̬�����ϵ�Ӧ�ü����ģģ�͵�ѵ��������

С���Ƽ��Ķ�

�������������Ľ�Ϊ������Ϣ����������������ͬ���޹۵��֤ʵ��������

a 1.0
a 1.0
���ͣ���������������Ӫ״̬����ʽ��Ӫ�������ԣ����� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

��alittletotheleft������������һ��ܻ�ӭ����������������Ϸ����ҵ������Ƕ��ճ������еĸ���������

�����Ƶ����

����

ͬ������

����

ɨ��ά�����������ֻ��汾��

ɨ��ά����������΢�Ź��ںţ�

��վ�������������������ϴ��������ַ���İ�Ȩ���뷢�ʼ�[email protected]

��ICP��2022002427��-10 �湫��������43070202000427��© 2013~2025 haote.com ������