Lewati ke konten utama

Pixtral 12B: Panduan dengan Contoh Praktis

Pelajari cara menggunakan Pixtral 12B dari Mistral secara interaktif lewat Le Chat atau terprogram melalui API yang tersedia di La Plateforme.
· 8 mnt Baca

Jelajahi bersama AI

Mistral merilis Pixtral 12B, model large language model (LLM) open source dengan 12 miliar parameter. Ini adalah model multimodal pertama Mistral, yang berarti dapat memproses teks dan gambar.

Berikut alasan Pixtral menjadi tambahan berharga di lanskap LLM:

  • Memproses gambar dari segala ukuran secara efisien tanpa pra-pemrosesan.
  • Jendela konteks 128K memungkinkan penanganan prompt kompleks dan banyak gambar.
  • Kinerja kuat pada tugas berbasis teks saja maupun multimodal.
  • Gratis untuk proyek yang tidak dimonetisasi, ideal bagi peneliti dan hobiis.
  • Sumber terbuka dengan lisensi Apache 2.0, mendukung demokratisasi AI.

Dalam tutorial ini, saya akan memberikan banyak contoh dan panduan langkah demi langkah untuk menggunakan Pixtral melalui antarmuka web chat, Le Chat, dan secara terprogram melalui API. Namun terlebih dahulu, mari bahas aspek teoretis penting dari Pixtral.

Apa Itu Pixtral 12B?

Mistral AI meluncurkan Pixtral 12B, model yang dirancang untuk memproses gambar dan teks secara bersamaan. Dengan 12 miliar parameter, model ini dapat menangani tugas yang melibatkan perpaduan visual dan bahasa, seperti menafsirkan bagan, dokumen, atau grafik.

Model ini berguna untuk lingkungan yang membutuhkan pemahaman mendalam atas kedua format tersebut.

Fitur kunci Pixtral 12B adalah kemampuannya menangani beberapa gambar dalam satu masukan, memprosesnya pada resolusi asli. Model ini memiliki jendela konteks 128.000 token, yang memungkinkan analisis dokumen, gambar, atau beberapa sumber data yang panjang dan kompleks secara bersamaan. Ini membuatnya bermanfaat di area seperti pelaporan keuangan atau pemindaian dokumen untuk bisnis.

Benchmark Pixtral

Pixtral berkinerja baik dalam tugas terkait Pengetahuan & Penalaran Multimodal, khususnya pada uji MathVista, di mana ia memimpin. Dalam tugas tanya jawab multimodal, posisinya juga kuat, terutama pada ChartQA.

Benchmark Pixtral

Sumber: Mistral AI

Namun, dalam tugas mengikuti instruksi dan berbasis teks, model lain seperti Claude-3 Haiku dan Gemini Flash-8B menunjukkan kinerja yang kompetitif atau lebih unggul. Ini menunjukkan bahwa Pixtral 12B unggul dalam penalaran multimodal dan visual, tetapi mungkin tidak mendominasi pada tugas murni berbasis teks.

Arsitektur Pixtral

Arsitektur Pixtral 12B dirancang untuk memproses teks dan gambar secara bersamaan. Ia memiliki dua komponen utama: Vision Encoder dan Multimodal Transformer Decoder.

Vision Encoder, dengan 400 juta parameter, dilatih khusus untuk mengakomodasi gambar dengan beragam ukuran dan resolusi.

Vision encoder Pixtral.

Sumber: Mistral AI

Komponen kedua, Multimodal Transformer Decoder, adalah model yang lebih besar dengan 12 miliar parameter. Model ini berbasis arsitektur Mistral Nemo yang ada, dan dirancang untuk memprediksi token teks berikutnya dalam urutan yang menyisipkan data teks dan gambar.

Decoder ini dapat memproses konteks yang sangat panjang (hingga 128k token), memungkinkannya menangani banyak token gambar dan informasi tekstual ekstensif dalam dokumen besar.

Multimodal transformer decoder Pixtral.

Sumber: Mistral AI

Arsitektur gabungan ini memungkinkan Pixtral menangani berbagai ukuran dan format gambar, menerjemahkan gambar beresolusi tinggi menjadi token yang koheren tanpa kehilangan konteks.

Cara Menggunakan Pixtral di Le Chat

Cara termudah mengakses Pixtral secara gratis adalah melalui Le Chat, antarmuka chat mereka. Antarmuka ini mirip dengan antarmuka chat LLM lain—seperti ChatGPT, misalnya.

Antarmuka web Le Chat.

Untuk menggunakan Pixtral, buka pemilih model yang terletak di bagian bawah, di sebelah kolom prompt, lalu pilih model Pixtral dari daftar model yang tersedia.

Memilih model Pixtral di Le Chat.

Pixtral adalah model multimodal yang mendukung teks dan gambar. Dengan ikon klip di bagian bawah, kita dapat mengunggah satu atau lebih gambar dan menggabungkannya dengan prompt teks. Misalnya, fungsi ini dapat membantu kita mengidentifikasi buah yang ditampilkan dalam gambar.

