Ana içeriğe geç

Pixtral 12B: Uygulamalı Örneklerle Bir Rehber

Mistral’ın Pixtral 12B modelini Le Chat üzerinden etkileşimli olarak ya da La Plateforme’de sunulan API ile programatik olarak nasıl kullanacağınızı öğrenin.
· 8 dk. oku

Yapay Zeka ile Keşfedin

Mistral, 12 milyar parametreli açık kaynaklı büyük dil modeli (LLM) Pixtral 12B’yi yayımladı. Bu, Mistral’ın ilk çok modlu modelidir; yani hem metinleri hem de görselleri işleyebilir.

Pixtral’ın LLM ekosistemine değerli bir katkı olmasının nedenleri:

  • Ön işleme gerekmeden her boyuttaki görseli verimli biçimde işler.
  • 128K bağlam penceresi, karmaşık istemlerin ve çok sayıda görselin ele alınmasına olanak tanır.
  • Yalnızca metin ve çok modlu görevlerde güçlü performans.
  • Ticarileştirilmemiş projelerde ücretsiz, bu da araştırmacılar ve meraklılar için ideal kılar.
  • Apache 2.0 lisansı altında açık kaynak, yapay zekânın demokratikleşmesini destekler.

Bu öğreticide, Pixtral’ı web sohbet arayüzü Le Chat üzerinden ve API ile programatik olarak nasıl kullanacağınıza dair çok sayıda örnek ve adım adım yönlendirme sunacağım. Ancak önce Pixtral’ın temel teorik yönlerine değinelim.

Pixtral 12B Nedir?

Mistral AI, görseller ve metinleri birlikte işlemek üzere tasarlanmış Pixtral 12B’yi kullanıma sundu. 12 milyar parametreyle, grafikler, belgeler veya diyagramlar gibi görsel ve dil karışımı gerektiren görevleri yerine getirebilir.

Her iki formata da derinlemesine hâkimiyet gerektiren ortamlarda kullanışlıdır.

Pixtral 12B’nin kilit özelliklerinden biri, tek bir girdi içinde birden fazla görseli kendi doğal çözünürlüklerinde işleyebilmesidir. Modelin 128.000 belirteçlik bir bağlam penceresi vardır; bu sayede uzun ve karmaşık belgeleri, görselleri veya birden çok veri kaynağını eşzamanlı inceleyebilir. Bu da finansal raporlama veya işletmeler için belge tarama gibi alanlarda faydalıdır.

Pixtral’ın kıyaslamaları

Pixtral, Çok Modlu Bilgi ve Akıl Yürütme ile ilgili görevlerde iyi performans gösterir; özellikle MathVista testinde öne çıkmaktadır. Çok modlu soru-cevap görevlerinde de, özellikle ChartQA’da güçlü bir konuma sahiptir.

Pixtral benchmarks

Kaynak: Mistral AI

Buna karşılık, yönerge izleme ve metin tabanlı görevlerde Claude-3 Haiku ve Gemini Flash-8B gibi diğer modeller rekabetçi ya da üstün performans sergileyebilir. Bu da Pixtral 12B’nin çok modlu ve görsel akıl yürütmede başarılı olduğunu, ancak yalnızca metin tabanlı görevlerde lider olmayabileceğini gösterir.

Pixtral’ın Mimarisi

Pixtral 12B’nin mimarisi, metni ve görselleri eşzamanlı işlemek üzere tasarlanmıştır. İki ana bileşenden oluşur: Bir Görüş Kodlayıcı (Vision Encoder) ve Çok Modlu Dönüştürücü Çözücü (Multimodal Transformer Decoder).

400 milyon parametreli Görüş Kodlayıcı, farklı boyut ve çözünürlükteki görsellere uyum sağlayacak şekilde özel olarak eğitilmiştir.

Pixtral's vision encoder.

Kaynak: Mistral AI

İkinci bileşen olan Çok Modlu Dönüştürücü Çözücü, 12 milyar parametreyle daha kapsamlı bir modeldir. Mevcut Mistral Nemo mimarisine dayanır ve metin ve görsel verilerin iç içe geçtiği dizilerde bir sonraki metin belirtecini tahmin etmek üzere tasarlanmıştır.

Bu çözücü çok uzun bağlamları (128k belirtece kadar) işleyebilir; böylece çok sayıda görsel belirteci ve büyük belgelerde kapsamlı metinsel bilgiyi ele alabilir.

Pixtral's multimodal transformer decoder.

