Zum Hauptinhalt springen

Llama2 - Huggingface Tutorial

Huggingface ist eine Open-Source-Plattform zur Bereitstellung von Machine-Learning-Modellen.

Llama2 mit Huggingface Inference Endpoints aufrufen​

LiteLLM erleichtert den Aufruf Ihrer öffentlichen, privaten oder der Standard-Huggingface-Endpunkte.

In diesem Fall versuchen wir, 3 Modelle aufzurufen

ModellArt des Endpunkts
deepset/deberta-v3-large-squad2Standard Huggingface Endpoint
meta-llama/Llama-2-7b-hfÖffentlicher Endpoint
meta-llama/Llama-2-7b-chat-hfPrivater Endpoint

Fall 1: Standard-Huggingface-Endpoint aufrufen​

Hier ist das vollständige Beispiel

from litellm import completion 

model = "deepset/deberta-v3-large-squad2"
messages = [{"role": "user", "content": "Hey, how's it going?"}] # LiteLLM follows the OpenAI format

### CALLING ENDPOINT
completion(model=model, messages=messages, custom_llm_provider="huggingface")

Was passiert?

  • model: Dies ist der Name des bereitgestellten Modells auf Huggingface
  • messages: Dies sind die Eingaben. Wir akzeptieren das OpenAI-Chat-Format. Für Huggingface durchlaufen wir standardmäßig die Liste und fügen die Nachricht hinzuzum Prompt. Relevanter Codezum Prompt. Relevanter Code
  • custom_llm_provider: Optionaler Parameter. Dies ist ein optionales Flag, das nur für Azure, Replicate, Huggingface und Together-ai (Plattformen, auf denen Sie Ihre eigenen Modelle bereitstellen) benötigt wird. Dies ermöglicht LiteLLM, den richtigen Anbieter für Ihr Modell zu finden.

Fall 2: Llama2 öffentlichen Huggingface-Endpoint aufrufen​

Wir haben meta-llama/Llama-2-7b-hf hinter einem öffentlichen Endpunkt bereitgestellt – https://ag3dkq4zui5nu8g3.us-east-1.aws.endpoints.huggingface.cloud.

Probieren wir es aus

from litellm import completion 

model = "meta-llama/Llama-2-7b-hf"
messages = [{"role": "user", "content": "Hey, how's it going?"}] # LiteLLM follows the OpenAI format
api_base = "https://ag3dkq4zui5nu8g3.us-east-1.aws.endpoints.huggingface.cloud"

### CALLING ENDPOINT
completion(model=model, messages=messages, custom_llm_provider="huggingface", api_base=api_base)

Was passiert?

Fall 3: Llama2 privaten Huggingface-Endpoint aufrufen​

Der einzige Unterschied zu dem öffentlichen Endpunkt besteht darin, dass Sie dafür einen api_key benötigen.

Bei LiteLLM gibt es 3 Möglichkeiten, einen api_key zu übergeben.

Entweder über Umgebungsvariablen, indem Sie ihn als Paketvariable festlegen oder beim Aufruf von completion().

Festlegen über Umgebungsvariablen
Hier ist die eine Codezeile, die Sie hinzufügen müssen

os.environ["HF_TOKEN"] = "..."

Hier ist der vollständige Code

from litellm import completion 

os.environ["HF_TOKEN"] = "..."

model = "meta-llama/Llama-2-7b-hf"
messages = [{"role": "user", "content": "Hey, how's it going?"}] # LiteLLM follows the OpenAI format
api_base = "https://ag3dkq4zui5nu8g3.us-east-1.aws.endpoints.huggingface.cloud"

### CALLING ENDPOINT
completion(model=model, messages=messages, custom_llm_provider="huggingface", api_base=api_base)

Festlegen als Paketvariable
Hier ist die eine Codezeile, die Sie hinzufügen müssen

litellm.huggingface_key = "..."

Hier ist der vollständige Code

import litellm
from litellm import completion

litellm.huggingface_key = "..."

model = "meta-llama/Llama-2-7b-hf"
messages = [{"role": "user", "content": "Hey, how's it going?"}] # LiteLLM follows the OpenAI format
api_base = "https://ag3dkq4zui5nu8g3.us-east-1.aws.endpoints.huggingface.cloud"

### CALLING ENDPOINT
completion(model=model, messages=messages, custom_llm_provider="huggingface", api_base=api_base)

Übergeben während des completion-Aufrufs

completion(..., api_key="...")

Hier ist der vollständige Code

from litellm import completion 

model = "meta-llama/Llama-2-7b-hf"
messages = [{"role": "user", "content": "Hey, how's it going?"}] # LiteLLM follows the OpenAI format
api_base = "https://ag3dkq4zui5nu8g3.us-east-1.aws.endpoints.huggingface.cloud"

### CALLING ENDPOINT
completion(model=model, messages=messages, custom_llm_provider="huggingface", api_base=api_base, api_key="...")