Contoh prompt multimodal menggunakan Pixtral di Le Chat.

Mari jelajahi contoh lain di mana kita meminta Pixtral untuk mengubah gambar berisi diagram pai menjadi tabel markdown:

Menggunakan Le Chat untuk mengubah bagan menjadi tabel teks.

Cara Terhubung ke API Pixtral di La Plateforme

Meskipun menggunakan Pixtral melalui antarmuka webnya mudah dan nyaman, cara ini tidak cocok untuk mengintegrasikannya ke dalam proyek kita. Di bagian ini, kita akan membahas cara berinteraksi dengan Pixtral melalui API menggunakan Python, lewat La Plateforme.

Penyiapan profil

Untuk memulai, kita perlu membuat akun. Ini dapat dilakukan hanya dengan satu klik menggunakan akun Google, atau alternatifnya, dengan membuat akun tradisional menggunakan nama pengguna dan kata sandi.

Setelah membuat akun, kita diminta menyiapkan ruang kerja (workspace). Anda dapat memilih nama apa pun untuk ruang kerja dan memilih opsi "I'm a solo creator".

Membuat ruang kerja di La Platforme.

Setelah membuat akun, lanjutkan ke halaman paket penagihan. Di sini, kita dapat membuat paket penagihan eksperimental yang memungkinkan kita mencoba API secara gratis, atau menyiapkan paket berbayar. Perlu dicatat bahwa paket eksperimental gratis mengharuskan kita menautkan nomor telepon yang valid ke akun.

Memilih paket penagihan di La Platforme.

Profil kita sekarang siap untuk membuat kunci API. Kunci ini diperlukan untuk melakukan permintaan ke Mistral API dan berinteraksi dengan Pixtral secara terprogram menggunakan Python.

Membuat kunci API

Untuk membuat kunci API, buka halaman kunci API. Di bagian atas halaman, ada tombol untuk membuat kunci API baru:

Membuat Kunci API di La Platforme.

Saat membuat kunci, kita diminta memberi nama dan menetapkan tanggal kedaluwarsa. Namun, kedua bidang tersebut opsional, sehingga bisa dibiarkan kosong jika diinginkan.

Formulir pembuatan kunci API untuk La Plateforme Mistral

Secara umum, disarankan untuk menetapkan tanggal kedaluwarsa untuk kunci. Sering kali, kunci dibuat untuk bereksperimen dengan sebuah API lalu dilupakan, membiarkannya aktif tanpa batas. Menetapkan tanggal kedaluwarsa memastikan jika kunci tidak sengaja bocor, kunci tersebut tidak dapat digunakan selamanya, sehingga meminimalkan potensi risiko.

Menyimpan kunci API dengan aman setelah dibuat.

Setelah kunci dibuat, kunci akan ditampilkan. Tampilan ini adalah satu-satunya kesempatan untuk melihat kunci, jadi pastikan untuk menyalinnya. Jika kunci hilang, solusinya adalah menghapusnya dari daftar dan membuat yang baru.

Saya menyarankan membuat file .env di direktori yang sama dengan skrip Python untuk menyimpan kunci dengan format berikut (ganti <key_value> dengan kunci sebenarnya):

# contents of the .env fileAPI_KEY=<key_value>

Melewati langkah ini dan menanamkan kunci API langsung di skrip tidak disarankan. Hal ini membuat kita tidak bisa membagikan kode tanpa turut membagikan kuncinya. Pelajari lebih lanjut pendekatan ini di tutorial tentang variabel lingkungan Python.

Menginstal dependensi

Pertama, kita instal dependensi yang diperlukan, meliputi:

  • mistralai, pustaka klien yang disediakan Mistral untuk interaksi API.
  • python-dotenv, modul untuk memuat variabel lingkungan dari file .env.
pip install python-dotenv mistralai

Setelah dependensi terinstal, kita dapat melanjutkan ke pembuatan skrip. Buat file bernama mistral_example.py di direktori yang sama dengan file .env. Langkah awal mencakup mengimpor modul dan memuat kunci API ke dalam variabel.

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

Setelah itu, kita dapat menginisialisasi klien.

Inisialisasi klien

Halaman dokumentasi Mistral menyediakan daftar semua model yang tersedia. Kita tertarik pada model Pixtral terbaru, dengan endpoint API pixtral-12b-2409.

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

Membuat permintaan API

Sekarang kita siap membuat permintaan ke Mistral API dan berinteraksi dengan Pixtral secara terprogram. Berikut contoh cara mengirimkan prompt teks:

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

Kita dapat menjalankan skrip ini di terminal dan melihat respons Pixtral terhadap prompt kita:

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

Menggunakan API dengan multimodalitas

Dalam contoh yang diberikan, prompt teks dikirim melalui bidang content, di mana type diatur ke "text".

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

