Generera text med språkmodeller

Introduktion till Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Skicka promptar till språkmodeller

  • Prompt: den inmatningstext du skickar till modellen
    • "Explain how AWS Lambda works"

En ikon som representerar prompten.

Introduktion till Amazon Bedrock

Skicka promptar till språkmodeller

  • Prompt: den inmatningstext du skickar till modellen
    • "Explain how AWS Lambda works"
  • Completion: den text som modellen genererar
    • "AWS Lambda is a serverless compute service that..."

Ikoner som representerar prompten och completion.

Introduktion till Amazon Bedrock

Skicka promptar till språkmodeller

  • Prompt: den inmatningstext du skickar till modellen
    • "Explain how AWS Lambda works"
  • Completion: den text som modellen genererar
    • "AWS Lambda is a serverless compute service that..."
  • Response:
    • Genererad text (completion)
    • Metadata (tokens, modellinformation)
    • Statusinformation

Tre ikoner i sekvens som representerar prompt, completion och response.

Introduktion till Amazon Bedrock

Grundläggande prompt engineering-tekniker

  • Tekniker för bättre resultat:
    • Tydlighet och specificitet: skriv detaljerade och precisa instruktioner
    • Rolltilldelning: ge modellen en persona för bättre kontextuell förståelse
    • Formateringsinstruktioner: lägg till begränsningar för att styra svaret
"Explain the benefits of exercise 
in simple terms."
"You are a nutritionist. Explain the 
benefits of a balanced diet."
"List the top 3 benefits of cloud 
computing in bullet points."
Introduktion till Amazon Bedrock

Avancerade tekniker för textparsning

  • Hantera saknade eller oväntade nycklar
data = json.loads(response['body'].read())
if 'completion' in data:
    output = data['completion']

else: output = "Key not found"
  • JSON-parsning på flera nivåer för att navigera i djupt nästlade strukturer
try:
    nova_output = data.decode()["output"]

except (KeyError, IndexError) as e: nova_output = f"Error: {str(e)}"
Introduktion till Amazon Bedrock

Svarsbearbetning och texthantering

  • Unicode- eller kodningsproblem: hantera specialtecken i textsvar
    # Ensure proper encoding
    output = data['completion'].encode('utf-8').decode('unicode_escape')
    print(output)
    
  • Bearbetning av stora svar: dela upp eller trunkera stora utdata för bättre användbarhet
    # Truncate response for display
    output = data['completion'][:500]  # Limit to 500 characters
    print(output)
    
Introduktion till Amazon Bedrock

Kategorisering med Bedrock

  • Exempel: klassificera textdata
  • Använd strukturerade promptar med tydliga kategorialternativ
  • Ge explicita instruktioner för utdata i en enda kategori
  • Bearbeta modellsvar effektivt
  • Resultat: korrekt textkategorisering

Ikoner som representerar textklassificering

Introduktion till Amazon Bedrock

Kategorisering med Bedrock

def categorize_ticket(ticket, categories):
  prompt = f"Categorize into one: {', '.join(categories)}. 
  Ticket: {ticket}"
  response = bedrock.invoke_model(
    modelId='amazon.nova-micro-v1:0',
    body=json.dumps({"messages": [{"role": "user", "content": 
                                   [{"text": prompt}]}]}))

return json.loads(nova_response.get("body").read().decode())["output"]
{"output": {"message": {"role": "assistant","content": [
        {
          "text": "Customer Service"
        }]}, "stop_reason": "stop_sequence"}}
Introduktion till Amazon Bedrock

Nu kör vi en övning!

Introduktion till Amazon Bedrock

Preparing Video For Download...