Ana içeriğe geç

Amazon Nova Modelleri: Örneklerle Rehber

Yeni Amazon Nova modellerini (Micro, Lite, Pro, Premier, Canvas, Reel), bunlara Bedrock Playground ve API üzerinden nasıl erişileceğini ve çoklu aracılı bir demo uygulamasının nasıl kurulacağını öğrenin.
· 8 dk. oku

Yapay Zeka ile Keşfedin

Amazon, uygun maliyetli geniş ölçekli kullanım için tasarlanmış, son teknoloji temel modellerden oluşan yeni bir paket yayınladı. Nova, Amazon'un LLM ekosistemine katılarak Amazon Bedrock hizmetiyle entegre olur ve metin, görsel ve video üretimi gibi birden fazla modalliteyi destekler.

Bu blog yazısında, yeni Amazon Nova modellerine genel bir bakış sunacak, Bedrock hizmeti aracılığıyla onlara nasıl erişileceğini açıklayacak, her bir modelin yetenekleri ve avantajlarını öne çıkaracak ve çoklu aracılı bir uygulamaya entegrasyon da dahil olmak üzere uygulamalı kullanımını göstereceğim.

Amazon Nova Modelleri Nelerdir?

Amazon’un Nova modelleri, Amazon Bedrock hizmeti üzerinden erişilebilen, merakla beklenen temel modellerdir. Düşük maliyetle hızlı çıkarım, çoklu ortamı anlama ve yaratıcı içerik üretimi gibi çeşitli uygulamalar için tasarlanmıştır. Her bir modeli inceleyelim.

Amazon Nova Micro

Ailenin en hızlı modeli; en yüksek hız ve düşük hesaplama maliyeti sunar. Micro, yalnızca metin üretimi gereken ve saniyede 200 token çıkarım hızına ihtiyaç duyan uygulamalar için en uygunudur.

Micro’nun en iyi kullanım alanlarından bazıları gerçek zamanlı analiz, etkileşimli sohbet botları ve yüksek trafikli metin üretim servisleridir.

Amazon Nova Micro benchmarks

Nova Micro kıyaslamaları. (Kaynak: Amazon)

Amazon Nova Lite

Nova ailesinin maliyet açısından verimli çok modlu üyesi olan Lite, özellikle akıl yürütme ve çeviri görevlerinde, GPT-4o veya Llama gibi muadilleriyle karşılaştırıldığında, hız ve yüksek doğruluk arasında iyi bir denge sunar.

Yüksek hacimli istekleri verimli şekilde işlerken güçlü doğruluğu da koruyabilir. Lite, hızın kritik önemde olduğu ve birden fazla modalliteyi destekleyen bir modelin gerektiği uygulamalar için optimal bir seçenek olabilir.

Amazon Nova Lite benchmarks

Nova Lite kıyaslamaları. (Kaynak: Amazon)

Amazon Nova Pro

Nova ailesinin metin işleme açısından en gelişmiş modeli olan Nova Pro, benzer yeteneklere sahip modellere kıyasla nispeten düşük hesaplama maliyetini korurken etkileyici bir doğruluk sunar.

Amazon’a göre Nova Pro; video özetleme, soru yanıtlama, matematiksel akıl yürütme, yazılım geliştirme ve çok adımlı iş akışlarını yürütebilen yapay zekâ ajanları gibi uygulamalar için uygundur. Micro ve Lite modelleri gibi Nova Pro da şu anda ince ayarı desteklemektedir.

Amazon Nova Pro benchmarks

Nova Pro kıyaslamaları. (Kaynak: Amazon)

Amazon Nova Premier

Ailenin en yetenekli çok modlu modeli olan ve 2025 başlarında gelmesi beklenen bu modelin, Pro modeline kıyasla bir üst seviye olması öngörülüyor.

Amazon Nova Canvas

Canvas, Nova’nın görsel üretimi için çözümüdür. Yüksek kaliteli görseller üretebilir, renk paleti ve stile kontrol imkânı verir ve iç boyama (inpainting), dış boyama (outpainting), görselleri genişletme, stil transferi ve arka plan kaldırma gibi özellikler sunar. Model; pazarlama görselleri, ürün maketleri vb. oluşturmak için verimli görünmektedir.

Amazon Nova Reel

Nova Reel, yüksek kaliteli ve kolayca özelleştirilebilir video çıktıları için tasarlanmış bir video üretim modelidir. Nova Reel, videolarda görsel stil, tempo ve kamera hareketini oluşturup kontrol etmenize olanak tanır. Reel, diğer Nova modellerinde olduğu gibi, uyumlu içerik üretimini sağlayan yerleşik güvenlik kontrolleriyle birlikte gelir.

Amazon Nova Reel

Amazon Bedrock Playground Üzerinden Amazon Nova Modellerine Nasıl Erişilir

Hazır bir kullanıcı arayüzü üzerinden birden fazla modeli test etmek ve karşılaştırmak için Amazon Bedrock Playground’u kullanabilirsiniz.