Bidang content adalah sebuah array yang memungkinkan kita mengirim banyak potongan data. Sebagai model multimodal, Pixtral juga menerima data gambar. Untuk menggunakan gambar dari URL dalam prompt, kita dapat menyertakannya di bidang content dengan menentukan "image_url" sebagai tipe:

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

Ganti <image_url> dengan URL gambar yang sebenarnya. Misalnya, kita dapat menggunakan Pixtral untuk menganalisis bagan kinerja di bawah ini:

Sumber: 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)

Saat permintaan ini dikirim, Pixtral menerima prompt teks dan gambar yang berisi bagan untuk dianalisis, lalu memberikan respons yang merinci analisisnya. Kami tidak menampilkan responsnya di sini karena cukup panjang.

Memuat gambar lokal

Pada contoh sebelumnya, kita menunjukkan cara menampilkan gambar dari URL. Alternatifnya, kita dapat menggunakan gambar yang tersimpan di hard drive dengan memuatnya sebagai gambar berenkode base-64. Untuk memuat dan mengenkripsi gambar dalam base-64, kita menggunakan paket bawaan base64:

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

Saat menggunakan gambar berenkode base-64, kita tetap menggunakan tipe image_url untuk memberikan gambar yang dienkode tetapi perlu menambahkan awalan data:image/jpeg;base64,:

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

base_64_image adalah hasil pemanggilan fungsi encode_image_base64() untuk memuat gambar. Mari gunakan ini untuk meminta Pixtral membangun situs web daftar tugas dengan dua halaman berdasarkan dua sketsa berikut yang saya buat:

Sketsa antarmuka aplikasi TODO list.

Kita menyediakan dua gambar tersebut secara terpisah serta sebuah prompt yang meminta pembuatan situs web HTML berdasarkan gambar-gambar itu:

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 akan menghasilkan dua blok kode berisi konten kedua halaman. Kami menyimpan kode tersebut ke dua file bernama index.html dan add.html lalu membukanya di peramban. Hasilnya seperti ini:

Aplikasi TODO list yang dirender oleh Pixtral.

Meskipun belum sepenuhnya fungsional, ia sudah berjalan dan menjadi titik awal yang sangat baik untuk pengembangan lebih lanjut.

Kesimpulan

Pixtral 12B adalah model multimodal pertama Mistral. Ia dapat menangani gambar dari segala ukuran tanpa pra-pemrosesan, memiliki jendela konteks 128K untuk prompt kompleks, dan berkinerja baik pada tugas berbasis teks saja maupun multimodal. 

Tersedia gratis untuk proyek yang tidak dimonetisasi dan bersifat open source di bawah lisensi Apache 2.0, Pixtral berharga bagi peneliti dan hobiis.

Dalam tutorial ini, saya telah memberikan wawasan praktis menggunakan Pixtral, menyoroti kemampuannya melalui contoh dan panduan langkah demi langkah.

FAQs

Apakah Pixtral gratis digunakan, dan dalam kondisi apa?

Pixtral gratis digunakan di Le Chat atau melalui API untuk proyek yang tidak dimonetisasi.

Apakah Pixtral bersifat open source?

Ya. Bersifat open source di bawah lisensi Apache 2.0.

Data masukan seperti apa yang didukung Pixtral?

Pixtral adalah LLM multimodal pertama dari Mistral AI. Ia mendukung teks dan gambar.

Gambar seperti apa yang didukung Pixtral?

Pixtral mendukung gambar dengan ukuran apa pun tanpa memerlukan jenis pra-pemrosesan apa pun.

Apa yang membuat Pixtral penting?

Pixtral memiliki kinerja yang sangat baik untuk model dengan hanya 12 miliar parameter. Selain itu, dapat digunakan secara gratis dan bersifat open source.

François Aubry

Penulis

François Aubry

Insinyur full-stack & pendiri di CheapGPT. Mengajar selalu menjadi passion saya. Sejak masa awal sebagai mahasiswa, saya aktif mencari peluang untuk membimbing dan membantu mahasiswa lain. Passion ini mendorong saya menempuh studi PhD, di mana saya juga menjadi asisten pengajar untuk mendukung kegiatan akademik saya. Selama tahun-tahun itu, saya menemukan kepuasan besar dalam suasana kelas tradisional, membangun koneksi dan memfasilitasi proses belajar. Namun, dengan hadirnya platform pembelajaran daring, saya melihat potensi transformatif pendidikan digital. Bahkan, saya terlibat aktif dalam pengembangan salah satu platform tersebut di universitas kami. Saya sangat berkomitmen untuk mengintegrasikan prinsip-prinsip pengajaran tradisional dengan metodologi digital yang inovatif. Tujuan saya adalah menciptakan kursus yang tidak hanya menarik dan informatif, tetapi juga mudah diakses oleh para pembelajar di era digital ini.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai