Amazon Nova là gì?
Các mô hình Nova của Amazon là những mô hình nền tảng rất được mong đợi, có thể truy cập thông qua dịch vụ Amazon Bedrock. Chúng được thiết kế cho nhiều ứng dụng, bao gồm suy luận nhanh với chi phí thấp, hiểu đa phương tiện và tạo nội dung sáng tạo. Hãy cùng khám phá từng mô hình.
Amazon Nova Micro
Mô hình nhanh nhất trong nhóm, có tốc độ cao nhất và chi phí tính toán thấp. Micro phù hợp nhất cho các ứng dụng cần tạo nội dung chỉ văn bản với tốc độ suy luận 200 token/giây.
Một số ứng dụng tiêu biểu của Micro là phân tích thời gian thực, chatbot tương tác và các dịch vụ tạo văn bản lưu lượng cao.

Điểm chuẩn Nova Micro. (Nguồn: Amazon)
Amazon Nova Lite
Thành viên đa phương thức tiết kiệm chi phí của gia đình Nova, Lite cân bằng tốt giữa tốc độ và độ chính xác cao ở nhiều tác vụ, đặc biệt là suy luận và dịch thuật khi so sánh với các đối thủ như GPT-4o hoặc Llama.
Nó có thể xử lý hiệu quả khối lượng lớn yêu cầu đồng thời vẫn duy trì độ chính xác cao. Lite có thể là lựa chọn tối ưu cho các ứng dụng coi trọng tốc độ và cần mô hình có khả năng xử lý nhiều phương thức.

Điểm chuẩn Nova Lite. (Nguồn: Amazon)
Amazon Nova Pro
Mô hình tiên tiến nhất trong gia đình Nova dành cho xử lý văn bản, Nova Pro, mang lại độ chính xác ấn tượng đồng thời duy trì chi phí tính toán tương đối thấp so với các mô hình có năng lực tương đương.
Theo Amazon, Nova Pro phù hợp với các ứng dụng như tóm tắt video, hỏi đáp, suy luận toán học, phát triển phần mềm, và các tác tử AI có khả năng thực thi quy trình nhiều bước. Tương tự Micro và Lite, Nova Pro hiện hỗ trợ tinh chỉnh.

Điểm chuẩn Nova Pro. (Nguồn: Amazon)
Amazon Nova Premier
Mô hình đa phương thức mạnh mẽ nhất của gia đình, dự kiến ra mắt vào đầu năm 2025, được kỳ vọng sẽ là bước nâng cấp so với mô hình Pro.
Amazon Nova Canvas
Canvas là giải pháp tạo hình ảnh của Nova. Nó có thể tạo ra hình ảnh chất lượng cao, cho phép kiểm soát bảng màu và phong cách, đồng thời cung cấp các tính năng như inpainting, outpainting, mở rộng hình ảnh, chuyển đổi phong cách và xóa nền. Mô hình này tỏ ra hiệu quả để tạo hình ảnh tiếp thị, mockup sản phẩm, v.v.
Amazon Nova Reel
Nova Reel là mô hình tạo video được thiết kế cho đầu ra video chất lượng cao và dễ tùy chỉnh. Nova Reel cho phép người dùng tạo và kiểm soát phong cách hình ảnh, nhịp điệu và chuyển động camera trong video. Tương tự các mô hình Nova khác, Reel đi kèm các kiểm soát an toàn tích hợp để tạo nội dung phù hợp định hướng.
Cách truy cập các mô hình Amazon Nova qua Amazon Bedrock Playground
Bạn có thể sử dụng Playground của Amazon Bedrock để thử nghiệm và so sánh nhiều mô hình thông qua giao diện người dùng sẵn có.
Tôi giả định bạn đã cấu hình và sẵn sàng sử dụng Amazon CLI và Bedrock. Nếu chưa, bạn có thể tham khảo hướng dẫn của tôi về AWS Multi-Agent Orchestrator, nơi tôi trình bày chi tiết các bước thiết lập môi trường để dùng các mô hình do Bedrock cung cấp. Ngoài ra, bài viết blog của Nils Durner cung cấp ảnh chụp màn hình từng bước để hướng dẫn bạn thiết lập dịch vụ Bedrock.

