Generování textu pomocí jazykových modelů

Úvod do Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Odesílání promptů jazykovým modelům

  • Prompt: vstupní text odeslaný modelu
    • „Explain how AWS Lambda works"

Ikona představující prompt.

Úvod do Amazon Bedrock

Sending prompts to language models

  • Prompt: vstupní text odeslaný modelu
    • "Explain how AWS Lambda works"
  • Completion: the text generated by the model
    • "AWS Lambda is a serverless compute service that..."

Icons representing the prompt and completion.

Úvod do Amazon Bedrock

Sending prompts to language models

  • Prompt: the input text you send to the model
    • "Explain how AWS Lambda works"
  • Completion: the text generated by the model
    • "AWS Lambda is a serverless compute service that..."
  • Response:
    • Generated text (completion)
    • Metadata (tokens, model info)
    • Status information

Three icons in sequence representing the prompt, completion, and response.

Úvod do Amazon Bedrock

Základní techniky prompt engineeringu

  • Techniky pro lepší výsledky:
    • Jasnost a přesnost: pište podrobné a přesné instrukce
    • Přiřazení role: dejte modelu personu pro lepší kontextové porozumění
    • Instrukce pro formátování: přidejte omezení pro řízení odpovědi
"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."
Úvod do Amazon Bedrock

Pokročilé techniky parsování textu

  • Zpracování chybějících nebo neočekávaných klíčů
data = json.loads(response['body'].read())
if 'completion' in data:
    output = data['completion']

else: output = "Key not found"
  • Víceúrovňové parsování JSON pro navigaci v hluboce vnořených strukturách
try:
    nova_output = data.decode()["output"]

except (KeyError, IndexError) as e: nova_output = f"Error: {str(e)}"
Úvod do Amazon Bedrock

Zpracování odpovědí a práce s textem

  • Problémy s Unicode nebo kódováním: zpracování speciálních znaků v textových odpovědích
    # Ensure proper encoding
    output = data['completion'].encode('utf-8').decode('unicode_escape')
    print(output)
    
  • Zpracování velkých odpovědí: rozdělení nebo zkrácení velkých výstupů pro lepší použitelnost
    # Truncate response for display
    output = data['completion'][:500]  # Limit to 500 characters
    print(output)
    
Úvod do Amazon Bedrock

Extrakce kategorií pomocí Bedrocku

  • Příklad: klasifikace textových dat
  • Použijte strukturované prompty s jasnými kategoriemi
  • Zadejte explicitní instrukce pro výstup jedné kategorie
  • Efektivně zpracujte odpovědi modelu
  • Výsledek: přesná kategorizace textu

Ikony představující klasifikaci textu

Úvod do Amazon Bedrock

Extrakce kategorií pomocí Bedrocku

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"}}
Úvod do Amazon Bedrock

Pojďme si procvičit!

Úvod do Amazon Bedrock

Preparing Video For Download...