Qwen3-Next-80B-A3B ve diğer Qwen modellerini gerçek dünya performans metriklerine odaklanarak yan yana karşılaştıran bir Streamlit uygulamasını nasıl kuracağınızı öğrenin.
Qwen ekibi yakın zamanda hibrit Mixture-of-Experts (MoE) mimarisi kullanarak gelişmiş akıl yürütme, ultra uzun bağlam işleme ve olağanüstü çıkarım hızını birleştiren Qwen3-Next-80B-A3B modelini piyasaya sürdü.
Bu rehberde, Qwen3-Next-80B-A3B’nin Qwen3-30B-A3B gibi önceki Qwen modellerine kıyasla pratik, gerçek dünya görevlerinde nasıl performans gösterdiğine odaklanacağım. Soyut kıyaslamalar yerine, akıl yürütme, kod ve ultra uzun belge istemleri dahil olmak üzere uygulamalı, yan yana testler yapacağız; böylece hız, çıktı kalitesi ve GPU bellek kullanımı arasındaki ödünleşimleri görebileceksiniz.
Adım adım, size şunları nasıl yapacağınızı göstereceğim:
OpenRouter API aracılığıyla, sıfır kurulumla Qwen3-Next-80B-A3B ve Qwen3-30B-A3B ile erişim ve etkileşim kurmak
Model yanıtları, gecikme ve kaynak kullanımını anında, yan yana karşılaştırmak için bir Streamlit uygulaması oluşturmak
Modellerin gerçek sınırlarını test etmek için ultra uzun bağlam geri getirme deneyleri (100K+ token) çalıştırmak
Gecikme, token/sn ve VRAM kullanımı gibi gerçek dünya performans metriklerini analiz etmek.
Sonunda, uygulamanız şöyle görünecek:
Qwen3-Next Nedir?
Qwen3-Next, 80B parametreli bir Mixture-of-Experts (MoE) modelidir. Pratikte, token başına yalnızca 3B parametreyi etkinleştirir; bu da, eski yoğun modellere (ör. Qwen3-32B) kıyasla eğitimi on kat daha ucuz, çalıştırması on kat daha hızlı hale getirirken kalite açısından onlara eşleşir veya üstün gelir.
Bu modeldeki bazı temel gelişmeler şunlardır:
Hibrit mimari: Qwen3-Next, Gated DeltaNet (hızlı doğrusal dikkat için) ve Gated Attention (derin hatırlama için) yöntemlerini %75:%25 oranında harmanlayarak her iki yaklaşımın güçlü yanlarını birleştirir.
Ultra Seyrek MoE: 512 uzman kullanır ancak çıkarım başına yalnızca 10+1’ini etkinleştirir; yoğun LLM’lere kıyasla hesaplamayı %90’ın üzerinde azaltır
Çoklu token tahmini: Bu model, özellikle akış veya sohbet senaryolarında büyük hız kazançları için spekülatif çözümleme destekler.
Aşırı uzun bağlam: 256K token’a kadar yerel olarak (YaRN ölçekleme ile 1M+) minimum performans düşüşüyle işler; uzun kitaplar, kod depoları vb. için idealdir.
Qwen3-Next-80B-A3B-Instruct: Bu model genel amaçlı sohbet, kodlama ve açık UY için tasarlanmıştır.
Qwen3-Next-80B-A3B-Thinking: Bu model ise gelişmiş akıl yürütme, düşünce zinciri ve araştırma iş akışları için kullanılabilir.
Demo: OpenRouter API ile Qwen3-Next ile Soru-Cevap ve Akıl Yürütme
Bu bölümde, etkileşimli bir Soru-Cevap ve akıl yürütme asistanı oluşturmak için OpenRouter API’si üzerinden Qwen3-Next modelinin nasıl kullanılacağını göstereceğim.
İşleyiş şu şekilde:
Metin kutusuna bir soru girin veya uzun bir PDF belgesini sürükleyip bırakın.
Maksimum token boyutunu ve açılır menüden model adını seçin
Çıktıları doğrudan karşılaştırmak için iki modeli anında yan yana sorgulayın.
Her çalışma için yanıt süresi (gecikme), saniye başına token ve çıktı uzunluğu gibi ayrıntılı metrikleri görüntüleyin; böylece pratik senaryolarda hem performansı hem de verimliliği anlayın.
Adım 1: Önkoşullar
Bu demoyu çalıştırmadan önce, tüm önkoşulların hazır olduğundan emin olalım.
Adım 1.1: İçe aktarımlar
Öncelikle, aşağıdaki içe aktarımların kurulu olduğundan emin olun:
Bu komut, uygulamayı oluşturmak için gereken tüm temel bağımlılıkları kurar: arayüz için Streamlit, API çağrıları için requests ve PDF belge çıkarımı için pypdf.
Adım 1.2: OpenRouter API anahtarını ayarlama
Qwen3-Next modeli resmi Qwen API’si (AlibabaCloud), HuggingFace ve Ollama (kuantize sürüm) üzerinden de kullanılabilir. Bu öğreticide, tek bir API anahtarıyla birden fazla modele erişmenizi sağlayan OpenRouter kullandım. Qwen3-next-80b-a3b-instruct modeli için API anahtarınızı şu şekilde ayarlayın:
Models sekmesine gidin ve “Qwen3-next-80b-a3b-instruct” ve “Qwen3-30B-A3B” modellerini arayın. Uygulamanıza göre Thinking ve Instruct varyantları arasında seçim yapabilirsiniz. Bu öğreticide iki Instruct model varyantını karşılaştırıyorum.
Aşağı kaydırın ve Create API Key öğesine tıklayın. Anahtar için bir ad ve kredi limiti (isteğe bağlı) girin ve Create butonuna basın. Bu API anahtarını ileride kullanmak üzere kaydedin.
Ardından Credits sekmesine gidin ve kart ya da banka bilgilerinizi ekleyin. Amazon Pay veya kripto ile de ödeme yapabilirsiniz. Bu demo için yaklaşık 8$ ekledim ve yeterli oldu.
Şimdi, uygulamayı çalıştırmadan önce API anahtarınızı bir ortam değişkeni olarak ayarlayın:
Karşılaştırmak istediğimiz modelleri yapılandırarak başlıyoruz. Her model, bir tanımlayıcı (API çağrılarında kullanılır), toplam parametre sayısı ve etkin parametre sayısıyla tanımlanır.
import streamlit as st
import requests
import time
import PyPDF2
MODEL_CONFIG ={"Qwen3-Next-80B-A3B":{"id":"qwen/qwen3-next-80b-a3b-instruct","params_billion":80,"active_params_billion":3},"Qwen3-30B-A3B":{"id":"qwen/qwen3-30b-a3b-instruct-2507","params_billion":30,"active_params_billion":3},"Qwen3-30B-A3B":{"id":"qwen/qwen3-next-80b-a3b-thinking","params_billion":30,"active_params_billion":3},}Altyapı:
Streamlit web uygulamasını oluşturmak için gerekli kitaplıkları içe aktarıyoruz; arayüz için streamlit, API çağrıları için requests, zamanlama için time ve PDF metin çıkarımı için PyPDF2 gibi.
Ardından, uygulama genelinde farklı Qwen3 modellerini kolayca genişletebilmek için benzersiz kimliklerini (API çağrıları için) ve parametre sayılarını içeren MODEL_CONFIG sözlüğünü tanımlıyoruz.
Adım 3: Yardımcı İşlevler
Sonrasında arka uç için birkaç yardımcı işlev tanımlıyoruz. Bunlar, bellek gereksinimlerinin tahmini, OpenRouter’a gerçek zamanlı API çağrıları yapılması ve yüklenen PDF’lerden metin çıkarılması işlevlerini içerir.
estimate_vram() işlevi: Bu işlev, modelin yoğun mu yoksa MoE (Mixture-of-Experts) mi olduğuna göre bir modeli çalıştırmak için gereken GPU VRAM’ini tahmin eder. MoE modeller için toplam ve etkin parametreleri dikkate alır ve yönlendirme ile sistem kullanımına ilişkin ek yükler ekler.
query_openrouter() işlevi: Bu işlev, OpenRouter üzerinde barındırılan seçili bir LLM modeline istem göndermek ve yanıtı almakla sorumludur. Uçtan uca API çağrı süresini ölçer, işlenen token sayısı gibi faydalı metrikleri çıkarır ve saniye başına token üretim hızını hesaplar.
Burada raporlanan gecikmenin yalnızca model çıkarım hızını değil; ağ, kuyruk ve sunucu tarafı gecikmelerin tamamını içerdiğini unutmayın. Bu nedenle, API yükü ve internet koşullarına bağlı olarak dalgalanabilen gerçek dünya uçtan uca yanıt verebilirliğini yansıtır.
extract_pdf_text() işlevi: Bu işlev, kullanıcıların modeller için girdi bağlamı olarak PDF yükleyip analiz edebilmesini sağlar. PyPDF2 kullanarak PDF belgesini ayrıştırır ve çok uzun belgeler için token açısından güvenli bir sınıra kadar ham metni çıkarır. Ayrıştırma başarısız olursa bir hata mesajı döndürür.
Bu yardımcı işlevler, verimli bellek kullanımı, güvenilir API tabanlı çıkarım ve sorunsuz bağlam çıkarımı sağlayarak akıcı bir kullanıcı deneyimi sunar.
Adım 4: Streamlit Uygulaması
Tüm çekirdek bileşenler hazır olduğuna göre artık Streamlit uygulamamızı oluşturabiliriz.
Adım 4.1: Özel CSS
Kullanıcıya dönük iş akışını oluşturmanın ilk adımı görsel tasarım ve yerleşimdir. Burada Streamlit sayfasını yapılandırıyor ve düzenli bir görünüm için özel CSS enjekte ediyoruz.
Hem Streamlit’in yapılandırma seçeneklerini hem de özel CSS stil parametrelerini kullanıyoruz. st.set_page_config çağrısı, sayfa başlığını ve yan yana çıktı için geniş bir yerleşimi ayarlar. Önemli UI öğelerini biçimlendirmek için özel CSS, st.markdown ile enjekte edilir.
.main-header başlığı ortalar ve renklendirir, .metric-card ve .output-box metriklerin ve çıktının gösterimini iyileştirir ve .model-header bir gradyanla model yanıtlarını görsel olarak ayırır. Son st.markdown bloğu bir başlık ve kısa bir uygulama açıklaması oluşturur.
Adım 4.2: Girdi bölümü
Girdi bölümünü, kullanıcılara iki sezgisel seçenek sunacak şekilde tasarladık: bağlam olarak uzun bir PDF yüklemek veya doğrudan özel bir soru yazmak.
st.markdown("### Input")with st.container():
col_upload, col_text = st.columns([2,3])with col_upload:
uploaded_pdf = st.file_uploader("Upload PDF for context",type=["pdf"],help="Upload a PDF document to provide context for your question")with col_text:
user_question = st.text_area("Ask a question:",
height=100,
max_chars=12000,
placeholder="Enter your question here...",help="Ask any question or provide a topic to analyze")Altyapı:
Bu girdi bölümü, yan yana iki sütun gösterir: ilk sütun, kullanıcıların bağlam dokümanları eklemesi için bir PDF yükleyici sağlar; ikinci sütun ise soru veya konu girişi için bir metin alanı sunar. Bu arayüz, kullanıcıların bir PDF yüklemesine, bir soru yazmasına veya her ikisini birlikte aşağı akıştaki model karşılaştırmasına girdi olarak kullanmasına imkân tanır.
Adım 4.3: Model seçimi
Model seçimi bölümü, kullanıcıların hangi Qwen modellerini karşılaştıracakları ve model yanıtlarının ne kadar uzun olacağı üzerinde tam kontrol sağlar. Belge bağlamı ayarlandıktan sonra, kullanıcılar açılır menüden kolayca iki modeli ve istenen maksimum yanıt uzunluğunu (token cinsinden) seçebilir; böylece kısa ve uzun biçimli çıktılarla rahatça deney yapabilirler.
context =""if uploaded_pdf:with st.spinner(" Extracting PDF text..."):
context = extract_pdf_text(uploaded_pdf)
st.success(f" PDF loaded: {len(context)//1000}K characters extracted.")
st.markdown("### Model Selection")
model_names =list(MODEL_CONFIG.keys())
col1, col2, col3 = st.columns([2,2,1])with col1:
model1 = st.selectbox("Model A",
model_names,
index=0,help="Select the first model to compare")with col2:
model2 = st.selectbox("Model B",
model_names,
index=1iflen(model_names)>1else0,help="Select the second model to compare")with col3:
max_tokens = st.selectbox("Max Tokens",[512,1024,2048,4096],
index=2,help="Maximum length of response (higher = longer responses). Use 2048+ for reasoning questions.")Altyapı:
Yukarıdaki kod, önce yardımcı işlevi kullanarak yüklenen bir PDF’den metin çıkarır. Ardından üç açılır menü gösterir: ikisi karşılaştırılacak Qwen modellerini (veya uygulamaya göre herhangi bir modeli) seçmek, biri de yanıtların maksimum token sınırını belirlemek içindir.
Not: Token sınırı maksimum çıktı uzunluğunu kontrol eder. Karmaşık veya çok adımlı akıl yürütme görevleri için daha yüksek bir sınır belirlemek, modelin eksiksiz bir yanıt üretebilmesini sağlar.
Adım 4.4: Gönderim
Bu adım, ana model karşılaştırma mantığını uygular. Kullanıcı "Gönder & Modelleri Karşılaştır" düğmesine tıkladığında, uygulama girdiyi doğrular, bağlam duyarlı bir istem oluşturur ve seçilen modellere yan yana sorgular başlatır
st.markdown("---")
col_btn1, col_btn2, col_btn3 = st.columns([1,2,1])with col_btn2:if st.button("Submit & Compare Models",type="primary", use_container_width=True):ifnot user_question andnot uploaded_pdf:
st.warning(" Please enter a question or upload a PDF.")else:if context:
base_prompt =f"DOCUMENT:\n{context}\n\nQUESTION: {user_question or'Summarize the above document.'}"else:
base_prompt = user_question
prompt =f"""Please provide a detailed and thorough response. Think step by step and explain your reasoning clearly.
{base_prompt}
Please provide a comprehensive answer with clear reasoning and examples where appropriate."""
st.markdown("### Results")
col_left, col_right = st.columns(2)
models_to_process =[(model1, col_left,"Model A"),(model2, col_right,"Model B")]for model_key, col, model_label in models_to_process:with col:
st.markdown(f'<div class="model-header">{model_label}: {model_key}</div>', unsafe_allow_html=True)
progress_bar = st.progress(0)
status_text = st.empty()try:
progress_bar.progress(25)
status_text.text("Initializing model...")
model_info = MODEL_CONFIG[model_key]
vram_estimate = estimate_vram(
model_info["params_billion"],
active_params_billion=model_info["active_params_billion"])
progress_bar.progress(50)
status_text.text("Querying model...")
result = query_openrouter(model_info["id"], prompt, max_tokens=max_tokens)
progress_bar.progress(100)
status_text.text("Complete!")if"error"in result:
st.error(f"Error: {result['error']}")else:
st.markdown(f'''
<div class="metric-card">
<strong>Performance Metrics</strong><br>
<strong>Latency:</strong> {result['latency']:.2f}s<br>
<strong>Speed:</strong> {result['tokens_per_sec']:.2f} tokens/sec<br>
<strong>Output tokens:</strong> {result['output_tokens']}<br>
<strong>Prompt tokens:</strong> {result['prompt_tokens']}<br>
<strong>Est. VRAM:</strong> {vram_estimate} GB
</div>
''', unsafe_allow_html=True)
st.markdown("** Response:**")
st.markdown(f'''
<div class="output-box">
{result["output"]if result["output"]else"<em>No output received</em>"}
</div>
''', unsafe_allow_html=True)except Exception as e:
st.error(f" Unexpected error: {str(e)}")finally:
progress_bar.empty()
status_text.empty()
st.markdown("---")Altyapı:
Gönderim işleyicisi kıyaslama iş akışını şu şekilde düzenler:
Kullanıcı "Gönder & Modelleri Karşılaştır" düğmesine tıkladığında, uygulama bir soru veya PDF olup olmadığını kontrol eder ve hiçbiri yoksa uyarı verir.
Ardından, ayrıntılı ve adım adım yanıtlar için talimatlar ekleyerek belge bağlamı ve kullanıcı sorusundan bir istem oluşturur.
Sonuç alanı, model çıktılarının doğrudan, yan yana karşılaştırılması için iki sütuna bölünür.
Her model için bir ilerleme çubuğu gösterir, VRAM kullanımını tahmin eder, OpenRouter API’sini sorgular ve model isteği işlerken durum mesajlarını günceller.
Tamamlandıktan sonra, kartlarda performans metrikleri olarak gecikme, saniye başına token, token sayımları ve VRAM kullanımını görüntüler.
Qwen3-Next’i Test Etme
Qwen3-Next modelinin gerçek performansını test etmek için birkaç deney yaptım.
Test 1: Uzun bağlamlı Soru-Cevap
Qwen3-Next’in uzun bağlam performansını değerlendirmek için, şimdiye kadar yazılmış en uzun ve en karmaşık romanlardan biri olan Project Gutenberg “Savaşve Barış” e-Kitabını kullanarak birkaç uygulamalı deney yaptım.
Aşağıda, modellerin ultra uzun bağlamı nasıl ele aldığını, halüsinasyonlardan nasıl kaçındığını ve yüksek kaliteli özetler ürettiğini gösteren üç test vakası yer alıyor.
Karakter takibi
İlk olarak, her iki modelden de romanın hem ilk hem de son bölümlerinde yer alan tüm ana karakterleri belirlemelerini ve rollerinin hikâye boyunca nasıl değiştiğini kısaca açıklamalarını istedim.
İstem: “Romanın hem ilk hem de son bölümlerinde görünen tüm ana karakterleri listeleyin. Zaman içinde rollerinin nasıl değiştiğini kısaca açıklayın.”
Bu soru, modelin tüm metni işlemesini ve karakter arklarını doğru şekilde takip etmesini gerektirir. Her iki model de oldukça duyarlı olsa da, Qwen3 Next’in yanıtı daha temiz ve kitabın bölümlerine daha iyi uyarlanmıştı.
Halüsinasyon testi
Sonra, modellerin gerçek içeriği yanlış bilgiden ayırt edip edemeyeceğini görmek istedim. Her iki modele de Savaş ve Barışta geçmeyen, ancak Tolstoy’un başka bir romanından meşhur bir ifadeyi verdim.
İstem:“Romanda ‘Mutlu aileler birbirine benzer; her mutsuz ailenin mutsuzluğu kendine göredir’ ifadesi geçiyor mu? Geçiyorsa metnin neresinde yer alıyor?”
Bu ifade aslında Anna Karenina’dandır, Savaş ve Barış’tan değil. İdeal bir model "Hayır" yanıtını vererek güçlü olgusal doğruluk ve düşük halüsinasyon gösterir. Etkileyici bir şekilde, Qwen3-Next doğru yanıtı verirken Qwen3 30B model yanlış bir ifade döndürdü.
Özetleme
Son olarak, her iki modelden de romanı 300 kelimede özetlemelerini isteyerek özetleme yeteneklerini test ettim.
İstem:“‘Savaş ve Barış’ romanını, Pierre Bezukhov’un kişisel yolculuğuna odaklanarak 300 kelimede özetleyin.”
Özet değerlendirmesi kısmen öznel olmakla birlikte, Qwen3-Next’in çıktısını daha yapılandırılmış, tutarlı ve sezgisel buldum. Özet yalnızca özlü değildi, aynı zamanda Pierre’in karakterinin dönüşümünü de net biçimde yansıtıyordu.
Örnek 2: Çok adımlı akıl yürütme ve mantık
Her iki modelin gelişmiş akıl yürütme yeteneklerini test etmek için, bellekten öte adım adım çıkarım ve dikkatli eleme gerektiren karmaşık, çok adımlı mantık bulmacalarıyla meydan okudum.
İstem: “Düğün resepsiyonunda beş misafir var: Colin, Emily, Kate, Fred ve Irene. Akşam yemeği masasında nereye oturacaklarından emin değiller. Gelinin annesine soruyorlar ve şu yanıtı alıyorlar: "Hatırladığım kadarıyla, Colin Kate’in yanında değil, Emily Fred veya Kate’in yanında değil. Ne Kate ne de Emily, Irene’in yanında değil. Ve Fred, Irene’in soluna oturmalı." Masanın karşı tarafından onlara baktığınızda, misafirleri soldan sağa doğru doğru şekilde oturtabilir misiniz?
Akıl yürütmenizi adım adım açıklayın.”
Bu bilmece, birkaç kısıtı analiz etmeyi ve tek olası oturma sırasını çıkarmayı gerektiriyordu:
Doğru cevap: Emily, Colin, Irene, Fred, Kate
Qwen3-Next çıktısı: Kate, Fred, Irene, Colin, Emily (neredeyse doğru, ancak tersine çevrilmiş)
Qwen3-30B çıktısı: Geçerli bir yanıt bulunamadı
Hiçbir model tam doğru sırayı bulamasa da, Qwen3-Next yalnızca sıralamayı ters çevirerek çok yaklaştı; 30B model ise hiç çözüm üretemedi. Bu da Qwen3-Next’in, bazı uç durumlar zorlayıcı kalsa da, çok adımlı çıkarım yapabildiğini gösteriyor.
Çıkarımsal eleme
Ardından, modelleri klasik “Zebra bulmacası”ndan esinlenen bir çıkarım bilmecesiyle test ettim.
İstem: “Dört kişi (Lisa, Mike, Nora ve Omar) farklı bir meyve (elma, muz, kiraz, hurma) aldı ve farklı bir araba (Ford, Honda, Kia, Mazda) kullandı.
Lisa muz almadı.
Ford sürücüsü kiraz aldı.
Mike Honda kullandı.
Nora elma aldı ve Mazda kullanmadı.
Kia sürücüsü hurma aldı.
Omar Ford kullanmadı.
Kim hangi meyveyi aldı ve hangi arabayı kullandı? Çalışmanızı gösterin.”
Bu problem, verilen kısıtlarla kasten çözümsüzdür; ancak modellerin döndürdüğü sonuçlar şöyledir:
Qwen3-Next çıktısı: Geçerli bir atama olmadığını doğru şekilde belirledi.
Qwen3-30B çıktısı: Mantıksal bir döngüye takıldı ve verilen çıktı token sayısı içinde sonuca varamadı.
Bu örnek, Qwen3-Next’in çıkarımsal akıl yürütme yapabildiğini ve çözüm olmadığında bunu tanıyabildiğini gösterir.
Sonuç
Bu öğretici, Qwen3-Next-80B-A3B’yi Soru-Cevap ve akıl yürütme görevlerinde nasıl kullanacağınızı ve onu bir Streamlit uygulamasında Qwen3-30B-A3B ile yan yana nasıl kıyaslayacağınızı gösteriyor. Sonuçlar, Qwen3-Next’in ultra uzun belgeleri işleme, hızlı çıkarım sağlama ve karmaşık akıl yürütme problemlerinde bile çıktı kalitesini koruma konusundaki güçlü yanlarını vurguluyor.
ML (Üretken Yapay Zekâ) alanında Google Developers Uzmanıyım, Kaggle 3x Expert unvanına sahibim ve 3+ yıllık teknoloji deneyimiyle Women Techmakers Elçisiyim. 2020'de bir sağlık teknolojileri girişiminin kurucu ortağı oldum ve Georgia Tech'te makine öğrenmesi alanında uzmanlaşarak bilgisayar bilimleri yüksek lisansı yapıyorum.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Qwen ekibi yakın zamanda hibrit Mixture-of-Experts (MoE) mimarisi kullanarak gelişmiş akıl yürütme, ultra uzun bağlam işleme ve olağanüstü çıkarım hızını birleştiren Qwen3-Next-80B-A3B modelini piyasaya sürdü.
Bu rehberde, Qwen3-Next-80B-A3B’nin Qwen3-30B-A3B gibi önceki Qwen modellerine kıyasla pratik, gerçek dünya görevlerinde nasıl performans gösterdiğine odaklanacağım. Soyut kıyaslamalar yerine, akıl yürütme, kod ve ultra uzun belge istemleri dahil olmak üzere uygulamalı, yan yana testler yapacağız; böylece hız, çıktı kalitesi ve GPU bellek kullanımı arasındaki ödünleşimleri görebileceksiniz.
Adım adım, size şunları nasıl yapacağınızı göstereceğim:
Sonunda, uygulamanız şöyle görünecek:
Qwen3-Next Nedir?
Qwen3-Next, 80B parametreli bir Mixture-of-Experts (MoE) modelidir. Pratikte, token başına yalnızca 3B parametreyi etkinleştirir; bu da, eski yoğun modellere (ör. Qwen3-32B) kıyasla eğitimi on kat daha ucuz, çalıştırması on kat daha hızlı hale getirirken kalite açısından onlara eşleşir veya üstün gelir.
Bu modeldeki bazı temel gelişmeler şunlardır:
Kaynak: Qwen
Qwen 3 Next Model iki varyantta mevcuttur:
Demo: OpenRouter API ile Qwen3-Next ile Soru-Cevap ve Akıl Yürütme
Bu bölümde, etkileşimli bir Soru-Cevap ve akıl yürütme asistanı oluşturmak için OpenRouter API’si üzerinden Qwen3-Next modelinin nasıl kullanılacağını göstereceğim.
İşleyiş şu şekilde:
Adım 1: Önkoşullar
Bu demoyu çalıştırmadan önce, tüm önkoşulların hazır olduğundan emin olalım.
Adım 1.1: İçe aktarımlar
Öncelikle, aşağıdaki içe aktarımların kurulu olduğundan emin olun:
Bu komut, uygulamayı oluşturmak için gereken tüm temel bağımlılıkları kurar: arayüz için
Streamlit, API çağrıları içinrequestsve PDF belge çıkarımı içinpypdf.Adım 1.2: OpenRouter API anahtarını ayarlama
Qwen3-Next modeli resmi Qwen API’si (AlibabaCloud), HuggingFace ve Ollama (kuantize sürüm) üzerinden de kullanılabilir. Bu öğreticide, tek bir API anahtarıyla birden fazla modele erişmenizi sağlayan OpenRouter kullandım. Qwen3-next-80b-a3b-instruct modeli için API anahtarınızı şu şekilde ayarlayın:
Şimdi, uygulamayı çalıştırmadan önce API anahtarınızı bir ortam değişkeni olarak ayarlayın:
Adım 2: Model Yapılandırmasını Ayarlama
Karşılaştırmak istediğimiz modelleri yapılandırarak başlıyoruz. Her model, bir tanımlayıcı (API çağrılarında kullanılır), toplam parametre sayısı ve etkin parametre sayısıyla tanımlanır.
Streamlit web uygulamasını oluşturmak için gerekli kitaplıkları içe aktarıyoruz; arayüz için streamlit, API çağrıları için requests, zamanlama için time ve PDF metin çıkarımı için PyPDF2 gibi.
Ardından, uygulama genelinde farklı Qwen3 modellerini kolayca genişletebilmek için benzersiz kimliklerini (API çağrıları için) ve parametre sayılarını içeren
MODEL_CONFIGsözlüğünü tanımlıyoruz.Adım 3: Yardımcı İşlevler
Sonrasında arka uç için birkaç yardımcı işlev tanımlıyoruz. Bunlar, bellek gereksinimlerinin tahmini, OpenRouter’a gerçek zamanlı API çağrıları yapılması ve yüklenen PDF’lerden metin çıkarılması işlevlerini içerir.
Her işlevin iş hattına nasıl uyduğunu anlayalım:
estimate_vram()işlevi: Bu işlev, modelin yoğun mu yoksa MoE (Mixture-of-Experts) mi olduğuna göre bir modeli çalıştırmak için gereken GPU VRAM’ini tahmin eder. MoE modeller için toplam ve etkin parametreleri dikkate alır ve yönlendirme ile sistem kullanımına ilişkin ek yükler ekler.query_openrouter()işlevi: Bu işlev, OpenRouter üzerinde barındırılan seçili bir LLM modeline istem göndermek ve yanıtı almakla sorumludur. Uçtan uca API çağrı süresini ölçer, işlenen token sayısı gibi faydalı metrikleri çıkarır ve saniye başına token üretim hızını hesaplar.Burada raporlanan gecikmenin yalnızca model çıkarım hızını değil; ağ, kuyruk ve sunucu tarafı gecikmelerin tamamını içerdiğini unutmayın. Bu nedenle, API yükü ve internet koşullarına bağlı olarak dalgalanabilen gerçek dünya uçtan uca yanıt verebilirliğini yansıtır.
extract_pdf_text()işlevi: Bu işlev, kullanıcıların modeller için girdi bağlamı olarak PDF yükleyip analiz edebilmesini sağlar. PyPDF2 kullanarak PDF belgesini ayrıştırır ve çok uzun belgeler için token açısından güvenli bir sınıra kadar ham metni çıkarır. Ayrıştırma başarısız olursa bir hata mesajı döndürür.Bu yardımcı işlevler, verimli bellek kullanımı, güvenilir API tabanlı çıkarım ve sorunsuz bağlam çıkarımı sağlayarak akıcı bir kullanıcı deneyimi sunar.
Adım 4: Streamlit Uygulaması
Tüm çekirdek bileşenler hazır olduğuna göre artık Streamlit uygulamamızı oluşturabiliriz.
Adım 4.1: Özel CSS
Kullanıcıya dönük iş akışını oluşturmanın ilk adımı görsel tasarım ve yerleşimdir. Burada Streamlit sayfasını yapılandırıyor ve düzenli bir görünüm için özel CSS enjekte ediyoruz.
Hem Streamlit’in yapılandırma seçeneklerini hem de özel CSS stil parametrelerini kullanıyoruz.
st.set_page_configçağrısı, sayfa başlığını ve yan yana çıktı için geniş bir yerleşimi ayarlar. Önemli UI öğelerini biçimlendirmek için özel CSS,st.markdownile enjekte edilir..main-headerbaşlığı ortalar ve renklendirir,.metric-cardve.output-boxmetriklerin ve çıktının gösterimini iyileştirir ve.model-headerbir gradyanla model yanıtlarını görsel olarak ayırır. Sonst.markdownbloğu bir başlık ve kısa bir uygulama açıklaması oluşturur.Adım 4.2: Girdi bölümü
Girdi bölümünü, kullanıcılara iki sezgisel seçenek sunacak şekilde tasarladık: bağlam olarak uzun bir PDF yüklemek veya doğrudan özel bir soru yazmak.
Bu girdi bölümü, yan yana iki sütun gösterir: ilk sütun, kullanıcıların bağlam dokümanları eklemesi için bir PDF yükleyici sağlar; ikinci sütun ise soru veya konu girişi için bir metin alanı sunar. Bu arayüz, kullanıcıların bir PDF yüklemesine, bir soru yazmasına veya her ikisini birlikte aşağı akıştaki model karşılaştırmasına girdi olarak kullanmasına imkân tanır.
Adım 4.3: Model seçimi
Model seçimi bölümü, kullanıcıların hangi Qwen modellerini karşılaştıracakları ve model yanıtlarının ne kadar uzun olacağı üzerinde tam kontrol sağlar. Belge bağlamı ayarlandıktan sonra, kullanıcılar açılır menüden kolayca iki modeli ve istenen maksimum yanıt uzunluğunu (token cinsinden) seçebilir; böylece kısa ve uzun biçimli çıktılarla rahatça deney yapabilirler.
Yukarıdaki kod, önce yardımcı işlevi kullanarak yüklenen bir PDF’den metin çıkarır. Ardından üç açılır menü gösterir: ikisi karşılaştırılacak Qwen modellerini (veya uygulamaya göre herhangi bir modeli) seçmek, biri de yanıtların maksimum token sınırını belirlemek içindir.
Not: Token sınırı maksimum çıktı uzunluğunu kontrol eder. Karmaşık veya çok adımlı akıl yürütme görevleri için daha yüksek bir sınır belirlemek, modelin eksiksiz bir yanıt üretebilmesini sağlar.
Adım 4.4: Gönderim
Bu adım, ana model karşılaştırma mantığını uygular. Kullanıcı "Gönder & Modelleri Karşılaştır" düğmesine tıkladığında, uygulama girdiyi doğrular, bağlam duyarlı bir istem oluşturur ve seçilen modellere yan yana sorgular başlatır
Gönderim işleyicisi kıyaslama iş akışını şu şekilde düzenler:
Qwen3-Next’i Test Etme
Qwen3-Next modelinin gerçek performansını test etmek için birkaç deney yaptım.
Test 1: Uzun bağlamlı Soru-Cevap
Qwen3-Next’in uzun bağlam performansını değerlendirmek için, şimdiye kadar yazılmış en uzun ve en karmaşık romanlardan biri olan Project Gutenberg “Savaş ve Barış” e-Kitabını kullanarak birkaç uygulamalı deney yaptım.
Aşağıda, modellerin ultra uzun bağlamı nasıl ele aldığını, halüsinasyonlardan nasıl kaçındığını ve yüksek kaliteli özetler ürettiğini gösteren üç test vakası yer alıyor.
Karakter takibi
İlk olarak, her iki modelden de romanın hem ilk hem de son bölümlerinde yer alan tüm ana karakterleri belirlemelerini ve rollerinin hikâye boyunca nasıl değiştiğini kısaca açıklamalarını istedim.
İstem: “Romanın hem ilk hem de son bölümlerinde görünen tüm ana karakterleri listeleyin. Zaman içinde rollerinin nasıl değiştiğini kısaca açıklayın.”
Bu soru, modelin tüm metni işlemesini ve karakter arklarını doğru şekilde takip etmesini gerektirir. Her iki model de oldukça duyarlı olsa da, Qwen3 Next’in yanıtı daha temiz ve kitabın bölümlerine daha iyi uyarlanmıştı.
Halüsinasyon testi
Sonra, modellerin gerçek içeriği yanlış bilgiden ayırt edip edemeyeceğini görmek istedim. Her iki modele de Savaş ve Barışta geçmeyen, ancak Tolstoy’un başka bir romanından meşhur bir ifadeyi verdim.
İstem: “Romanda ‘Mutlu aileler birbirine benzer; her mutsuz ailenin mutsuzluğu kendine göredir’ ifadesi geçiyor mu? Geçiyorsa metnin neresinde yer alıyor?”
Bu ifade aslında Anna Karenina’dandır, Savaş ve Barış’tan değil. İdeal bir model "Hayır" yanıtını vererek güçlü olgusal doğruluk ve düşük halüsinasyon gösterir. Etkileyici bir şekilde, Qwen3-Next doğru yanıtı verirken Qwen3 30B model yanlış bir ifade döndürdü.
Özetleme
Son olarak, her iki modelden de romanı 300 kelimede özetlemelerini isteyerek özetleme yeteneklerini test ettim.
İstem: “‘Savaş ve Barış’ romanını, Pierre Bezukhov’un kişisel yolculuğuna odaklanarak 300 kelimede özetleyin.”
Özet değerlendirmesi kısmen öznel olmakla birlikte, Qwen3-Next’in çıktısını daha yapılandırılmış, tutarlı ve sezgisel buldum. Özet yalnızca özlü değildi, aynı zamanda Pierre’in karakterinin dönüşümünü de net biçimde yansıtıyordu.
Örnek 2: Çok adımlı akıl yürütme ve mantık
Her iki modelin gelişmiş akıl yürütme yeteneklerini test etmek için, bellekten öte adım adım çıkarım ve dikkatli eleme gerektiren karmaşık, çok adımlı mantık bulmacalarıyla meydan okudum.
Oturma düzeni mantık bulmacası
Önce modellere bir oturma düzeni bilmecesi verdim:
İstem: “Düğün resepsiyonunda beş misafir var: Colin, Emily, Kate, Fred ve Irene. Akşam yemeği masasında nereye oturacaklarından emin değiller. Gelinin annesine soruyorlar ve şu yanıtı alıyorlar: "Hatırladığım kadarıyla, Colin Kate’in yanında değil, Emily Fred veya Kate’in yanında değil. Ne Kate ne de Emily, Irene’in yanında değil. Ve Fred, Irene’in soluna oturmalı." Masanın karşı tarafından onlara baktığınızda, misafirleri soldan sağa doğru doğru şekilde oturtabilir misiniz?
Akıl yürütmenizi adım adım açıklayın.”
Bu bilmece, birkaç kısıtı analiz etmeyi ve tek olası oturma sırasını çıkarmayı gerektiriyordu:
Hiçbir model tam doğru sırayı bulamasa da, Qwen3-Next yalnızca sıralamayı ters çevirerek çok yaklaştı; 30B model ise hiç çözüm üretemedi. Bu da Qwen3-Next’in, bazı uç durumlar zorlayıcı kalsa da, çok adımlı çıkarım yapabildiğini gösteriyor.
Çıkarımsal eleme
Ardından, modelleri klasik “Zebra bulmacası”ndan esinlenen bir çıkarım bilmecesiyle test ettim.
İstem: “Dört kişi (Lisa, Mike, Nora ve Omar) farklı bir meyve (elma, muz, kiraz, hurma) aldı ve farklı bir araba (Ford, Honda, Kia, Mazda) kullandı.
Kim hangi meyveyi aldı ve hangi arabayı kullandı? Çalışmanızı gösterin.”
Bu problem, verilen kısıtlarla kasten çözümsüzdür; ancak modellerin döndürdüğü sonuçlar şöyledir:
Bu örnek, Qwen3-Next’in çıkarımsal akıl yürütme yapabildiğini ve çözüm olmadığında bunu tanıyabildiğini gösterir.
Sonuç
Bu öğretici, Qwen3-Next-80B-A3B’yi Soru-Cevap ve akıl yürütme görevlerinde nasıl kullanacağınızı ve onu bir Streamlit uygulamasında Qwen3-30B-A3B ile yan yana nasıl kıyaslayacağınızı gösteriyor. Sonuçlar, Qwen3-Next’in ultra uzun belgeleri işleme, hızlı çıkarım sağlama ve karmaşık akıl yürütme problemlerinde bile çıktı kalitesini koruma konusundaki güçlü yanlarını vurguluyor.