Amazon Bedrock Playground
Khi so sánh Nova Micro và Pro, tôi nhận thấy khoảng cách về độ chính xác giữa hai mô hình là không đáng kể. Dù Micro tạo văn bản nhanh hơn hơn gấp đôi so với Pro, nó vẫn đưa ra câu trả lời đủ tốt cho hầu hết trường hợp sử dụng thông thường. Trong khi đó, Pro có xu hướng tạo phản hồi chi tiết và dài hơn đôi chút.
Cách truy cập các mô hình Amazon Nova qua Amazon Bedrock API
Để sử dụng các mô hình Nova qua API và tích hợp vào mã của bạn, trước hết hãy đảm bảo tài khoản AWS, AWS CLI và quyền truy cập mô hình đã được thiết lập đúng (tài liệu cung cấp hướng dẫn cho việc này).
Tiếp theo, cài đặt thư viện boto3, SDK cho Python của AWS, giúp bạn làm việc với các mô hình của họ.
pip install boto3
Bạn có thể tương tác với các mô hình bằng lập trình sử dụng một script như dưới đây:
import boto3
import json
client = boto3.client(service_name="bedrock-runtime")
messages = [
{"role": "user", "content": [{"text": "Write a short poem"}]},
]
model_response = client.converse(
modelId="us.amazon.nova-lite-v1:0",
messages=messages
)
print("\\n[Full Response]")
print(json.dumps(model_response, indent=2))
print("\\n[Response Content Text]")
print(model_response["output"]["message"]["content"][0]["text"])
Dự án demo với Nova Micro và AWS Multi-Agent Orchestrator
Giờ đây, chúng ta triển khai một dự án demo để kiểm thử khả năng tác tử của Nova Micro. Chúng ta sẽ dùng khung AWS Multi-Agent Orchestrator để thiết lập một ứng dụng Python giản lược gồm hai tác tử: Python Developer Agent và ML Expert Agent. Nếu muốn thiết lập trình điều phối, bạn có thể dùng hướng dẫn AWS Multi-Agent Orchestrator này.
Chúng ta cũng sẽ dùng Chainlit, một gói Python mã nguồn mở, để xây dựng giao diện đơn giản cho ứng dụng. Trước tiên, cài đặt các thư viện cần thiết:
chainlit==1.2.0
multi_agent_orchestrator==0.0.18
Bắt đầu bằng cách nhập các thư viện cần thiết:
import uuid
import chainlit as cl
from multi_agent_orchestrator.orchestrator import MultiAgentOrchestrator, OrchestratorConfig
from multi_agent_orchestrator.classifiers import BedrockClassifier, BedrockClassifierOptions
from multi_agent_orchestrator.agents import AgentResponse
from multi_agent_orchestrator.agents import BedrockLLMAgent, BedrockLLMAgentOptions, AgentCallbacks
from multi_agent_orchestrator.orchestrator import MultiAgentOrchestrator
from multi_agent_orchestrator.types import ConversationMessage
import asyncio
import chainlit as cl
Khung làm việc sử dụng một Bộ phân loại (Classifier) để chọn tác tử phù hợp nhất cho yêu cầu người dùng đến. Chúng ta dùng “anthropic.claude-3-haiku-20240307-v1:0” làm mô hình cho Bộ phân loại.
class ChainlitAgentCallbacks(AgentCallbacks):
def on_llm_new_token(self, token: str) -> None:
asyncio.run(cl.user_session.get("current_msg").stream_token(token))
# Initialize the orchestrator
custom_bedrock_classifier = BedrockClassifier(BedrockClassifierOptions(
model_id='anthropic.claude-3-haiku-20240307-v1:0',
inference_config={
'maxTokens': 500,
'temperature': 0.7,
'topP': 0.9
}
))
orchestrator = MultiAgentOrchestrator(options=OrchestratorConfig(
LOG_AGENT_CHAT=True,
LOG_CLASSIFIER_CHAT=True,
LOG_CLASSIFIER_RAW_OUTPUT=True,
LOG_CLASSIFIER_OUTPUT=True,
LOG_EXECUTION_TIMES=True,
MAX_RETRIES=3,
USE_DEFAULT_AGENT_IF_NONE_IDENTIFIED=False,
MAX_MESSAGE_PAIRS_PER_AGENT=10,
),
classifier=custom_bedrock_classifier
)
Tiếp theo, chúng ta định nghĩa hai tác tử sử dụng Nova Micro, một tác tử đóng vai chuyên gia phát triển Python và tác tử còn lại là chuyên gia học máy.
def create_python_dev():
return BedrockLLMAgent(BedrockLLMAgentOptions(
name="Python Developer Agent",
streaming=True,
description="Experienced Python developer specialized in writing, debugging, and evaluating only Python code.",
model_id="amazon.nova-micro-v1:0",
callbacks=ChainlitAgentCallbacks()
))
def create_ml_expert():
return BedrockLLMAgent(BedrockLLMAgentOptions(
name="Machine Learning Expert",
streaming=True,
description="Expert in areas related to machine learning including deep learning, pytorch, tensorflow, scikit-learn, and large language models.",
model_id="amazon.nova-micro-v1:0",
callbacks=ChainlitAgentCallbacks()
))
# Add agents to the orchestrator
orchestrator.add_agent(create_python_dev())
orchestrator.add_agent(create_ml_expert())
Cuối cùng, chúng ta thiết lập phần chính của script cho giao diện Chainlit để xử lý yêu cầu người dùng và phản hồi từ các tác tử.
@cl.on_chat_start
async def start():
cl.user_session.set("user_id", str(uuid.uuid4()))
cl.user_session.set("session_id", str(uuid.uuid4()))
cl.user_session.set("chat_history", [])
@cl.on_message
async def main(message: cl.Message):
user_id = cl.user_session.get("user_id")
session_id = cl.user_session.get("session_id")
msg = cl.Message(content="")
await msg.send() # Send the message immediately to start streaming
cl.user_session.set("current_msg", msg)
response:AgentResponse = await orchestrator.route_request(message.content, user_id, session_id, {})
# Handle non-streaming responses
if isinstance(response, AgentResponse) and response.streaming is False:
# Handle regular response
if isinstance(response.output, str):
await msg.stream_token(response.output)
elif isinstance(response.output, ConversationMessage):
await msg.stream_token(response.output.content[0].get('text'))
await msg.update()
if __name__ == "__main__":
cl.run()
Kết quả là giao diện Chainlit, cho phép bạn trò chuyện với các mô hình Nova trong thực tế theo ý muốn.