Kaynak: Mistral AI

Bu birleşik mimari, Pixtral’ın geniş bir görsel boyutu ve formatı yelpazesiyle başa çıkmasına, yüksek çözünürlüklü görselleri bağlam kaybı olmadan tutarlı belirteçlere dönüştürmesine imkân tanır.

Le Chat Üzerinde Pixtral Nasıl Kullanılır

Pixtral’a ücretsiz erişmenin en kolay yolu, sohbet arayüzleri olan Le Chat üzerinden kullanmaktır. Bu arayüz, örneğin ChatGPT gibi diğer LLM sohbet arayüzlerine benzer.

The Le Chat web interface.

Pixtral’ı kullanmak için, istem girişinin yanındaki altta bulunan model seçicisine gidin ve mevcut modeller listesinden Pixtral modelini seçin.

Selecting the Pixtral model in Le Chat.

Pixtral, hem metin hem görselleri destekleyen çok modlu bir modeldir. Altta yer alan ataş simgesini kullanarak bir veya daha fazla görsel yükleyebilir ve bunları bir metin istemiyle birleştirebiliriz. Örneğin bu işlev, bir görselde tasvir edilen bir meyveyi tanımlamamıza yardımcı olabilir.

A multimodal prompt example of using Pixtral in Le Chat.

Şimdi de Pixtral’dan bir pasta grafiği içeren görseli markdown tablosuna dönüştürmesini istediğimiz bir başka örneği inceleyelim:

Using Le Chat to transform a chart into a text table.

La Plateforme Üzerinde Pixtral’ın API’sine Nasıl Bağlanılır

Pixtral’ı web arayüzü üzerinden kullanmak hoş ve kolay olsa da, projelerimize entegre etmek için uygun değildir. Bu bölümde, La Plateforme üzerinden Python kullanarak API ile Pixtral’la nasıl etkileşim kuracağımızı ele alacağız.

Profil kurulumu

Öncelikle bir hesap oluşturmamız gerekiyor. Bunu bir Google hesabıyla tek tıkla yapabilir ya da kullanıcı adı ve şifreyle klasik bir hesap açabilirsiniz.

Hesabı oluşturduktan sonra bir çalışma alanı kurmamız istenir. Çalışma alanınız için herhangi bir ad seçebilir ve "Tek başıma oluşturuyorum" seçeneğini tercih edebilirsiniz.

Creating a workspace in La Platforme.

Hesabı oluşturduktan sonra faturalama planları sayfasına ilerleyin. Burada, API’yi ücretsiz denememizi sağlayan deneysel bir faturalama planı oluşturabilir veya ücretli bir plan kurabiliriz. Ücretsiz deneysel planın hesabımıza geçerli bir telefon numarası bağlamamızı gerektirdiğini unutmayın.

Selecting a billing plan in La Platforme.

Artık profilimiz bir API anahtarı oluşturmaya hazır olmalı. Bu anahtar, Mistral API’sine istek göndermek ve Python kullanarak Pixtral ile programatik olarak etkileşim kurmak için gereklidir.

API anahtarı oluşturma

API anahtarı oluşturmak için API anahtarı sayfasına gidin. Sayfanın üst kısmında yeni bir API anahtarı oluşturmak için bir düğme bulunur:

Creating API Keys in La Platforme.

Bir anahtar oluştururken, bizden bir ad vermemiz ve bir son kullanma tarihi belirlememiz istenir. Ancak her iki alan da isteğe bağlıdır; isterseniz boş bırakabilirsiniz.

API key creation form for Mistral's La Plateforme

Genel olarak, anahtarlara bir son kullanma tarihi atamak tavsiye edilir. Çoğu zaman anahtarlar bir API ile denemeler yapmak için oluşturulur ancak sonra unutulur ve süresiz olarak etkin kalır. Bir son kullanma tarihi belirlemek, bir anahtar kazara sızdırılırsa sonsuza dek kullanılamamasını sağlayarak potansiyel riskleri azaltır.

Safekeeping the API key after creation.

Anahtar oluşturulduğunda görüntülenecektir. Bu görüntüleme, anahtarı görme fırsatının tek seferliktir; bu nedenle kopyalamak önemlidir. Anahtar kaybolursa, listedeki anahtarı silip yenisini oluşturmak gerekir.

Anahtarı saklamak için, Python betiğiyle aynı dizinde bir .env dosyası oluşturmanızı ve aşağıdaki formatı kullanmanızı öneririm (<key_value> kısmını gerçek anahtarla değiştirin):