Amazon CLI ve Bedrock’ın yapılandırılmış ve kullanıma hazır olduğunu varsayacağım. Değilse, Bedrock servislerinin sağladığı modelleri kullanmak için bir ortamın nasıl kurulacağını adım adım anlattığım AWS Çoklu Ajan Orkestratörü eğitimime başvurabilirsiniz. Ayrıca Nils Durner’ın blog yazısı, Bedrock servislerini kurulum sürecinde size ekran görüntüleriyle adım adım rehberlik eder.

Amazon Bedrock Playground

Amazon Bedrock Playground

Nova Micro ve Pro’yu karşılaştırırken iki model arasındaki doğruluk farkının belirgin olmadığını gözlemledim. Micro, metin üretiminde Pro’dan iki kattan daha hızlı olmasına rağmen, çoğu olağan kullanım durumu için yeterli yanıtlar sağlıyor. Öte yandan Pro, biraz daha detaylı ve uzun yanıtlar verme eğiliminde.

Amazon Bedrock API Üzerinden Amazon Nova Modellerine Nasıl Erişilir

API aracılığıyla Nova modellerini kullanmak ve kodunuza entegre etmek için önce AWS hesabınızın, AWS CLI’ın ve modellere erişiminizin düzgün şekilde ayarlandığından emin olun (bu konuda dokümantasyon rehberlik sağlar).

Ardından, Amazon’un Python için SDK’sı olan boto3 kütüphanesini kurun; bu, modelleriyle çalışmanıza olanak tanır.

pip install boto3

Aşağıdakine benzer bir betik kullanarak modellerle programatik olarak etkileşim kurabilirsiniz:

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"])

Nova Micro ve AWS Çoklu Ajan Orkestratörü ile Demo Proje

Şimdi Nova Micro’nun aracılık (agentic) yeteneklerini test etmek için bir demo proje uygulayacağız. AWS Çoklu Ajan Orkestratörü çerçevesini kullanarak iki ajan içeren basitleştirilmiş bir Python uygulaması kuracağız: Python Geliştirici Ajanı ve ML Uzmanı Ajanı. Orkestratörü kurmak isterseniz bu AWS Çoklu Ajan Orkestratörü rehberini kullanabilirsiniz.

Ayrıca uygulama için basit bir kullanıcı arayüzü uygulamak üzere açık kaynak bir Python paketi olan Chainlit’i de kullanacağız. Öncelikle gerekli kütüphaneleri kurun:

chainlit==1.2.0
multi_agent_orchestrator==0.0.18

Gerekli kütüphaneleri içe aktararak başlıyoruz:

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

Çerçeve, gelen bir kullanıcı isteği için en uygun ajanı seçmek üzere bir Sınıflandırıcı kullanır. Sınıflandırıcımız için model olarak “anthropic.claude-3-haiku-20240307-v1:0” kullanıyoruz.

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
)

Ardından, biri Python geliştirici uzmanı, diğeri makine öğrenimi uzmanı olarak hareket eden, Nova Micro tarafından desteklenen iki ajan tanımlıyoruz.

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())

Son olarak, kullanıcı isteklerini ve ajan yanıtlarını işlemek için Chainlit arayüzüne yönelik betiğin ana gövdesini kuruyoruz.

@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()

Ortaya çıkan Chainlit arayüzü, Nova modelleriyle pratikte ve dilediğiniz gibi sohbet etmenize olanak tanır.

Running our app on Chainlit

Uygulamamızın Chainlit üzerinde çalışması

Görsel ve video üretim modelleri de API aracılığıyla kullanılabilir. Bunları nasıl kullanacağınıza dair betikler için dokümantasyona başvurabilirsiniz.

Sonuç

Amazon Nova modelleri, temel model ekosisteminde; son teknoloji doğruluk, hız, maliyet etkinliği ve çok modlu yetenekleri bir araya getiren bir sıçramayı temsil ediyor. Amazon’un LLM paketi yeni ürünlerle büyüdükçe, AWS üzerinde uygun maliyetli ve ölçeklenebilir uygulamalar geliştirmek için güçlü bir seçenek haline geliyor.

İster aracılık yeteneklerine sahip yapay zekâ uygulamaları geliştiriyor, ister müşteri hizmetleri için sohbet botları oluşturuyor ya da bir geliştirici olarak keşfe çıkıyor olun, Nova modelleriyle denemeler yapmak değerli bir deneyimdir. AWS, Bedrock ve Amazon’un LLM araçları hakkında bilginizi derinleştirmeniz de faydalıdır.

Bu yazıda, bu modellerin temel yönlerini, onlarla nasıl deney yapabileceğinizi ve Nova modellerini kullanarak temel bir aracılık yetenekli yapay zekâ uygulamasını nasıl oluşturacağınızı ele aldık.

Hesam Sheikh Hassani

Yazar

Hesam Sheikh Hassani

Yapay Zeka alanında yüksek lisans öğrencisi ve yapay zeka teknik yazarı. En yeni yapay zeka teknolojilerine dair içgörüler paylaşıyorum, ML araştırmalarını erişilebilir kılıyor ve sizi ön planda tutmak için karmaşık YZ konularını sadeleştiriyorum.

Konular

İlgili