Zum Hauptinhalt springen

AWS Sagemaker

LiteLLM unterstützt alle Sagemaker Huggingface Jumpstart Modelle

Tipp

Wir unterstützen ALLE Sagemaker-Modelle, setzen Sie einfach model=sagemaker/<beliebiges-Modell-auf-sagemaker> als Präfix, wenn Sie LiteLLM-Anfragen senden

API SCHLÜSSEL​

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

Verwendung​

import os 
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/<your-endpoint-name>",
messages=[{ "content": "Hello, how are you?","role": "user"}],
temperature=0.2,
max_tokens=80
)

Verwendung - Streaming​

Sagemaker unterstützt derzeit kein Streaming - LiteLLM simuliert Streaming, indem es Teile der Antwortzeichenfolge zurückgibt

import os 
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b",
messages=[{ "content": "Hello, how are you?","role": "user"}],
temperature=0.2,
max_tokens=80,
stream=True,
)
for chunk in response:
print(chunk)

LiteLLM Proxy Verwendung​

Hier erfahren Sie, wie Sie Sagemaker mit dem LiteLLM Proxy Server aufrufen

1. config.yaml einrichten​

model_list:
- model_name: jumpstart-model
litellm_params:
model: sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614
aws_access_key_id: os.environ/CUSTOM_AWS_ACCESS_KEY_ID
aws_secret_access_key: os.environ/CUSTOM_AWS_SECRET_ACCESS_KEY
aws_region_name: os.environ/CUSTOM_AWS_REGION_NAME

Alle möglichen Authentifizierungsparameter

aws_access_key_id: Optional[str],
aws_secret_access_key: Optional[str],
aws_session_token: Optional[str],
aws_region_name: Optional[str],
aws_session_name: Optional[str],
aws_profile_name: Optional[str],
aws_role_name: Optional[str],
aws_web_identity_token: Optional[str],

2. Proxy starten​

litellm --config /path/to/config.yaml

3. Testen​

curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data ' {
"model": "jumpstart-model",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
]
}
'

Temperatur, Top p usw. einstellen​

import os
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614",
messages=[{ "content": "Hello, how are you?","role": "user"}],
temperature=0.7,
top_p=1
)

Temperatur=0 für Sagemaker zulassen​

Standardmäßig, wenn temperature=0 in Anfragen an LiteLLM gesendet wird, rundet LiteLLM auf temperature=0.1 auf, da Sagemaker die meisten Anfragen fehlschlägt, wenn temperature=0 ist

Wenn Sie temperature=0 für Ihr Modell senden möchten, erfahren Sie hier, wie Sie es einrichten (Da Sagemaker jede Art von Modell hosten kann, erlauben einige Modelle null Temperatur)

import os
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614",
messages=[{ "content": "Hello, how are you?","role": "user"}],
temperature=0,
aws_sagemaker_allow_zero_temp=True,
)

Anbieterspezifische Parameter übergeben​

Wenn Sie einen nicht-OpenAI-Parameter an LiteLLM übergeben, gehen wir davon aus, dass er anbieterspezifisch ist und senden ihn als kwarg im Anfragekörper. Mehr erfahren

import os
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614",
messages=[{ "content": "Hello, how are you?","role": "user"}],
top_k=1 # 👈 PROVIDER-SPECIFIC PARAM
)

Inferenzkomponentenname übergeben​

Wenn Sie mehrere Modelle an einem Endpunkt haben, müssen Sie die einzelnen Modellnamen angeben, tun Sie dies über model_id.

import os 
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/<your-endpoint-name>",
model_id="<your-model-name",
messages=[{ "content": "Hello, how are you?","role": "user"}],
temperature=0.2,
max_tokens=80
)

Anmeldeinformationen als Parameter übergeben - Completion()​

AWS-Anmeldeinformationen als Parameter an litellm.completion übergeben

import os 
from litellm import completion

response = completion(
model="sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b",
messages=[{ "content": "Hello, how are you?","role": "user"}],
aws_access_key_id="",
aws_secret_access_key="",
aws_region_name="",
)

Prompt-Vorlagen anwenden​

Um die richtige Prompt-Vorlage für Ihre Sagemaker-Bereitstellung anzuwenden, übergeben Sie auch den HF-Modellnamen.

import os 
from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b",
messages=messages,
temperature=0.2,
max_tokens=80,
hf_model_name="meta-llama/Llama-2-7b",
)

Sie können auch Ihre eigene benutzerdefinierte Prompt-Vorlage übergeben

Sagemaker Messages API​

Verwenden Sie die Route sagemaker_chat/*, um zur Sagemaker Messages API zu routen

model: sagemaker_chat/<your-endpoint-name>
import os
import litellm
from litellm import completion

litellm.set_verbose = True # 👈 SEE RAW REQUEST

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = completion(
model="sagemaker_chat/<your-endpoint-name>",
messages=[{ "content": "Hello, how are you?","role": "user"}],
temperature=0.2,
max_tokens=80
)

Completion-Modelle​

Tipp

Wir unterstützen ALLE Sagemaker-Modelle, setzen Sie einfach model=sagemaker/<beliebiges-Modell-auf-sagemaker> als Präfix, wenn Sie LiteLLM-Anfragen senden

Hier ist ein Beispiel für die Verwendung eines Sagemaker-Modells mit LiteLLM

ModellnameFunktionsaufruf
Ihr benutzerdefiniertes Huggingface-Modellcompletion(model='sagemaker/<Ihr-Bereitstellungsname>', messages=messages)
Meta Llama 2 7Bcompletion(model='sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b', messages=messages)
Meta Llama 2 7B (Chat/Fine-tuned)completion(model='sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b-f', messages=messages)
Meta Llama 2 13Bcompletion(model='sagemaker/jumpstart-dft-meta-textgeneration-llama-2-13b', messages=messages)
Meta Llama 2 13B (Chat/Fine-tuned)completion(model='sagemaker/jumpstart-dft-meta-textgeneration-llama-2-13b-f', messages=messages)
Meta Llama 2 70Bcompletion(model='sagemaker/jumpstart-dft-meta-textgeneration-llama-2-70b', messages=messages)
Meta Llama 2 70B (Chat/Fine-tuned)completion(model='sagemaker/jumpstart-dft-meta-textgeneration-llama-2-70b-b-f', messages=messages)

Embedding Modelle​

LiteLLM unterstützt alle Sagemaker Jumpstart Huggingface Embedding-Modelle. Hier erfahren Sie, wie Sie es aufrufen

from litellm import completion

os.environ["AWS_ACCESS_KEY_ID"] = ""
os.environ["AWS_SECRET_ACCESS_KEY"] = ""
os.environ["AWS_REGION_NAME"] = ""

response = litellm.embedding(model="sagemaker/<your-deployment-name>", input=["good morning from litellm", "this is another item"])
print(f"response: {response}")