# contents of the .env fileAPI_KEY=<key_value>

Bu adımı atlayıp API anahtarını betiğe sabitlemek (hardcode etmek) önerilmez. Böyle yapmak, kodumuzu anahtarı da paylaşmadan paylaşmamıza engel olur. Bu yaklaşımla ilgili daha fazla bilgiyi şu öğreticide bulabilirsiniz: Python ortam değişkenleri.

Bağımlılıkları kurma

Başlamak için gerekli bağımlılıkları kuruyoruz. Bunlar şunları içerir:

  • mistralai, Mistral tarafından API ile etkileşim için sağlanan istemci kitaplığı.
  • python-dotenv, .env dosyasından ortam değişkenlerini yüklemeye yarayan bir modül.
pip install python-dotenv mistralai

Bağımlılıklar kurulduktan sonra betiği oluşturmaya geçebiliriz. .env dosyasıyla aynı dizinde mistral_example.py adlı bir dosya oluşturun. İlk adım, modülleri içe aktarmak ve API anahtarını bir değişkene yüklemektir.

# Create a mistral_example.py file in the same folder as the .env fileimport osfrom mistralai import Mistralfrom dotenv import load_dotenvload_dotenv()api_key = os.getenv("API_KEY")

Ardından istemciyi başlatmaya geçebiliriz.

İstemciyi başlatma

Mistral dokümantasyon sayfası mevcut tüm modellerin bir listesini sunar. Özellikle, API uç noktası pixtral-12b-2409 olan en güncel Pixtral modeliyle ilgileniyoruz.

# Add this code in mistral_example.py after initializing the API keymodel = "pixtral-12b-2409"client = Mistral(api_key=api_key)

Bir API isteği yapma

Artık Mistral API’sine istek göndermeye ve Pixtral ile programatik olarak etkileşim kurmaya hazırız. İşte bir metin isteminin nasıl gönderileceğine dair bir örnek:

# Add this code in mistral_example.py after initializing the clientchat_response = client.chat.complete(  model=model,  messages = [   {     "role": "user",     "content": [       {         "type": "text",         "text": "What is 1 + 1?"       }     ]   }, ])print(chat_response.choices[0].message.content)

Bu betiği terminalde çalıştırabilir ve Pixtral’ın istemimize verdiği yanıtı görebiliriz:

$ python mistral_example.py                  The sum of 1 + 1 is 2. So,1 + 1 = 2

API’yi çok modluluk ile kullanma

Verilen örnekte, metin istemi content alanı üzerinden gönderilir ve type değeri "text" olarak ayarlanır.

{  "type": "text",  "text": "What is 1 + 1?"}

content alanı, birden fazla veriyi göndermemize izin veren bir dizidir. Çok modlu bir model olarak Pixtral görsel verileri de kabul eder. İstemde bir URL’den görsel kullanmak için, content alanına "image_url" türünü belirterek ekleyebiliriz:

{  "type": "image_url",  "Image_url": "<image_url>” }

<image_url> kısmını görselin gerçek URL’siyle değiştirin. Örneğin, aşağıdaki performans grafiklerini analiz etmek için Pixtral’ı kullanabiliriz:

Kaynak: Mistral AI

chat_response = client.chat.complete( model=model, messages = [   {     "role": "user",     "content": [       {         "type": "text",         "text": "According to the chart, how does Pixtral 12B performs compared to other models?"       },       {         "type": "image_url",         "image_url": "https://mistral.ai/images/news/pixtral-12b/pixtral-benchmarks.png"       }     ]   }, ])print(chat_response.choices[0].message.content)

Bu istek gönderildiğinde, Pixtral analiz için hem metin istemini hem de grafikleri içeren görseli alır ve analizi ayrıntılandıran bir yanıt üretir. Yanıt oldukça uzun olduğundan burada göstermiyoruz.

Yerel görselleri yükleme

Önceki örnekte bir URL’den görselin nasıl gösterileceğini anlattık. Alternatif olarak, sabit diskimizde depolanan bir görseli base-64 kodlu olarak yükleyebiliriz. Bir görseli base-64 olarak yüklemek ve kodlamak için yerleşik base64 paketini kullanırız:

def encode_image_base64(image_path): with open(image_path, "rb") as image_file:   return base64.b64encode(image_file.read()).decode("utf-8")

Base-64 kodlu görseller kullanırken, kodlanmış görseli sağlamak için yine image_url türünü kullanırız; ancak başına data:image/jpeg;base64, eklememiz gerekir:

{  "type": "image_url",  "image_url": f"data:image/jpeg;base64,{base_64_image}"}

base_64_image, görseli yüklemek için encode_image_base64() işlevinin çağrılmasıyla elde edilen sonuçtur. Bunu kullanarak Pixtral’dan, yaptığım şu iki eskize dayanarak iki sayfalı bir yapılacaklar listesi sitesi oluşturmamızı isteyelim:

Sketch for the TODO list app interface.

İki görseli ayrı ayrı ve görsellere dayanarak bir HTML sitesi oluşturmamızı isteyen bir istemle birlikte sağlıyoruz:

list_image = encode_image_base64("./todo-list.jpeg")new_item_image = encode_image_base64("./new-item-form.jpeg")chat_response = client.chat.complete( model=model, messages = [   {     "role": "user",     "content": [       {         "type": "text",         "text": "Create a HTML website with two pages like in the images"       },       {         "type": "image_url",         "image_url": f"data:image/jpeg;base64,{list_image}"       },       {         "type": "image_url",         "image_url": f"data:image/jpeg;base64,{new_item_image}"       },           ]   }, ])print(chat_response.choices[0].message.content)

Pixtral, iki sayfanın içeriğini içeren iki kod bloğu çıktısı verecektir. Kodu index.html ve add.html adlı iki dosyaya kaydettik ve tarayıcıda açtık. Sonuç şöyleydi:

Rendered TODO list app by Pixtral.

Henüz tamamen işlevsel bir uygulama olmasa da, çalışır durumda ve daha ileri geliştirme için mükemmel bir başlangıç noktasıdır.

Sonuç

Pixtral 12B, Mistral’ın ilk çok modlu modelidir. Ön işlemeye gerek olmadan her boyuttaki görseli işleyebilir, karmaşık istemler için 128K bağlam penceresine sahiptir ve hem yalnızca metin hem de çok modlu görevlerde iyi performans gösterir. 

Ticarileştirilmemiş projelerde ücretsiz olarak sunulan ve Apache 2.0 lisansı altında açık kaynak olan Pixtral, hem araştırmacılar hem de meraklılar için değerlidir.

Bu öğreticide, Pixtral’ı kullanmaya dair pratik içgörüler sundum; örnekler ve adım adım yönlendirmelerle yeteneklerini öne çıkardım.

SSS

Pixtral ücretsiz mi, hangi koşullarda kullanılabilir?

Pixtral, Le Chat üzerinde veya ticarileştirilmemiş projelerde API aracılığıyla ücretsiz kullanılabilir.

Pixtral açık kaynak mı?

Evet. Apache 2.0 lisansı altında açık kaynaktır.

Pixtral hangi tür girdi verilerini destekler?

Pixtral, Mistral AI’ın ilk çok modlu LLM’idir. Hem metni hem de görselleri destekler.

Pixtral hangi tür görselleri destekler?

Pixtral, herhangi bir ön işleme gerekmeden her boyuttaki görseli destekler.

Pixtral’ı önemli kılan nedir?

Pixtral, yalnızca 12 milyar parametreli bir model için mükemmel performansa sahiptir. Buna ek olarak ücretsiz kullanılabilir ve açık kaynaktır.

François Aubry

Yazar

François Aubry

CheapGPT’te full-stack mühendisi ve kurucuyum. Öğretmek her zaman tutkum oldu. Öğrencilik yıllarımdan itibaren diğer öğrencilere ders verme ve yardımcı olma fırsatlarını hevesle aradım. Bu tutku beni doktora yapmaya yönlendirdi; bu süreçte akademik çalışmalarımı desteklemek için araştırma görevlisi olarak da görev aldım. O yıllarda, geleneksel sınıf ortamında bağlar kurmaktan ve öğrenmeyi kolaylaştırmaktan büyük bir tatmin duydum. Ancak çevrim içi öğrenme platformlarının ortaya çıkmasıyla birlikte dijital eğitimin dönüştürücü potansiyelini fark ettim. Nitekim üniversitemizde bu tür bir platformun geliştirilmesinde aktif rol aldım. Geleneksel öğretim ilkelerini yenilikçi dijital yöntemlerle bütünleştirmeye derinden bağlıyım. Tutkum, yalnızca ilgi çekici ve bilgilendirici olmakla kalmayan, aynı zamanda bu dijital çağdaki öğrenenler için erişilebilir kurslar tasarlamaktır.

Konular

İlgili