Rumah >Peranti teknologi >AI >Penalaan halus llama 3.2 Visi untuk Pengekstrakan Kalori Dari Imej

Penalaan halus llama 3.2 Visi untuk Pengekstrakan Kalori Dari Imej

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-03-04 09:44:16111semak imbas

Pada tahun -tahun kebelakangan ini, integrasi kecerdasan buatan ke dalam pelbagai domain telah merevolusikan bagaimana kita berinteraksi dengan teknologi. Salah satu kemajuan yang paling menjanjikan ialah perkembangan model multimodal yang mampu memahami dan memproses maklumat visual dan tekstual. Antaranya, model penglihatan Llama 3.2 menonjol sebagai alat yang berkuasa untuk aplikasi yang memerlukan analisis imej yang rumit. Artikel ini meneroka proses penalaan halus Llama 3.2 Vision Model khusus untuk mengekstrak maklumat kalori dari imej makanan, menggunakan Ai tidak bersuara.

Objektif Pembelajaran

    meneroka seni bina dan ciri -ciri model penglihatan Llama 3.2.
  • Dapatkan diperkenalkan kepada AI yang tidak jelas dan ciri -ciri utamanya.
  • Ketahui cara untuk menyempurnakan model penglihatan Llama 3.2 11B, untuk menganalisis data yang berkaitan dengan makanan dengan berkesan, menggunakan dataset imej dengan bantuan AI Unsloth.
  • Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data

Jadual Kandungan llama 3.2 Model penglihatan Aplikasi Llama 3.2 Model Vision

Visi
    penalaan halus llama 3.2 11b model penglihatan menggunakan unsloth ai
    • Langkah 1. Memasang perpustakaan yang diperlukan
    • Langkah 2. Model
  • Langkah 6. Memulakan penalaan halus
    • Langkah 7. Memeriksa hasil Model Post Fine-Tuning
    • Pengujian pada data sampel
  • llama 3.2 Model Vision
    • 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

      Penalaan halus llama 3.2 Visi untuk Pengekstrakan Kalori Dari Imej

      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

    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,
    )
    • 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]")
    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]
    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:

    Penalaan halus llama 3.2 Visi untuk Pengekstrakan Kalori Dari Imej

    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

    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
    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.

    Penalaan halus llama 3.2 Visi untuk Pengekstrakan Kalori Dari Imej

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

    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

    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?

    a. Penalaan halus menyesuaikan model kepada tugas-tugas tertentu, seperti mengekstrak maklumat kalori dari imej makanan. Dengan melatih model pada dataset khusus, ia menjadi lebih tepat untuk mengiktiraf barangan makanan dan menganggarkan kandungan pemakanan mereka, menjadikannya lebih berkesan dalam aplikasi dunia nyata. Q3. Apakah peranan yang dimainkan oleh AI yang tidak sesuai dalam proses penalaan halus? a. Unsloth AI meningkatkan proses penalaan halus dengan menjadikannya lebih cepat dan lebih cekap. Ia membolehkan model disesuaikan sehingga 30 kali lebih cepat sambil mengurangkan penggunaan memori sebanyak 60%. Platform ini juga menyediakan alat untuk persediaan dan skalabiliti mudah, menyokong kedua-dua pasukan kecil dan aplikasi peringkat perusahaan.

    Q4. Apakah lora (penyesuaian rendah peringkat), dan mengapa ia digunakan dalam proses penalaan halus? a. Lora adalah teknik yang digunakan untuk mengoptimumkan prestasi model sambil mengurangkan penggunaan sumber. Ia membantu menyempurnakan model bahasa yang besar dengan lebih cekap, menjadikan proses latihan lebih cepat dan kurang komputasi intensif tanpa menjejaskan ketepatan. LORA mengubah hanya subset kecil parameter dengan memperkenalkan matriks peringkat rendah ke dalam seni bina model.

    Q5. Apa aplikasi praktikal yang boleh digunakan oleh Llama 3.2 Model penglihatan yang digunakan untuk?

    a. Model yang disempurnakan boleh digunakan dalam pelbagai aplikasi, termasuk pengekstrakan kalori dari imej makanan, menjawab soalan visual, pemahaman dokumen, dan penangkapan imej. Ia dapat meningkatkan tugas dengan ketara yang memerlukan analisis visual dan tekstual, terutamanya dalam bidang seperti kesihatan dan pemakanan.

Atas ialah kandungan terperinci Penalaan halus llama 3.2 Visi untuk Pengekstrakan Kalori Dari Imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn