Streameljen nagy nyelvi modellválaszokat az Amazon SageMaker JumpStart | Amazon webszolgáltatások

Streameljen nagy nyelvi modellválaszokat az Amazon SageMaker JumpStart | Amazon webszolgáltatások

Örömmel jelentjük be Amazon SageMaker JumpStart immár nagy nyelvi modell (LLM) következtetési válaszokat sugározhat. A token streaming lehetővé teszi, hogy megtekinthesse a modellválasz kimenetét, amint az generálás alatt áll, ahelyett, hogy megvárná, amíg az LLM-ek befejezik a válaszgenerálást, mielőtt az elérhetővé válna az Ön számára. A SageMaker JumpStart streaming képessége segíthet jobb felhasználói élményt nyújtó alkalmazások létrehozásában azáltal, hogy a végfelhasználó számára alacsony késleltetési időt kelt.

Ebben a bejegyzésben bemutatjuk, hogyan telepíthető és streamelhető a válasz a Falcon 7B Instruct modell végpont.

Az írás idején a SageMaker JumpStartban elérhető következő LLM-ek támogatják a streamelést:

  • Mistral AI 7B, Mistral AI 7B utasítás
  • Falcon 180B, Falcon 180B Chat
  • Falcon 40B, Falcon 40B utasítás
  • Falcon 7B, Falcon 7B utasítás
  • Rinna japán GPT NeoX 4B utasítás PPO
  • Rinna japán GPT NeoX 3.6B utasítás PPO

A SageMaker JumpStart streamelést támogató modellek listájának frissítéséhez keressen rá a „huggingface-llm” kifejezésre itt: Beépített algoritmusok előre betanított modelltáblázattal.

Vegye figyelembe, hogy használhatja a streaming funkció of Amazon SageMaker a SageMaker TGI Deep Learning Container (DLC) használatával üzembe helyezett bármely modellhez, a leírás szerint. Bejelentjük az új Hugging Face LLM Inference konténerek elindítását az Amazon SageMakeren.

Alapozó modellek a SageMakerben

A SageMaker JumpStart számos modellhez biztosít hozzáférést a népszerű modellközpontokból, beleértve a Hugging Face-t, a PyTorch Hub-ot és a TensorFlow Hub-ot, amelyeket a SageMaker ML-fejlesztési munkafolyamataiban használhat fel. Az ML közelmúltbeli fejlődése a modellek új osztályát eredményezte alapozó modellek, amelyek jellemzően több milliárd paraméterre vannak kiképezve, és a felhasználási esetek széles kategóriájához illeszthetők, mint például a szövegösszegzés, a digitális művészet generálása és a nyelvi fordítás. Mivel ezeknek a modelleknek a betanítása költséges, az ügyfelek a meglévő, előre betanított alapozómodelleket szeretnék használni, és szükség szerint finomhangolni őket, ahelyett, hogy maguk képeznék ki ezeket a modelleket. A SageMaker a modellek válogatott listáját kínálja, amelyek közül választhat a SageMaker konzolon.

Mostantól a SageMaker JumpStartban különböző modellszolgáltatóktól származó alapozó modelleket találhat, így gyorsan elkezdheti az alapozó modelleket. A SageMaker JumpStart különböző feladatokon vagy modellszolgáltatókon alapuló alapmodelleket kínál, és könnyen áttekintheti a modell jellemzőit és használati feltételeit. Ezeket a modelleket egy teszt UI widget segítségével is kipróbálhatja. Ha nagyszabású alapmodellt szeretne használni, a SageMaker elhagyása nélkül megteheti a modellszolgáltatók előre elkészített notebookjainak használatával. Mivel a modelleket az AWS-ben tárolják és telepítik, Ön bízik abban, hogy adatait – akár a modell kiértékeléséhez, akár nagyszabású használatához használják – nem osztják meg harmadik felekkel.

Token streaming

A token adatfolyam lehetővé teszi a következtetési válasz visszaadását, ahogy azt a modell generálja. Így láthatja a fokozatosan generált választ, ahelyett, hogy megvárná a modell befejezését, mielőtt a teljes választ adná. A streamelés elősegítheti a jobb felhasználói élmény biztosítását, mivel csökkenti a végfelhasználó várakozási idejét. Elkezdheti látni a kimenetet generálás közben, és ezért korán leállíthatja a generálást, ha a kimenet nem tűnik hasznosnak az Ön céljaira. A streamelés nagy különbséget jelenthet, különösen a hosszan futó lekérdezések esetében, mivel a kimenetek generálása közben megjelennek, ami alacsonyabb késleltetést eredményezhet, még akkor is, ha a végpontok közötti késleltetés változatlan marad.

Az írás pillanatában a Hugging Face LLM-et használó modelleknél használhatod a streamelést a SageMaker JumpStartban. Szöveggenerálási következtetés DLC.

Válasz: Nincs gőzölés Válasz a streameléssel

Megoldás áttekintése

Ebben a bejegyzésben a Falcon 7B Instruct modellt használjuk a SageMaker JumpStart streaming képességének bemutatására.

A következő kóddal kereshet más modelleket a SageMaker JumpStartban, amelyek támogatják a streamelést:

from sagemaker.jumpstart.notebook_utils import list_jumpstart_models
from sagemaker.jumpstart.filters import And filter_value = And("task == llm", "framework == huggingface")
model_ids = list_jumpstart_models(filter=filter_value)
print(model_ids)

A következő modellazonosítókat kapjuk, amelyek támogatják a streamelést:

['huggingface-llm-bilingual-rinna-4b-instruction-ppo-bf16', 'huggingface-llm-falcon-180b-bf16', 'huggingface-llm-falcon-180b-chat-bf16', 'huggingface-llm-falcon-40b-bf16', 'huggingface-llm-falcon-40b-instruct-bf16', 'huggingface-llm-falcon-7b-bf16', 'huggingface-llm-falcon-7b-instruct-bf16', 'huggingface-llm-mistral-7b', 'huggingface-llm-mistral-7b-instruct', 'huggingface-llm-rinna-3-6b-instruction-ppo-bf16']

Előfeltételek

A notebook futtatása előtt néhány kezdeti lépés szükséges a beállításhoz. Futtassa a következő parancsokat:

%pip install --upgrade sagemaker –quiet

Telepítse a modellt

Első lépésként a SageMaker JumpStart segítségével telepítse a Falcon 7B Instruct modellt. A teljes útmutatásért lásd: A TII Falcon 180B alapozó modellje már elérhető az Amazon SageMaker JumpStart szolgáltatáson keresztül. Használja a következő kódot:

from sagemaker.jumpstart.model import JumpStartModel my_model = JumpStartModel(model_id="huggingface-llm-falcon-7b-instruct-bf16")
predictor = my_model.deploy()

Kérdezze le a végpontot és az adatfolyam-választ

Ezután hozzon létre egy hasznos adatot a telepített végpont meghívásához. Fontos, hogy a hasznos adatnak tartalmaznia kell a kulcs/érték párt "stream": True. Ez jelzi a szöveggeneráló következtetési kiszolgálónak, hogy generáljon adatfolyam-választ.

payload = { "inputs": "How do I build a website?", "parameters": {"max_new_tokens": 256}, "stream": True
}

A végpont lekérdezése előtt létre kell hoznia egy iterátort, amely képes elemezni a bájtfolyam-választ a végponttól. Az egyes jogkivonatok adatai külön sorként jelennek meg a válaszban, így ez az iterátor minden alkalommal egy tokent ad vissza, amikor új sort azonosítanak a streaming pufferben. Ezt az iterátort minimálisan tervezték, és érdemes lehet a viselkedését az Ön használati esetéhez igazítani; Például míg ez az iterátor jogkivonat-karakterláncokat ad vissza, a soradatok olyan egyéb információkat is tartalmaznak, mint például a jogkivonat naplójának valószínűsége, amelyek érdekesek lehetnek.

import io
import json class TokenIterator: def __init__(self, stream): self.byte_iterator = iter(stream) self.buffer = io.BytesIO() self.read_pos = 0 def __iter__(self): return self def __next__(self): while True: self.buffer.seek(self.read_pos) line = self.buffer.readline() if line and line[-1] == ord("n"): self.read_pos += len(line) + 1 full_line = line[:-1].decode("utf-8") line_data = json.loads(full_line.lstrip("data:").rstrip("/n")) return line_data["token"]["text"] chunk = next(self.byte_iterator) self.buffer.seek(0, io.SEEK_END) self.buffer.write(chunk["PayloadPart"]["Bytes"])

Most már használhatja a Boto3-at invoke_endpoint_with_response_stream API-t a létrehozott végponton, és engedélyezze az adatfolyamot az a feletti iterációval TokenIterator példa:

import boto3 client = boto3.client("runtime.sagemaker")
response = client.invoke_endpoint_with_response_stream( EndpointName=predictor.endpoint_name, Body=json.dumps(payload), ContentType="application/json",
) for token in TokenIterator(response["Body"]): print(token, end="")

Üres megadása end paraméter a print funkció lehetővé teszi a vizuális adatfolyamot új sorkarakterek beszúrása nélkül. Ez a következő kimenetet eredményezi:

Building a website can be a complex process, but it generally involves the following steps: 1. Determine the purpose and goals of your website
2. Choose a domain name and hosting provider
3. Design and develop your website using HTML, CSS, and JavaScript
4. Add content to your website and optimize it for search engines
5. Test and troubleshoot your website to ensure it is working properly
6. Maintain and update your website regularly to keep it running smoothly. There are many resources available online to guide you through these steps, including tutorials and templates. It may also be helpful to seek the advice of a web developer or designer if you are unsure about any of these steps.<|endoftext|>

Használhatja ezt a kódot egy notebookban vagy más alkalmazásokban, például a Streamlitben vagy a Gradioban, hogy megtekinthesse a streamelést működés közben és az általa nyújtott élményt ügyfelei számára.

Tisztítsuk meg

Végül ne felejtse el megtisztítani a telepített modellt és végpontot, hogy elkerülje a további költségeket:

predictor.delete_model()
predictor.delete_endpoint()

Következtetés

Ebben a bejegyzésben megmutattuk, hogyan használhatja a SageMaker JumpStart újonnan elindított streaming funkcióját. Reméljük, hogy a token streaming képességet használja majd olyan interaktív alkalmazások létrehozására, amelyek alacsony késleltetést igényelnek a jobb felhasználói élmény érdekében.


A szerzőkről

Streameljen nagy nyelvi modellválaszokat az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Rachna Chadha az AWS stratégiai számláinak fő megoldástervezője, az AI/ML. Rachna optimista, aki hisz abban, hogy az AI etikus és felelős használata javíthatja a társadalmat a jövőben, és gazdasági és társadalmi jólétet hozhat. Szabadidejében Rachna szereti a családjával tölteni az idejét, kirándulni és zenét hallgatni.

Streameljen nagy nyelvi modellválaszokat az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Dr. Kyle Ulrich egy alkalmazott tudós a Amazon SageMaker beépített algoritmusok csapat. Kutatási területei közé tartoznak a skálázható gépi tanulási algoritmusok, a számítógépes látás, az idősorok, a Bayes-féle nem-paraméterek és a Gauss-folyamatok. Doktori fokozatát a Duke Egyetemen szerezte, és publikációkat publikált a NeurIPS-ben, a Cell-ben és a Neuron-ban.

Streameljen nagy nyelvi modellválaszokat az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Dr. Ashish Khetan vezető alkalmazott tudós az Amazon SageMaker beépített algoritmusaival, és segít gépi tanulási algoritmusok fejlesztésében. PhD fokozatát az Illinois Urbana-Champaign Egyetemen szerezte. A gépi tanulás és a statisztikai következtetések aktív kutatója, és számos közleményt publikált NeurIPS, ICML, ICLR, JMLR, ACL és EMNLP konferenciákon.

Időbélyeg:

Még több AWS gépi tanulás