Chạy ứng dụng của chúng ta trên Chainlit
Các mô hình tạo hình ảnh và video cũng có sẵn qua API. Bạn có thể tham khảo tài liệu để xem các script minh họa cách sử dụng chúng.
Kết luận
Các mô hình Amazon Nova thể hiện một bước tiến trong hệ sinh thái mô hình nền tảng, kết hợp độ chính xác tối tân, tốc độ, hiệu quả chi phí và khả năng đa phương thức. Khi bộ sản phẩm LLM của Amazon phát triển với những sản phẩm mới, nó đang trở thành lựa chọn mạnh mẽ để xây dựng các ứng dụng có chi phí phải chăng và dễ mở rộng trên nền tảng AWS.
Cho dù bạn đang phát triển các ứng dụng AI dạng tác tử, tạo chatbot cho dịch vụ khách hàng hay khám phá với vai trò nhà phát triển, việc thử nghiệm các mô hình Nova rất đáng để trải nghiệm. Đồng thời, việc đào sâu kiến thức về AWS, Bedrock và các công cụ LLM của Amazon cũng mang lại lợi ích lớn.
Trong bài viết này, chúng ta đã đề cập các khía cạnh chính của những mô hình này, cách thử nghiệm chúng và cách xây dựng một ứng dụng AI dạng tác tử cơ bản bằng các mô hình Nova.
Học viên cao học ngành Trí tuệ nhân tạo và chuyên viên biên tập kỹ thuật AI. Tôi chia sẻ những góc nhìn về công nghệ AI mới nhất, giúp phổ biến nghiên cứu ML và đơn giản hóa các chủ đề AI phức tạp để bạn luôn đi đầu.

Amazon đã ra mắt một bộ mô hình nền tảng tối tân được thiết kế cho nhu cầu sử dụng quy mô lớn với chi phí phải chăng. Nova hiện gia nhập hệ sinh thái LLM của Amazon, tích hợp với dịch vụ Amazon Bedrock, và hỗ trợ nhiều phương thức như tạo văn bản, hình ảnh và video.
Trong bài viết này, tôi sẽ giới thiệu tổng quan về các mô hình Amazon Nova mới, giải thích cách truy cập chúng qua dịch vụ Bedrock, nêu bật năng lực và lợi ích của từng mô hình, và minh họa cách sử dụng trong thực tế, bao gồm tích hợp vào một ứng dụng đa tác tử.