Amazon Bedrock
Amazon Bedrock คือบริการ Generative AI แบบ fully managed จาก AWS ที่เปิดให้นักพัฒนาและองค์กรเข้าถึง Foundation Models (FMs) ชั้นนำจากหลายผู้ให้บริการผ่าน API เดียว ไม่ว่าจะเป็น Anthropic Claude, Meta Llama, Mistral AI, Stability AI, Cohere และ Amazon Titan โดยไม่ต้องจัดการโครงสร้างพื้นฐาน (infrastructure) ใดๆ ด้วยตนเอง ข้อมูลที่ส่งผ่าน Bedrock จะไม่ถูกนำไปใช้ฝึกโมเดลใดๆ ทำให้มั่นใจในความปลอดภัยและความเป็นส่วนตัวของข้อมูลองค์กร
นอกจากการเรียกใช้โมเดลโดยตรง Bedrock ยังมีชุดเครื่องมือครบครันสำหรับการสร้าง AI application ระดับ production เช่น Bedrock Agents สำหรับงาน agentic workflows, Knowledge Bases สำหรับ RAG (Retrieval-Augmented Generation), Guardrails สำหรับควบคุมเนื้อหา, Flows สำหรับสร้าง LLM pipeline แบบ no-code และอีกมากมาย รองรับการใช้งานตั้งแต่ prototyping ไปจนถึง production scale
AWS Docs: https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html
สถาปัตยกรรม
ฟีเจอร์หลัก
Foundation Models ที่รองรับ
Bedrock ให้เข้าถึงโมเดลจากผู้ให้บริการชั้นนำหลายราย:
- Anthropic Claude — Claude 3.5 Sonnet, Claude 3.5 Haiku, Claude 3 Opus, Claude 3 Haiku โมเดลที่มีความสามารถสูงด้านการเขียน การวิเคราะห์ การเขียนโค้ด และการสนทนา
- Meta Llama — Llama 3.1 8B, 70B, 405B โมเดล open-weight ที่มีประสิทธิภาพสูง
- Mistral AI — Mistral 7B, Mixtral 8x7B, Mistral Large โมเดลประสิทธิภาพสูงขนาดกะทัดรัด
- Amazon Titan — Titan Text, Titan Embeddings, Titan Image Generator โมเดลที่ AWS พัฒนาเอง
- Stability AI — Stable Diffusion XL สำหรับสร้างภาพจาก text
- Cohere — Command, Embed สำหรับงาน text generation และ embeddings
- AI21 Labs — Jamba สำหรับงานภาษาศาสตร์
Amazon Bedrock Agents
บริการสำหรับสร้าง AI agents ที่สามารถดำเนินงานหลายขั้นตอนโดยอัตโนมัติ Agent สามารถ:
- เรียก API ภายนอกผ่าน Action Groups
- ค้นหาข้อมูลจาก Knowledge Bases
- รันโค้ดผ่าน Code Interpreter
- จัดการ session state และ memory ระหว่างการสนทนา
- ทำงานร่วมกับ sub-agents (multi-agent collaboration)
Amazon Bedrock AgentCore
ชุดเครื่องมือระดับ enterprise สำหรับ deploy และจัดการ AI agents ใน production ประกอบด้วย:
- AgentCore Runtime — managed runtime สำหรับ deploy agent code (Python/Node.js) พร้อม auto-scaling, session management และ timeout handling
- AgentCore Memory — persistent memory store สำหรับ agents รองรับทั้ง key-value store และ semantic (vector) search เก็บความจำระยะสั้น (session) และระยะยาว (cross-session)
- AgentCore Identity — จัดการ OAuth 2.0/OIDC authentication ให้ agents เชื่อมต่อกับบริการภายนอก เช่น Google, GitHub, Salesforce ในนามของผู้ใช้
- AgentCore Gateway — API gateway สำหรับให้ agents เรียก REST/GraphQL APIs, Lambda functions และฐานข้อมูล พร้อม auto-generate tool schemas จาก OpenAPI specs
- AgentCore Browser Tool — headless Chromium browser ให้ agents ท่องเว็บ อ่านเนื้อหา กรอกฟอร์ม และจับภาพหน้าจอได้
- AgentCore Code Interpreter — sandboxed Python execution environment รองรับ pandas, numpy, matplotlib และ file I/O
- AgentCore Observability — OpenTelemetry traces, token usage metrics, latency monitoring และ visual debugger ใน console เชื่อมต่อกับ CloudWatch
Amazon Bedrock Flows
เครื่องมือ visual no-code/low-code สำหรับสร้าง LLM pipeline โดยการลากวางโหนดต่างๆ:
- Prompt nodes — กำหนด prompt template
- Retrieval nodes — ดึงข้อมูลจาก Knowledge Bases
- Condition nodes — ตรรกะแบบ if/else
- Lambda nodes — เรียก Lambda function
- Iterator nodes — วน loop ประมวลผลข้อมูลหลายชิ้น
- Output nodes — ส่งผลลัพธ์ออก เหมาะสำหรับ business user และ data analyst ที่ต้องการสร้าง AI workflow โดยไม่ต้องเขียนโค้ด
Amazon Bedrock Knowledge Bases
ระบบ RAG (Retrieval-Augmented Generation) แบบ fully managed:
- เชื่อมต่อแหล่งข้อมูล: S3, Confluence, SharePoint, Salesforce, web crawling, RDS, custom sources
- Auto-chunking และ embedding เอกสารอัตโนมัติ
- เก็บ vector embeddings ใน vector stores ที่รองรับ: OpenSearch Serverless, Aurora PostgreSQL (pgvector), Pinecone, MongoDB Atlas, Redis Enterprise
- รองรับ hybrid search (keyword + semantic)
- Metadata filtering สำหรับจำกัดขอบเขตการค้นหา
Amazon Bedrock Prompt Management
ระบบจัดการ prompt แบบครบวงจร:
- บันทึกและ version prompt templates
- แชร์ prompt ระหว่างทีม
- Prompt catalog สำหรับ reuse
- A/B testing prompt variants
- เชื่อมต่อกับ Model Evaluation เพื่อวัดผล
Amazon Bedrock Guardrails
ชุดควบคุมความปลอดภัยของ AI:
- Content filtering — กรอง hate speech, violence, sexual content, self-harm
- PII redaction — ตรวจจับและลบข้อมูลส่วนตัว (ชื่อ, email, หมายเลขบัตรเครดิต, เลขบัตรประชาชน ฯลฯ)
- Topic blocking — ห้าม agent พูดถึงหัวข้อที่ระบุ (เช่น การแข่งขัน, กฎหมาย)
- Grounding check — ตรวจสอบว่าคำตอบสอดคล้องกับข้อมูลอ้างอิง (anti-hallucination)
- Word filters — บล็อกคำหรือวลีเฉพาะ
- ใช้งานได้กับทุก API call ไม่จำกัด model
Amazon Bedrock Model Evaluation
เครื่องมือ benchmark โมเดลบนข้อมูลของคุณเอง:
- Human evaluation — ส่งผลลัพธ์ให้ผู้ใช้งานจริงให้คะแนน
- Automatic evaluation — ใช้ LLM-as-judge วัดผล
- Built-in metrics: accuracy, robustness, toxicity, summarization quality
- เปรียบเทียบโมเดลหลายตัวพร้อมกันใน dashboard เดียว
Amazon Bedrock Fine-tuning
ปรับแต่งโมเดลด้วยข้อมูลของคุณเอง:
- รองรับ supervised fine-tuning (instruction tuning)
- ข้อมูล training เก็บใน S3
- ผลลัพธ์คือโมเดล custom ที่ deploy บน Bedrock ได้ทันที
- รองรับโมเดล: Amazon Titan, Cohere, Meta Llama
Amazon Bedrock Model Distillation
สร้างโมเดลขนาดเล็กที่มีประสิทธิภาพใกล้เคียงโมเดลใหญ่:
- ใช้โมเดลใหญ่ (teacher) สร้าง synthetic training data
- ฝึก fine-tune โมเดลขนาดเล็ก (student) ด้วยข้อมูลนั้น
- ลดต้นทุนการ inference ได้อย่างมากพร้อมรักษาคุณภาพ
Amazon Bedrock Marketplace
ตลาด third-party models:
- ค้นพบและ deploy โมเดลจากผู้ให้บริการนอก AWS
- รวม specialized models สำหรับงานเฉพาะทาง (medical, legal, finance)
- billing ผ่าน AWS account เดียว
Converse API
Unified chat API ที่ใช้งานได้กับทุก model ใน Bedrock:
- รูปแบบ messages เดียวกัน ไม่ว่าจะใช้ Claude, Llama หรือ Mistral
- รองรับ multi-turn conversation, system prompts, tool use
- ง่ายต่อการสลับโมเดลโดยไม่ต้องแก้โค้ด
Cross-region Inference
การกระจาย inference request ข้ามหลาย AWS regions โดยอัตโนมัติ:
- เพิ่ม availability และลด throttling
- รองรับ failover อัตโนมัติเมื่อ region หนึ่งมีปัญหา
- ไม่ต้องเปลี่ยนโค้ด เพียงใช้ cross-region inference profile
การติดตั้งและการตั้งค่า
เปิดใช้งานใน AWS Console
- เข้า AWS Console แล้วไปที่ Amazon Bedrock
- คลิก Model access ในแถบเมนูซ้าย
- คลิก Modify model access
- เลือกโมเดลที่ต้องการใช้ (บางโมเดลต้องกรอกข้อมูลเพิ่มเติมก่อน approve)
- คลิก Submit และรอประมาณ 1-5 นาที
ติดตั้ง SDK
Python (boto3)
pip install boto3
Node.js
npm install @aws-sdk/client-bedrock-runtime
AWS CLI
aws configure # ตั้งค่า credentials
aws bedrock list-foundation-models --region us-east-1
IAM Permissions ที่จำเป็น
สร้าง IAM policy สำหรับการใช้งาน Bedrock:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream",
"bedrock:ListFoundationModels",
"bedrock:GetFoundationModel"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:RetrieveAndGenerate",
"bedrock:Retrieve"
],
"Resource": "arn:aws:bedrock:*:*:knowledge-base/*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeAgent"
],
"Resource": "arn:aws:bedrock:*:*:agent-alias/*"
}
]
}
วิธีใช้งาน
เรียกใช้โมเดลด้วย Converse API (Python)
import boto3
import json
client = boto3.client("bedrock-runtime", region_name="us-east-1")
response = client.converse(
modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
messages=[
{
"role": "user",
"content": [{"text": "สรุปแนวโน้มธุรกิจ e-commerce ในไทยปี 2025 ให้หน่อย"}]
}
],
system=[
{"text": "คุณคือผู้เชี่ยวชาญด้านธุรกิจดิจิทัลในประเทศไทย ตอบเป็นภาษาไทยเสมอ"}
],
inferenceConfig={
"maxTokens": 1024,
"temperature": 0.7
}
)
output = response["output"]["message"]["content"][0]["text"]
print(output)
Streaming Response (Python)
import boto3
client = boto3.client("bedrock-runtime", region_name="us-east-1")
response = client.converse_stream(
modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
messages=[
{
"role": "user",
"content": [{"text": "เขียนบทความเกี่ยวกับ AI ในอนาคต"}]
}
]
)
stream = response["stream"]
for event in stream:
if "contentBlockDelta" in event:
delta = event["contentBlockDelta"]["delta"]
if "text" in delta:
print(delta["text"], end="", flush=True)
ใช้งาน Knowledge Bases (RAG)
import boto3
bedrock_agent = boto3.client("bedrock-agent-runtime", region_name="us-east-1")
response = bedrock_agent.retrieve_and_generate(
input={"text": "ขั้นตอนการขอสินเชื่อบ้านมีอะไรบ้าง?"},
retrieveAndGenerateConfiguration={
"type": "KNOWLEDGE_BASE",
"knowledgeBaseConfiguration": {
"knowledgeBaseId": "YOUR_KB_ID",
"modelArn": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0",
"retrievalConfiguration": {
"vectorSearchConfiguration": {
"numberOfResults": 5
}
}
}
}
)
print(response["output"]["text"])
for citation in response.get("citations", []):
print("อ้างอิงจาก:", citation["retrievedReferences"][0]["location"])
เรียกใช้ Bedrock Agent
import boto3
import uuid
client = boto3.client("bedrock-agent-runtime", region_name="us-east-1")
session_id = str(uuid.uuid4())
response = client.invoke_agent(
agentId="YOUR_AGENT_ID",
agentAliasId="YOUR_ALIAS_ID",
sessionId=session_id,
inputText="ช่วยตรวจสอบยอดเงินในบัญชีและแจ้งรายการล่าสุด 5 รายการ"
)
for event in response["completion"]:
if "chunk" in event:
print(event["chunk"]["bytes"].decode("utf-8"), end="")
ใช้งาน Guardrails
import boto3
client = boto3.client("bedrock-runtime", region_name="us-east-1")
response = client.converse(
modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
messages=[
{
"role": "user",
"content": [{"text": "แนะนำวิธีลงทุนในหุ้น"}]
}
],
guardrailConfig={
"guardrailIdentifier": "YOUR_GUARDRAIL_ID",
"guardrailVersion": "1",
"trace": "enabled"
}
)
# ตรวจสอบว่า Guardrail ถูก trigger หรือไม่
if response.get("stopReason") == "guardrail_intervened":
print("เนื้อหาถูกกรองโดย Guardrail")
else:
print(response["output"]["message"]["content"][0]["text"])
ราคา (ประมาณการในบาท)
อัตราแลกเปลี่ยน: 1 USD = 35 บาท
ค่าใช้จ่ายตาม Token (On-demand)
| โมเดล | Input (ต่อ 1M tokens) | Output (ต่อ 1M tokens) |
|---|---|---|
| Claude 3.5 Sonnet | $3.00 (~105 บาท) | $15.00 (~525 บาท) |
| Claude 3.5 Haiku | $0.80 (~28 บาท) | $4.00 (~140 บาท) |
| Claude 3 Haiku | $0.25 (~8.75 บาท) | $1.25 (~43.75 บาท) |
| Claude 3 Opus | $15.00 (~525 บาท) | $75.00 (~2,625 บาท) |
| Llama 3.1 70B | $0.72 (~25.20 บาท) | $0.72 (~25.20 บาท) |
| Llama 3.1 8B | $0.22 (~7.70 บาท) | $0.22 (~7.70 บาท) |
| Mistral Large | $3.00 (~105 บาท) | $9.00 (~315 บาท) |
| Amazon Titan Text G1 Express | $0.20 (~7 บาท)/1K | $0.25 (~8.75 บาท)/1K |
Knowledge Bases
- เก็บ vectors: $0.10 ต่อ 1,000 vectors ต่อเดือน (~3.50 บาท)
- Query: $0.0004 ต่อ query (~0.014 บาท)
- ตัวอย่าง: เก็บเอกสาร 10,000 หน้า (~100,000 vectors) = $10/เดือน (~350 บาท) + ค่า query
Bedrock Agents
- คิดตามจำนวน API call ที่ agent ทำ + ค่า token ของโมเดลที่ใช้
- ไม่มีค่าธรรมเนียมเพิ่มเติมสำหรับ orchestration
Bedrock Guardrails
- $0.75 ต่อ 1,000 text units (~26.25 บาท) สำหรับ content filtering
- $0.10 ต่อ 1,000 text units (~3.50 บาท) สำหรับ grounding check
Fine-tuning
- ขึ้นอยู่กับโมเดลและขนาด dataset แต่ละโมเดลมีราคาแตกต่างกัน
- ตัวอย่าง Amazon Titan Text: $0.0080 ต่อ 1,000 token สำหรับ training
เหมาะสำหรับ
- บริษัท startup และองค์กรขนาดใหญ่ ที่ต้องการสร้าง Generative AI application โดยไม่ต้องดูแล GPU infrastructure
- ทีม developer ที่ต้องการทดลองและเปรียบเทียบ Foundation Models หลายตัวเพื่อเลือกที่ดีที่สุดสำหรับงาน
- องค์กรที่มีข้อกังวลด้าน data privacy เพราะ Bedrock ไม่นำข้อมูลไปฝึกโมเดล และรองรับ VPC endpoint
- ทีมที่ต้องการสร้าง chatbot หรือ AI assistant จากเอกสารภายในองค์กรด้วย Knowledge Bases
- ทีม operations ที่ต้องการ automate workflow ด้วย Agents
- บริษัทที่ต้องการ compliance เช่น ธุรกิจการเงิน สุขภาพ กฎหมาย ที่ต้องการ Guardrails ควบคุมเนื้อหา
- นักวิจัยและ data scientist ที่ต้องการ fine-tune โมเดลด้วยข้อมูลเฉพาะทาง
ใช้ร่วมกับ AWS Services
| AWS Service | การเชื่อมต่อ |
|---|---|
| Amazon S3 | เก็บเอกสารสำหรับ Knowledge Bases, training data สำหรับ fine-tuning, output ของ batch inference |
| AWS Lambda | Action Groups ของ Agents เรียก Lambda เพื่อ execute business logic |
| Amazon OpenSearch Serverless | Vector store สำหรับ Knowledge Bases |
| Amazon Aurora PostgreSQL | Vector store ผ่าน pgvector extension |
| Amazon CloudWatch | เก็บ logs, metrics และ traces ของ Bedrock API calls |
| AWS IAM | ควบคุม access ด้วย roles และ policies |
| Amazon Kendra | ทำ hybrid search ร่วมกับ Knowledge Bases |
| AWS Step Functions | Orchestrate multi-step AI workflows |
| Amazon EventBridge | Trigger Bedrock workflows จาก events |
| AWS Secrets Manager | เก็บ API keys สำหรับ Action Groups |
| Amazon SageMaker | นำโมเดลที่ train บน SageMaker มา deploy บน Bedrock Marketplace |
Use Case ตัวอย่าง
Use Case 1: ระบบ Customer Support อัจฉริยะสำหรับธุรกิจประกันภัย
บริษัทประกันภัยไทยมีเอกสารกรมธรรม์และข้อกำหนดกว่า 50,000 หน้า ที่พนักงาน call center ต้องค้นหาทุกครั้งที่ลูกค้าโทรมาสอบถาม
สถาปัตยกรรม:
- อัปโหลดเอกสารกรมธรรม์ทั้งหมดไป S3
- สร้าง Knowledge Base ที่ชี้ไปยัง S3 bucket นั้น ใช้ Amazon Titan Embeddings สร้าง vector
- สร้าง Bedrock Agent พร้อม Action Groups ที่เชื่อมต่อกับระบบ CRM ผ่าน Lambda
- ตั้ง Guardrails กรองข้อมูล PII และหัวข้อที่ไม่เกี่ยวข้อง
- Agent ค้นหาข้อมูลจาก Knowledge Base และดึงข้อมูลลูกค้าจาก CRM พร้อมกัน
ผลลัพธ์: ลดเวลาตอบคำถามต่อสายจาก 8 นาที เหลือ 1.5 นาที พนักงานสามารถรับสายได้มากขึ้น 5 เท่า
Use Case 2: Content Generation Pipeline สำหรับ e-commerce
บริษัท e-commerce ต้องการสร้าง product description ภาษาไทยสำหรับสินค้าใหม่วันละหลายร้อยรายการ
สถาปัตยกรรม:
- ใช้ Bedrock Flows สร้าง pipeline: รับ product spec → แปลงเป็น description → ตรวจสอบ SEO keywords → output
- ใช้ Claude 3.5 Haiku (ราคาประหยัด) สำหรับ description generation
- ใช้ Prompt Management จัดการ templates หลายแบบ (สั้น/ยาว, formal/casual)
- ใช้ Guardrails ตรวจสอบว่าไม่มีคำกล่าวอ้างที่เกินจริง
- เชื่อมต่อ EventBridge trigger ให้ pipeline รันอัตโนมัติเมื่อมีสินค้าใหม่เข้าระบบ
ผลลัพธ์: ลดต้นทุน content creation จาก 50 บาท/รายการ (จ้างนักเขียน) เหลือ ~0.50 บาท/รายการ
Use Case 3: ระบบวิเคราะห์เอกสารสัญญาทางกฎหมาย
สำนักงานกฎหมายต้องการเครื่องมือช่วยทนายความวิเคราะห์สัญญาและหาความเสี่ยง
สถาปัตยกรรม:
- รับ PDF สัญญาผ่าน API → แปลงเป็น text → ส่งไป Bedrock
- ใช้ Claude 3.5 Sonnet วิเคราะห์ข้อสัญญาที่มีความเสี่ยงสูง
- ใช้ Knowledge Base เก็บ case law และมาตรฐานสัญญา เพื่อ RAG
- ใช้ Model Evaluation เปรียบเทียบ Claude กับ Llama เพื่อเลือกโมเดลที่ดีที่สุดสำหรับงานกฎหมายไทย
- ใช้ Guardrails กรองข้อมูลลูกค้าที่เป็น PII ก่อนส่งไปโมเดล
ผลลัพธ์: ทนายความสามารถวิเคราะห์สัญญาได้เร็วขึ้น 10 เท่า มีเวลาโฟกัสกับงานที่ซับซ้อนมากขึ้น