-
Model Vision - Llama 3.2, yang dibangunkan oleh Meta, adalah model bahasa besar multimodal yang direka untuk pemahaman visual dan tugas penalaran yang canggih. Berikut adalah butiran utama mengenai model:
- Arkitek : llama 3.2 Visi Membina pada model teks Llama 3.1, menggunakan seni bina pengubah yang dioptimumkan. Ia menggabungkan penyesuai penglihatan yang terdiri daripada lapisan silang yang mengintegrasikan perwakilan pengekod imej dengan model bahasa.
- saiz yang tersedia: Model ini terdapat dalam dua saiz parameter:
- 11b (11 bilion parameter) untuk penempatan yang cekap pada GPU gred pengguna.
- 90b (90 bilion parameter) untuk aplikasi berskala besar.
Input Multimodal: - Llama 3.2 Visi dapat memproses teks dan imej, yang membolehkannya melaksanakan tugas seperti pengiktirafan visual, penalaran imej, penangkapan, dan menjawab soalan yang berkaitan dengan imej.
Data Latihan: - Model ini dilatih pada kira-kira 6 bilion pasangan teks imej, meningkatkan keupayaannya untuk memahami dan menjana kandungan berdasarkan input visual.
panjang konteks - : ia menyokong panjang konteks sehingga token 128k
Juga baca: llama 3.2 90b vs gpt 4o: perbandingan analisis imej
Aplikasi Llama 3.2 Visi Model
Llama 3.2 Visi direka untuk pelbagai aplikasi, termasuk:
Soalan Visual Menjawab (VQA): - Menjawab soalan berdasarkan kandungan imej.
Kapsyen imej: - Menjana kapsyen deskriptif untuk imej.
pengambilan semula teks imej: - imej yang sepadan dengan deskripsi teks mereka.
Grounding visual: - Menghubungkan rujukan bahasa ke bahagian tertentu imej.
Apa itu tidak disengaja?
Unsloth AI adalah platform inovatif yang direka untuk meningkatkan penalaan model bahasa besar (LLM) seperti Llama-3, Mistral, Phi-3, dan Gemma. Ia bertujuan untuk menyelaraskan proses kompleks menyesuaikan model pra-terlatih untuk tugas-tugas tertentu, menjadikannya lebih cepat dan lebih cekap.
Ciri -ciri utama Unsloth Ai
- Latihan Dipercepatkan: Unsloth menawarkan keupayaan untuk menyempurnakan model sehingga 30 kali lebih cepat sambil mengurangkan penggunaan memori sebanyak 60%. Penambahbaikan yang ketara ini dicapai melalui teknik canggih seperti autograd manual, pendaraban matriks rantaian, dan kernel GPU yang dioptimumkan.
- mesra pengguna: Platform ini terbuka dan mudah dipasang, membolehkan pengguna menetapkannya secara tempatan atau menggunakan sumber awan seperti Google Colab. Dokumentasi komprehensif menyokong pengguna dalam menavigasi proses penalaan halus.
- Skalabilitas: Unsloth menyokong pelbagai konfigurasi perkakasan, dari GPU tunggal hingga persediaan multi-nod, menjadikannya sesuai untuk kedua-dua pasukan kecil dan aplikasi peringkat perusahaan.
- serba boleh: Platform ini serasi dengan pelbagai LLM yang popular dan boleh digunakan untuk pelbagai tugas seperti penjanaan bahasa, ringkasan, dan perbualan AI.
Unsloth AI mewakili kemajuan yang signifikan dalam latihan model AI, menjadikannya mudah untuk pemaju dan penyelidik yang ingin mencipta model adat berprestasi tinggi dengan cekap.
Penanda Aras Prestasi Llama 3.2 Visi
model penglihatan llama 3.2 cemerlang dalam menafsirkan carta dan rajah.
Model 11 bilion yang melampaui Claude 3 Haiku dalam penanda aras visual seperti MMMU-Pro, Visi (23.7), Chartqa (83.4), rajah AI2 (91.1) manakala model 90 bilion melepasi claude 3 haikuin semua tafsiran visual.
Akibatnya, Llama 3.2 adalah pilihan yang ideal untuk tugas yang memerlukan pemahaman dokumen, menjawab soalan visual, dan mengekstrak data dari carta.
penalaan halus llama 3.2 11b model penglihatan menggunakan unsloth ai
Dalam tutorial ini, kami akan berjalan melalui proses penalaan Llama 3.2 11B Model Vision. Dengan memanfaatkan keupayaan lanjutannya, kami berhasrat untuk meningkatkan ketepatan model dalam mengenali barangan makanan dan menganggarkan kandungan kalori mereka berdasarkan input visual.
Penalaan Fine Model ini melibatkan penyesuaiannya untuk lebih memahami nuansa imej makanan dan data pemakanan, dengan itu meningkatkan prestasinya dalam aplikasi dunia nyata. Kami akan menyelidiki langkah-langkah utama yang terlibat dalam proses penalaan ini, termasuk penyediaan dataset, dan mengkonfigurasi persekitaran latihan. Kami juga akan menggunakan teknik seperti LORA (penyesuaian rendah peringkat) untuk mengoptimumkan prestasi model sambil meminimumkan penggunaan sumber.
Kami akan memanfaatkan AI yang tidak sesuai untuk menyesuaikan keupayaan model. Dataset yang akan kami gunakan terdiri daripada imej makanan, masing -masing disertai dengan maklumat mengenai kandungan kalori pelbagai barangan makanan. Ini akan membolehkan kita meningkatkan keupayaan model untuk menganalisis data yang berkaitan dengan makanan dengan berkesan.
Jadi, mari kita mulakan!
Langkah 1. Memasang perpustakaan yang diperlukan
!pip install unsloth
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Langkah 2. Menentukan Model
from unsloth import FastVisionModel
import torch
model, tokenizer = FastVisionModel.from_pretrained(
"unsloth/Llama-3.2-11B-Vision-Instruct",
load_in_4bit = True,
use_gradient_checkpointing = "unsloth",
)
model = FastVisionModel.get_peft_model(
model,
finetune_vision_layers = True,
finetune_language_layers = True,
finetune_attention_modules = True,
finetune_mlp_modules = True,
r = 16,
lora_alpha = 16,
lora_dropout = 0,
bias = "none",
random_state = 3443,
use_rslora = False,
loftq_config = None,
)
Salin selepas log masuk
Salin selepas log masuk
- dari_pretrained: Kaedah ini memuatkan model pra-terlatih dan tokenizernya. Model yang ditentukan ialah "Unslama/Llama-3.2-11b-Vision-Instruct".
- LOAD_IN_4BIT = TRUE : Argumen ini menunjukkan bahawa model harus dimuatkan dengan kuantisasi 4-bit, yang mengurangkan penggunaan memori dengan ketara sambil mengekalkan prestasi.
use_gradient_checkpointing = "unsloth": - Ini membolehkan pemeriksaan kecerunan, yang membantu dalam menguruskan memori semasa latihan dengan menyelamatkan pengaktifan perantaraan.
get_peft_model: Kaedah ini mengkonfigurasi model untuk penalaan halus menggunakan teknik penalaan halus parameter (PEFT).
Pilihan penalaan halus:
finetune_vision_layers = true: membolehkan penalaan lapisan visi. -
finetune_language_layers = true:
membolehkan penalaan lapisan bahasa (mungkin lapisan pengubah yang bertanggungjawab untuk memahami teks) -
finetune_attention_modules = true:
membolehkan penalaan modul perhatian. -
finetune_mlp_modules = true:
Membolehkan penalaan halus dari modul Perceptron (MLP).
-
parameter lora:
r = 16, lora_alpha = 16, lora_dropout = 0:
Parameter ini mengkonfigurasi penyesuaian peringkat rendah (LORA), yang merupakan teknik untuk mengurangkan bilangan parameter yang boleh dilatih sambil mengekalkan prestasi.
- bias = "none": Ini menyatakan bahawa tiada istilah bias akan dimasukkan dalam proses penalaan halus untuk lapisan.
- random_state = 3443: Ini menetapkan benih rawak untuk reproducibility. Dengan menggunakan benih ini, proses penalaan halus model akan menjadi deterministik dan memberikan hasil yang sama jika berjalan lagi dengan persediaan yang sama.
- use_rslora = false: Ini menunjukkan bahawa varian lora yang dipanggil rslora tidak digunakan. RSLORA adalah pendekatan yang berbeza untuk penalaan halus yang cekap parameter.
- loftq_config = none: Ini akan merujuk kepada sebarang konfigurasi yang berkaitan dengan kuantisasi ketepatan rendah. Oleh kerana ia tidak ada, tiada konfigurasi khusus untuk kuantisasi digunakan.
- Langkah 3. Memuatkan dataset
Kami memuatkan dataset pada imej makanan bersama -sama dengan keterangan kalori mereka dalam teks.
Dataset mempunyai 3 lajur - 'imej', 'pertanyaan', 'respons'
from datasets import load_dataset
dataset = load_dataset("aryachakraborty/Food_Calorie_Dataset",
split = "train[0:100]")
Salin selepas log masuk
Langkah 4. Menukar dataset ke perbualan
Kami menukar dataset ke dalam perbualan dengan dua peranan yang terlibat - pengguna dan pembantu.
Pembantu membalas pertanyaan pengguna pada pengguna yang disediakan imej.
def convert_to_conversation(sample):
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": sample["Query"]},
{"type": "image", "image": sample["image"]},
],
},
{
"role": "assistant",
"content": [{"type": "text", "text": sample["Response"]}],
},
]
return {"messages": conversation}
pass
converted_dataset = [convert_to_conversation(sample) for sample in dataset]
Salin selepas log masuk
Langkah 5. Kesimpulan model sebelum model penalaan halus
output:
Item 1: Dumplings Fried-400-600 Kalori
Item 2: Sos Merah-200-300 Kalori
Jumlah kalori-600-900 kalori
Berdasarkan saiz dan bahan hidangan, anggaran kalori yang dianggarkan untuk kedua-dua item adalah 400-600 dan 200-300 untuk ladu goreng dan sos merah masing-masing. Apabila dimakan bersama, kiraan kalori yang dianggarkan gabungan untuk keseluruhan hidangan adalah 600-900 kalori.
Jumlah maklumat pemakanan:
- kalori: 600-900 kalori
- saiz hidangan: 1 plat momos kukus
Kesimpulan: Berdasarkan bahan -bahan yang digunakan untuk menyediakan makanan, maklumat pemakanan dapat dianggarkan.
output dihasilkan untuk imej input di bawah:
Seperti yang dilihat dari output model asal, item yang disebutkan dalam teks merujuk kepada "ladu goreng" walaupun imej input asal mempunyai "momos kukus" di dalamnya. Juga, kalori salad yang terdapat dalam imej input tidak disebutkan dalam output dari model asal.
output dari model asal:
- Item 1: Dumplings Fried-400-600 Kalori
- item 2: sos merah-200-300 kalori
- jumlah kalori-600-900 kalori
Berdasarkan saiz dan bahan hidangan, anggaran kalori yang dianggarkan untuk kedua-dua item adalah 400-600 dan 200-300 untuk ladu goreng dan sos merah masing-masing. Apabila dimakan bersama, kiraan kalori yang dianggarkan gabungan untuk keseluruhan hidangan adalah 600-900 kalori.
jumlah maklumat pemakanan:
- kalori: 600-900 kalori
- saiz hidangan: 1 plat momos kukus
KESIMPULAN: Berdasarkan bahan -bahan yang digunakan untuk menyediakan makanan, maklumat pemakanan dapat dianggarkan.
Langkah 6. Memulakan penalaan halus
!pip install unsloth
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
parameter sfttrainer
- sfttrainer (...): Ini memulakan pelatih yang akan digunakan untuk menyempurnakan model. Sfttrainer direka khusus untuk model penalaan yang diselia.
- model = model: model pra-dimuatkan atau dimulakan yang akan disempurnakan.
- tokenizer = tokenizer: tokenizer yang digunakan untuk menukar input teks ke dalam token ID. Ini memastikan bahawa kedua -dua teks dan data imej diproses dengan betul untuk model.
- data_collator = unslothVisionDataCollator (model, tokenizer): Collator data bertanggungjawab untuk menyediakan kumpulan data (khususnya data bahasa penglihatan). Collator ini mengendalikan bagaimana pasangan teks imej dikumpulkan bersama, memastikan mereka diselaraskan dengan betul dan diformat untuk model.
- train_dataset = converted_dataset: Ini adalah dataset yang akan digunakan untuk latihan. Diandaikan bahawa Converted_Dataset adalah dataset pra-diproses yang merangkumi pasangan teks imej atau data berstruktur yang serupa.
parameter kelas sftconfig
- per_device_train_batch_size = 2: Ini menetapkan saiz batch kepada 2 untuk setiap peranti (mis., GPU) semasa latihan.
- Gradient_Accumulation_Steps = 4: Parameter ini menentukan bilangan pas hadapan (atau langkah) yang dilakukan sebelum mengemas kini berat model. Pada asasnya, ia membolehkan simulasi saiz batch yang lebih besar dengan mengumpul kecerunan ke atas beberapa kelompok yang lebih kecil.
- Warmup_steps = 5: Parameternya menentukan bilangan langkah latihan awal di mana kadar pembelajaran secara beransur -ansur meningkat dari nilai kecil ke kadar pembelajaran awal. Bilangan langkah untuk pemanasan kadar pembelajaran, di mana kadar pembelajaran secara beransur -ansur meningkat kepada nilai sasaran.
- max_steps = 30: Jumlah maksimum langkah latihan (lelaran) untuk dilakukan semasa penalaan halus.
- learning_rate = 2e-4: Kadar pembelajaran untuk pengoptimum, ditetapkan kepada 0.0002.
Tetapan Ketepatan
- fp16 = not is_bf16_supported (): Jika ketepatan bfloat16 (bf16) tidak disokong (diperiksa oleh is_bf16_supported ()), maka ketepatan titik terapung 16-bit (fp16) akan digunakan. Jika BF16 disokong, kod tersebut secara automatik akan menggunakan BF16 sebaliknya.
- bf16 = is_bf16_supported (): pemeriksaan ini jika perkakasan menyokong ketepatan bfloat16 dan membolehkannya jika disokong.
Pembalakan & Pengoptimuman
- logging_steps = 5 : bilangan langkah selepas kemajuan latihan akan dilog masuk.
- optim = "adamw_8bit": Ini menetapkan pengoptimuman kepada ADAMW dengan ketepatan 8-bit (mungkin untuk pengiraan yang lebih efisien dan penggunaan memori yang dikurangkan).
- weight_decay = 0.01: Kerosakan berat (L2 regularization) untuk mengelakkan overfitting dengan menghukum berat besar.
- lr_scheduler_type = "linear": Ini menetapkan penjadual kadar pembelajaran kepada kerosakan linear, di mana kadar pembelajaran secara linear berkurangan dari nilai awal ke sifar.
- seed = 3407: Ini menetapkan benih rawak untuk kebolehulangan dalam latihan.
- output_dir = "output": Ini menentukan direktori di mana model terlatih dan output lain (mis., Log) akan disimpan.
- report_to = "none": Ini melumpuhkan pelaporan kepada sistem luaran seperti berat & bias, jadi log latihan tidak akan dihantar ke mana -mana perkhidmatan penjejakan jauh.
Parameter khusus penglihatan
rove_unused_columns = false: - menyimpan semua lajur dalam dataset, yang mungkin diperlukan untuk tugas penglihatan.
dataset_text_field = "": - Menunjukkan medan mana dalam dataset mengandungi data teks; Di sini, ia dibiarkan kosong, mungkin menunjukkan bahawa mungkin tidak ada medan teks tertentu yang diperlukan.
dataset_kwargs = {"SKIP_PREPARE_DATASET": true} - : Melangkaui langkah penyediaan tambahan untuk dataset, dengan asumsi ia sudah disediakan.
dataset_num_proc = 4 - : bilangan proses yang akan digunakan apabila memuatkan atau memproses dataset, yang boleh mempercepat pemuatan data. Dengan menetapkan theDataset_num_procparameter, anda boleh mengaktifkan pemprosesan selari dataset.
max_seq_length = 2048: - Panjang urutan maksimum untuk data input, membolehkan urutan yang lebih lama diproses. Parameter max_seq_length menentukan had atas bilangan token (atau ID input) yang boleh dimasukkan ke dalam model sekaligus.
Juga Baca: Fine-Tuning Llama 3.2 3B untuk RAG
Langkah 7. Memeriksa hasil Model Post Fine-Tuning
output dari model halus:
Seperti yang dilihat dari output model finetuned, ketiga -tiga item tersebut disebut dengan betul dalam teks bersama -sama dengan kalori mereka dalam format yang diperlukan.
!pip install unsloth
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
ujian pada data sampel
Kami juga menguji seberapa baik model yang disesuaikan dengan data yang tidak kelihatan. Oleh itu, kami memilih baris data yang tidak dilihat oleh model sebelum ini.
kami memilih ini sebagai imej input.
Output dari model halus :
from unsloth import FastVisionModel
import torch
model, tokenizer = FastVisionModel.from_pretrained(
"unsloth/Llama-3.2-11B-Vision-Instruct",
load_in_4bit = True,
use_gradient_checkpointing = "unsloth",
)
model = FastVisionModel.get_peft_model(
model,
finetune_vision_layers = True,
finetune_language_layers = True,
finetune_attention_modules = True,
finetune_mlp_modules = True,
r = 16,
lora_alpha = 16,
lora_dropout = 0,
bias = "none",
random_state = 3443,
use_rslora = False,
loftq_config = None,
)
Salin selepas log masuk
Salin selepas log masuk
Seperti yang dapat kita lihat dari output model yang disempurnakan, semua komponen pizza telah dikenal pasti dengan tepat dan kalori mereka telah disebutkan juga. Kesimpulan
Integrasi model AI seperti Llama 3.2 Vision mengubah cara kita menganalisis dan berinteraksi dengan data visual, terutamanya dalam bidang seperti pengiktirafan makanan dan analisis pemakanan. Dengan menyempurnakan model yang kuat ini dengan AI yang tidak bersuara, kita dapat meningkatkan keupayaannya untuk memahami imej makanan dan menganggarkan kandungan kalori dengan tepat.
Proses penalaan yang baik, memanfaatkan teknik lanjutan seperti LORA dan keupayaan yang cekap dari AI yang tidak jelas, memastikan prestasi yang optimum sambil meminimumkan penggunaan sumber. Pendekatan ini bukan sahaja meningkatkan ketepatan model tetapi juga membuka pintu untuk aplikasi dunia nyata dalam analisis makanan, pemantauan kesihatan, dan seterusnya. Melalui tutorial ini, kami telah menunjukkan cara menyesuaikan model AI canggih untuk tugas-tugas khusus, memacu inovasi dalam teknologi dan pemakanan.
Takeaways Key
- Perkembangan model multimodal, seperti penglihatan Llama 3.2, membolehkan AI memproses dan memahami data visual dan tekstual, membuka kemungkinan baru untuk aplikasi seperti analisis imej makanan.
Llama 3.2 Visi adalah alat yang berkuasa untuk tugas yang melibatkan pengiktirafan imej, penalaran, dan asas visual, dengan tumpuan untuk mengekstrak maklumat terperinci dari imej, seperti kandungan kalori dalam imej makanan.
- Penalaan Fine Llama 3.2 Model penglihatan membolehkannya disesuaikan untuk tugas-tugas tertentu, seperti pengekstrakan kalori makanan, meningkatkan keupayaannya untuk mengenali barang-barang makanan dan menganggarkan data pemakanan dengan tepat.
- Unsloth AI dengan ketara mempercepatkan proses penalaan halus, menjadikannya sehingga 30 kali lebih cepat sambil mengurangkan penggunaan memori sebanyak 60%, membolehkan penciptaan model tersuai dengan lebih cekap.
-
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan pada budi bicara penulis.
Soalan Lazim
Q1. Apakah model penglihatan llama 3.2, dan bagaimana ia berfungsi? a. Model Visi Llama 3.2 adalah model AI multimodal yang dibangunkan oleh Meta, yang mampu memproses teks dan imej. Ia menggunakan seni bina pengubah dan lapisan silang untuk mengintegrasikan data imej dengan model bahasa, membolehkannya melaksanakan tugas seperti pengiktirafan visual, penangkapan, dan pengambilan teks imej. Bagaimanakah penalaan halus model penglihatan llama 3.2 meningkatkan prestasinya?