Tạo văn bản với mô hình ngôn ngữ

Giới thiệu về Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Gửi prompt tới mô hình ngôn ngữ

  • Prompt: văn bản đầu vào bạn gửi cho mô hình
    • "Explain how AWS Lambda works"

Biểu tượng đại diện cho prompt.

Giới thiệu về Amazon Bedrock

Gửi prompt tới mô hình ngôn ngữ

  • Prompt: văn bản đầu vào bạn gửi cho mô hình
    • "Explain how AWS Lambda works"
  • Completion: văn bản do mô hình tạo
    • "AWS Lambda is a serverless compute service that..."

Biểu tượng đại diện cho prompt và completion.

Giới thiệu về Amazon Bedrock

Gửi prompt tới mô hình ngôn ngữ

  • Prompt: văn bản đầu vào bạn gửi cho mô hình
    • "Explain how AWS Lambda works"
  • Completion: văn bản do mô hình tạo
    • "AWS Lambda is a serverless compute service that..."
  • Response:
    • Văn bản sinh (completion)
    • Siêu dữ liệu (token, thông tin mô hình)
    • Trạng thái

Ba biểu tượng lần lượt đại diện cho prompt, completion và response.

Giới thiệu về Amazon Bedrock

Áp dụng kỹ thuật nhắc cơ bản

  • Kỹ thuật cho kết quả tốt hơn:
    • Rõ ràng, cụ thể: viết hướng dẫn chi tiết, chính xác
    • Gán vai trò: đặt persona để tăng hiểu ngữ cảnh
    • Chỉ dẫn định dạng: thêm ràng buộc để dẫn hướng phản hồi
"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."
Giới thiệu về Amazon Bedrock

Kỹ thuật phân tích văn bản nâng cao

  • Xử lý khóa thiếu hoặc bất ngờ
data = json.loads(response['body'].read())
if 'completion' in data:
    output = data['completion']

else: output = "Key not found"
  • Phân tích JSON nhiều tầng để đi qua cấu trúc lồng sâu
try:
    nova_output = data.decode()["output"]

except (KeyError, IndexError) as e: nova_output = f"Error: {str(e)}"
Giới thiệu về Amazon Bedrock

Xử lý phản hồi và văn bản

  • Sự cố Unicode/encoding: xử lý ký tự đặc biệt trong phản hồi văn bản
    # Ensure proper encoding
    output = data['completion'].encode('utf-8').decode('unicode_escape')
    print(output)
    
  • Xử lý phản hồi lớn: tách hoặc cắt ngắn để dễ dùng
    # Truncate response for display
    output = data['completion'][:500]  # Limit to 500 characters
    print(output)
    
Giới thiệu về Amazon Bedrock

Trích xuất danh mục với Bedrock

  • Ví dụ: phân loại văn bản
  • Dùng nhắc có cấu trúc với tùy chọn danh mục rõ ràng
  • Chỉ dẫn rõ: chỉ 1 danh mục đầu ra
  • Xử lý phản hồi mô hình hiệu quả
  • Kết quả: phân loại chính xác

Biểu tượng minh họa phân loại văn bản

Giới thiệu về Amazon Bedrock

Trích xuất danh mục với 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"}}
Giới thiệu về Amazon Bedrock

Luyện tập thôi!

Giới thiệu về Amazon Bedrock

Preparing Video For Download...