AWS Sagemaker
LiteLLM unterstützt alle Sagemaker Huggingface Jumpstart Modelle
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-Anfrage
- OpenAI v1.0.0+
- Langchain
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"
}
]
}
'
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)
response = client.chat.completions.create(model="jumpstart-model", messages = [
{
"role": "user",
"content": "this is a test request, write a short poem"
}
])
print(response)
from langchain.chat_models import ChatOpenAI
from langchain.prompts.chat import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
SystemMessagePromptTemplate,
)
from langchain.schema import HumanMessage, SystemMessage
chat = ChatOpenAI(
openai_api_base="http://0.0.0.0:4000", # set openai_api_base to the LiteLLM Proxy
model = "jumpstart-model",
temperature=0.1
)
messages = [
SystemMessage(
content="You are a helpful assistant that im using to make a test request to."
),
HumanMessage(
content="test from litellm. tell me why it's amazing in 1 sentence"
),
]
response = chat(messages)
print(response)
Temperatur, Top p usw. einstellen​
- SDK
- PROXY
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
)
Auf YAML einstellen
model_list:
- model_name: jumpstart-model
litellm_params:
model: sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614
temperature: <your-temp>
top_p: <your-top-p>
Auf Anfrage einstellen
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)
# request sent to model set on litellm proxy, `litellm --model`
response = client.chat.completions.create(model="jumpstart-model", messages = [
{
"role": "user",
"content": "this is a test request, write a short poem"
}
],
temperature=0.7,
top_p=1
)
print(response)
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)
- SDK
- PROXY
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,
)
aws_sagemaker_allow_zero_temp auf YAML setzen
model_list:
- model_name: jumpstart-model
litellm_params:
model: sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614
aws_sagemaker_allow_zero_temp: true
temperature=0 auf Anfrage setzen
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)
# request sent to model set on litellm proxy, `litellm --model`
response = client.chat.completions.create(model="jumpstart-model", messages = [
{
"role": "user",
"content": "this is a test request, write a short poem"
}
],
temperature=0,
)
print(response)
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
- SDK
- PROXY
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
)
Auf YAML einstellen
model_list:
- model_name: jumpstart-model
litellm_params:
model: sagemaker/jumpstart-dft-hf-textgeneration1-mp-20240815-185614
top_k: 1 # 👈 PROVIDER-SPECIFIC PARAM
Auf Anfrage einstellen
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)
# request sent to model set on litellm proxy, `litellm --model`
response = client.chat.completions.create(model="jumpstart-model", messages = [
{
"role": "user",
"content": "this is a test request, write a short poem"
}
],
temperature=0.7,
extra_body={
top_k=1 # 👈 PROVIDER-SPECIFIC PARAM
}
)
print(response)
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>
- SDK
- PROXY
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
)
1. config.yaml einrichten​
model_list:
- model_name: "sagemaker-model"
litellm_params:
model: "sagemaker_chat/jumpstart-dft-hf-textgeneration1-mp-20240815-185614"
aws_access_key_id: os.environ/AWS_ACCESS_KEY_ID
aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY
aws_region_name: os.environ/AWS_REGION_NAME
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": "sagemaker-model",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
]
}
'
👉 Beispiele für OpenAI SDK/Langchain/Llamaindex/etc. ansehen
Completion-Modelle​
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
| Modellname | Funktionsaufruf |
|---|---|
| Ihr benutzerdefiniertes Huggingface-Modell | completion(model='sagemaker/<Ihr-Bereitstellungsname>', messages=messages) |
| Meta Llama 2 7B | completion(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 13B | completion(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 70B | completion(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}")