Sagify menyediakan antarmuka yang disederhanakan untuk mengelola alur kerja pembelajaran mesin di AWS Sagemaker, membantu Anda fokus membangun model ML daripada infrastruktur. Arsitektur modularnya mencakup modul gateway LLM untuk menyediakan antarmuka terpadu untuk memanfaatkan model bahasa besar open source dan hak milik. Gateway LLM memberikan akses ke berbagai LLM melalui API sederhana, memungkinkan Anda dengan mudah memasukkannya ke dalam alur kerja Anda.
Untuk referensi terperinci untuk menyanyikan, silakan buka: baca dokumen
Sagify membutuhkan yang berikut:
Di baris perintah:
pip install sagify
Pastikan untuk Mengkonfigurasi Akun AWS Anda dengan Mengikuti Instruksi di Bagian Konfigurasi Akun AWS
Akhirnya, jalankan perintah berikut:
sagify cloud foundation-model-deploy --model-id model-txt2img-stabilityai-stable-diffusion-v2-1-base --model-version 1. * -n 1 -e ml.p3.2xlarge --aws-region us-east-1 --aws-profile sagemaker-devAnda dapat mengubah nilai untuk tipe EC2 (-e), wilayah AWS dan profil AWS dengan yang pilihan Anda.
Setelah model difusi stabil digunakan, Anda dapat menggunakan cuplikan kode yang dihasilkan untuk menanyakannya. Menikmati!
Model berikut ditawarkan untuk penyelesaian obrolan:
| Nama model | Url |
|---|---|
| GPT-4 | https://platform.openai.com/docs/models/gpt-4-and-gpt-4-urbo |
| GPT-4-32K | https://platform.openai.com/docs/models/gpt-4-and-gpt-4-urbo |
| GPT-3.5-turbo | https://platform.openai.com/docs/models/gpt-4-and-gpt-4-urbo |
Untuk pembuatan gambar, Anda dapat mengandalkan model berikut:
| Nama model | Url |
|---|---|
| Dall-E-3 | https://platform.openai.com/docs/models/dall-e |
| Dall-e-2 | https://platform.openai.com/docs/models/dall-e |
Dan untuk embeddings:
| Nama model | Url |
|---|---|
| Text-Embedding-3-Large | https://platform.openai.com/docs/models/embeddings |
| Text-Embedding-3-Small | https://platform.openai.com/docs/models/embeddings |
| Text-Embedding-DAGA-002 | https://platform.openai.com/docs/models/embeddings |
Semua daftar model yang didukung ini di OpenAI dapat diambil dengan menjalankan perintah sagify llm models --all --provider openai . Jika Anda hanya ingin fokus pada model penyelesaian obrolan, maka jalankan sagify llm models --chat-completions --provider openai . Untuk kreasi gambar dan embeddings, sagify llm models --image-creations --provider openai dan sagify llm models --embeddings --provider openai , masing-masing.
Model open-source berikut ditawarkan untuk penyelesaian obrolan:
| Nama model | Url |
|---|---|
| llama-2-7b | https://huggingface.co/meta-llama/llama-2-7b |
| llama-2-13b | https://huggingface.co/meta-llama/llama-2-13b |
| llama-2-70b | https://huggingface.co/meta-llama/llama-2-70b |
Untuk pembuatan gambar, Anda dapat mengandalkan model open-source berikut:
| Nama model | Url |
|---|---|
| stabilityai-stable-difusi-v2 | https://huggingface.co/stabilityai/stable-diffusion-2 |
| stabilityai-stable-difusi-v2-1-base | https://huggingface.co/stabilityai/stable-diffusion-2-1-base |
| stabilityai-stable-difusi-v2-fp16 | https://huggingface.co/stabilityai/stable-diffusion-2/tree/fp16 |
Dan untuk embeddings:
| Nama model | Url |
|---|---|
| BGE-Large-en | https://huggingface.co/baai/bge-large-en |
| BGE-BASE-EN | https://huggingface.co/baai/bge-base-en |
| GTE-Large | https://huggingface.co/thenlper/gte-large |
| GTE-base | https://huggingface.co/thenlper/gte-base |
| E5-Large-V2 | https://huggingface.co/intfloat/e5-large-v2 |
| BGE-Small-en | https://huggingface.co/baai/bge-small-en |
| E5-base-V2 | https://huggingface.co/intfloat/e5-base-v2 |
| Multilingual-E5-Large | https://huggingface.co/intfloat/multilingual-e5-large |
| E5-Large | https://huggingface.co/intfloat/e5-large |
| GTE-Small | https://huggingface.co/thenlper/gte-small |
| E5-base | https://huggingface.co/intfloat/e5-base |
| E5-Small-V2 | https://huggingface.co/intfloat/e5-small-v2 |
| Multilingual-E5-Base | https://huggingface.co/intfloat/multilingual-e5-base |
| All-Minilm-L6-V2 | https://huggingface.co/sentence-transformers/all-minilm-l6-v2 |
Semua daftar model open-source yang didukung ini didukung pada AWS Sagemaker dan dapat diambil dengan menjalankan perintah Command sagify llm models --all --provider sagemaker . Jika Anda hanya ingin fokus pada model penyelesaian obrolan, maka jalankan sagify llm models --chat-completions --provider sagemaker . Untuk kreasi gambar dan embeddings, sagify llm models --image-creations --provider sagemaker dan sagify llm models --embeddings --provider sagemaker , masing-masing.
Anda perlu menentukan variabel env berikut sebelum Anda memulai server LLM Gateway:
OPENAI_API_KEY : Kunci API OpenAI Anda. Contoh: export OPENAI_API_KEY=...OPENAI_CHAT_COMPLETIONS_MODEL : Seharusnya memiliki nilai salah satu di sini atau di sini.OPENAI_EMBEDDINGS_MODEL : Seharusnya memiliki nilai salah satu di sini.OPENAI_IMAGE_CREATION_MODEL : Seharusnya memiliki nilai salah satu di sini. Langkah pertama adalah menggunakan model LLM. Anda dapat memilih untuk menggunakan semua layanan backend (penyelesaian obrolan, kreasi gambar, embeddings) atau beberapa di antaranya.
Jika Anda ingin menggunakan semuanya, maka jalankan sagify llm start --all . Perintah ini akan menggunakan semua layanan backend (penyelesaian obrolan, kreasi gambar, embeddings) dengan konfigurasi berikut:
{
"chat_completions" : {
"model" : " llama-2-7b " ,
"instance_type" : " ml.g5.2xlarge " ,
"num_instances" : 1 ,
},
"image_creations" : {
"model" : " stabilityai-stable-diffusion-v2-1-base " ,
"instance_type" : " ml.p3.2xlarge " ,
"num_instances" : 1 ,
},
"embeddings" : {
"model" : " gte-small " ,
"instance_type" : " ml.g5.2xlarge " ,
"num_instances" : 1 ,
},
} Anda dapat mengubah konfigurasi ini dengan menyuplai file konfigurasi Anda sendiri, maka Anda dapat menjalankan sagify llm start -all --config YOUR_CONFIG_FILE.json .
Dibutuhkan 15 hingga 30 menit untuk menggunakan semua layanan backend sebagai titik akhir Sagemaker.
Nama model yang digunakan, yang merupakan nama titik akhir Sagemaker, dicetak dan disimpan dalam file tersembunyi .sagify_llm_infra.json . Anda juga dapat mengaksesnya dari konsol web AWS Sagemaker.
Setelah Anda mengatur platform backend Anda, Anda dapat menggunakan Gateway Fastapi LLM secara lokal.
Jika menggunakan platform AWS Sagemaker, Anda perlu menentukan variabel env berikut sebelum Anda memulai server LLM Gateway:
AWS_ACCESS_KEY_ID : Ini bisa sama dengan yang Anda gunakan secara lokal untuk Sagify. Seharusnya memiliki akses ke Sagemaker dan S3. Contoh: export AWS_ACCESS_KEY_ID=...AWS_SECRET_ACCESS_KEY : Ini bisa sama dengan yang Anda gunakan secara lokal untuk menyiksa. Seharusnya memiliki akses ke Sagemaker dan S3. Contoh: export AWS_ACCESS_KEY_ID=...AWS_REGION_NAME : Wilayah AWS di mana LLM Backend Services (Sagemaker Endpoints) digunakan.S3_BUCKET_NAME : S3 Nama Bucket Di mana gambar yang dibuat oleh Layanan Backend Pembuatan Gambar disimpan.IMAGE_URL_TTL_IN_SECONDS : TTL dalam detik URL sementara ke gambar yang dibuat. Nilai default: 3600.SM_CHAT_COMPLETIONS_MODEL : Nama titik akhir sagemaker di mana model penyelesaian obrolan digunakan.SM_EMBEDDINGS_MODEL : Nama titik akhir Sagemaker di mana model embeddings digunakan.SM_IMAGE_CREATION_MODEL : Nama titik akhir sagemaker di mana model pembuatan gambar digunakan.Dalam hal menggunakan platform OpenAi, Anda perlu menentukan variabel ENV berikut sebelum Anda memulai LLM Gateway Server:
OPENAI_API_KEY : Kunci API OpenAI Anda. Contoh: export OPENAI_API_KEY=...OPENAI_CHAT_COMPLETIONS_MODEL : Seharusnya memiliki nilai salah satu di sini atau di sini.OPENAI_EMBEDDINGS_MODEL : Seharusnya memiliki nilai salah satu di sini.OPENAI_IMAGE_CREATION_MODEL : Seharusnya memiliki nilai salah satu di sini. Sekarang, Anda dapat menjalankan perintah sagify llm gateway --image sagify-llm-gateway:v0.1.0 --start-local untuk memulai LLM Gateway secara lokal. Anda dapat mengubah nama gambar melalui argumen --image .
Perintah ini akan menghasilkan ID Kontainer Docker. Anda dapat menghentikan wadah dengan mengeksekusi docker stop <CONTAINER_ID> .
Contoh
( Ingat untuk mengekspor terlebih dahulu semua variabel lingkungan yang Anda butuhkan )
Dalam hal ini Anda ingin membuat gambar Docker dan kemudian menjalankannya
sagify llm gateway --image sagify-llm-gateway:v0.1.0 --start-local
Jika Anda ingin menggunakan cukup membangun gambar
sagify llm gateway --image sagify-llm-gateway:v0.1.0
Jika Anda ingin mendukung kedua platform (OpenAi dan AWS Sagemaker), maka berikan semua variabel Env untuk kedua platform.
Jika Anda ingin menggunakan gerbang LLM ke AWS Fargate, maka Anda dapat mengikuti langkah -langkah umum ini:
Berikut adalah contoh templat informasi cloud untuk menggunakan layanan FASTAPI ke AWS Fargate dengan 5 variabel lingkungan:
Resources :
MyFargateTaskDefinition :
Type : AWS::ECS::TaskDefinition
Properties :
Family : my-fargate-task
ContainerDefinitions :
- Name : fastapi-container
Image : <YOUR_ECR_REPOSITORY_URI>
Memory : 512
PortMappings :
- ContainerPort : 80
Environment :
- Name : AWS_ACCESS_KEY_ID
Value : " value1 "
- Name : AWS_SECRET_ACCESS_KEY
Value : " value2 "
- Name : AWS_REGION_NAME
Value : " value3 "
- Name : S3_BUCKET_NAME
Value : " value4 "
- Name : IMAGE_URL_TTL_IN_SECONDS
Value : " value5 "
- Name : SM_CHAT_COMPLETIONS_MODEL
Value : " value6 "
- Name : SM_EMBEDDINGS_MODEL
Value : " value7 "
- Name : SM_IMAGE_CREATION_MODEL
Value : " value8 "
- Name : OPENAI_CHAT_COMPLETIONS_MODEL
Value : " value9 "
- Name : OPENAI_EMBEDDINGS_MODEL
Value : " value10 "
- Name : OPENAI_IMAGE_CREATION_MODEL
Value : " value11 "
MyFargateService :
Type : AWS::ECS::Service
Properties :
Cluster : default
TaskDefinition : !Ref MyFargateTaskDefinition
DesiredCount : 2
LaunchType : FARGATE
NetworkConfiguration :
AwsvpcConfiguration :
Subnets :
- <YOUR_SUBNET_ID>
SecurityGroups :
- <YOUR_SECURITY_GROUP_ID> Setelah gateway LLM digunakan, Anda dapat mengaksesnya di HOST_NAME/docs .
curl --location --request POST ' /v1/chat/completions '
--header ' Content-Type: application/json '
--data-raw ' {
"provider": "sagemaker",
"messages": [
{
"role": "system",
"content": "you are a cook"
},
{
"role": "user",
"content": "what is the recipe of mayonnaise"
}
],
"temperature": 0,
"max_tokens": 600,
"top_p": 0.9,
"seed": 32
} 'Contoh tanggapan
200 respons
{
"id" : " chatcmpl-8167b99c-f22b-4e04-8e26-4ca06d58dc86 " ,
"object" : " chat.completion " ,
"created" : 1708765682 ,
"provider" : " sagemaker " ,
"model" : " meta-textgeneration-llama-2-7b-f-2024-02-24-08-49-32-123 " ,
"choices" : [
{
"index" : 0 ,
"message" : {
"role" : " assistant " ,
"content": " Ah, a fellow foodie! Mayonnaise is a classic condiment that's easy to make and can elevate any dish. Here's my trusty recipe for homemade mayonnaise:nnIngredients:nn* 2 egg yolksn* 1/2 cup (120 ml) neutral-tasting oil, such as canola or grapeseedn* 1 tablespoon lemon juice or vinegarn* Salt and pepper to tastennInstructions:nn1. In a small bowl, whisk together the egg yolks and lemon juice or vinegar until well combined.n2. Slowly pour in the oil while continuously whisking the mixture. You can do this by hand with a whisk or use an electric mixer on low speed.n3. Continue whisking until the mixture thickens and emulsifies, which should take about 5-7 minutes. You'll know it's ready when it reaches a thick, creamy consistency.n4. Taste and adjust the seasoning as needed. You can add more salt, pepper, or lemon juice to taste.n5. Transfer the mayonnaise to a jar or airtight container and store it in the fridge for up to 1 week.nnThat's it! Homemade mayonnaise is a great way to control the ingredients and flavor, and it's also a fun kitchen experiment. Enjoy!"
}
}
]
}curl --location --request POST ' /v1/embeddings '
--header ' Content-Type: application/json '
--data-raw ' {
"provider": "sagemaker",
"input": [
"The mayonnaise was delicious"
]
} 'Contoh tanggapan
200 respons
{
"data" : [
{
"object" : " embedding " ,
"embedding" : [
-0.04274585098028183 ,
0.021814687177538872 ,
-0.004705613013356924 ,
...
-0.07548460364341736 ,
0.036427777260541916 ,
0.016453085467219353 ,
0.004641987383365631 ,
-0.0072729517705738544 ,
0.02343473769724369 ,
-0.002924458822235465 ,
0.0339619480073452 ,
0.005262510851025581 ,
-0.06709178537130356 ,
-0.015170316211879253 ,
-0.04612169787287712 ,
-0.012380547821521759 ,
-0.006663458421826363 ,
-0.0573800653219223 ,
0.007938326336443424 ,
0.03486081212759018 ,
0.021514462307095528
],
"index" : 0
}
],
"provider" : " sagemaker " ,
"model" : " hf-sentencesimilarity-gte-small-2024-02-24-09-24-27-341 " ,
"object" : " list "
}curl --location --request POST ' /v1/images/generations '
--header ' Content-Type: application/json '
--data-raw ' {
"provider": "sagemaker",
"prompt":
"A baby sea otter"
,
"n": 1,
"width": 512,
"height": 512,
"seed": 32,
"response_format": "url"
} 'Contoh tanggapan
200 respons
{
"provider" : " sagemaker " ,
"model" : " stable-diffusion-v2-1-base-2024-02-24-11-43-32-177 " ,
"created" : 1708775601 ,
"data" : [
{
"url" : " https://your-bucket.s3.amazonaws.com/31cedd17-ccd7-4cba-8dea-cb7e8b915782.png?AWSAccessKeyId=AKIAUKEQBDHITP26MLXH&Signature=%2Fd1J%2FUjOWbRnP5cwtkSzYUVoEoo%3D&Expires=1708779204 "
}
]
}Email: [email protected]
Kami menyadari bahwa tidak ada satu pun LLM untuk memerintah semuanya!