Rumah > Peranti teknologi > AI > Llama 3.3: Tutorial langkah demi langkah dengan projek demo

Llama 3.3: Tutorial langkah demi langkah dengan projek demo

Christopher Nolan
Lepaskan: 2025-03-02 09:58:10
asal
954 orang telah melayarinya

Di blog ini, kami akan membina aplikasi penjelasan kod berbilang bahasa untuk mempamerkan keupayaan Llama 3.3, terutamanya kekuatannya dalam penalaran, arahan berikut, pengekodan, dan sokongan berbilang bahasa.

Aplikasi ini akan membolehkan pengguna:

    Masukkan coretan kod dalam mana -mana bahasa pengaturcaraan.
  • Pilih bahasa untuk penjelasan (Bahasa Inggeris, Sepanyol, Perancis, dan lain -lain).
  • menghasilkan penjelasan yang mesra pemula mengenai kod.
aplikasi akan dibina menggunakan:

    llama 3.3 dari memeluk muka untuk diproses.
  • streamlit untuk antara muka pengguna.
  • memeluk API Inference Face untuk integrasi.
Kami akan melompat terus untuk membina aplikasi Llama 3.3 kami, tetapi jika anda ingin gambaran keseluruhan model terlebih dahulu, lihat panduan ini di Llama 3.3. Mari kita mulakan!

Menyediakan llama 3.3

Untuk memulakan, kami akan memecahkan ini ke dalam beberapa langkah. Pertama, kami akan meliputi cara mengakses Llama 3.3 menggunakan muka yang memeluk, menetapkan akaun anda, dan dapatkan keizinan yang diperlukan. Kemudian, kami akan mewujudkan persekitaran projek dan memasang kebergantungan yang diperlukan.

mengakses llama 3.3 pada muka pelukan

Satu cara untuk mengakses Llama 3.3 adalah melalui Face Hugging, salah satu platform yang paling popular untuk model pembelajaran mesin hosting. Untuk menggunakan Llama 3.3 melalui API Inference Face Hugging, anda perlu:

    akaun muka yang memeluk.
    pergi untuk memeluk muka dan mendaftar untuk akaun jika anda tidak mempunyai satu.
token API dengan keizinan yang betul.
    • Setelah mendaftar masuk, pergi ke halaman token akses anda.
    • menghasilkan token baca baru.
    • Salin token dengan selamat.
    Akses ke model Llama-3.3-70B-Instruct.
    • Navigasi ke halaman Llama-3.3-70B-Instruct.
    • Anda perlu bersetuju dengan terma lesen dan akses permintaan.
    • Nota: Akses kepada model ini memerlukan langganan Pro. Pastikan akaun anda dinaik taraf.
    Sediakan persekitaran projek anda

    Dengan akses kepada model yang dijamin, mari kita sediakan persekitaran aplikasi. Pertama, kami akan membuat folder untuk projek ini. Buka terminal anda, navigasi ke tempat anda ingin membuat folder projek anda, dan jalankan:

    mkdir multilingual-code-explanation
    cd multilingual-code-explanation
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Kemudian, kami akan membuat fail yang dipanggil app.py untuk memegang kod: sentuh app.pynow, kami membuat persekitaran, dan kami mengaktifkannya:

    python3 -m venv venv
    source venv/bin/activate’
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Pasang kebergantungan yang diperlukan

    Sekarang persekitaran sudah siap, mari pasang perpustakaan yang diperlukan. Pastikan anda menjalankan Python 3.8. Di terminal, jalankan arahan berikut untuk memasang Streamlit, Permintaan, dan Memeluk Perpustakaan Wajah:

    pip install streamlit requests transformers huggingface-hub
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    sekarang, anda harus mempunyai:

    1. Akaun muka yang memeluk dengan token API dan akses kepada model Llama 3.3.
    2. Folder Projek Bersih sedia untuk pengekodan.
    3. semua perpustakaan yang diperlukan dipasang, termasuk:
    • streamlit untuk antara muka.
    • Permintaan untuk membuat panggilan API.
    • Transformers dan Huggingface-Hub untuk berinteraksi dengan memeluk model muka.

    Sekarang persediaan selesai, kami sudah bersedia untuk membina aplikasi! Di bahagian seterusnya, kami akan mula mengodkan aplikasi Penjelasan Kod Multi -Langkah demi langkah.

    Tulis backend

    backend berkomunikasi dengan API muka pelukan untuk menghantar coretan kod dan menerima penjelasan.

    Import Perpustakaan yang diperlukan

    Pertama, kita perlu mengimport Perpustakaan Permintaan. Perpustakaan ini membolehkan kami menghantar permintaan HTTP ke API. Di bahagian atas fail app.py anda, tulis:

    mkdir multilingual-code-explanation
    cd multilingual-code-explanation
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    Sediakan akses API

    untuk berinteraksi dengan Llama 3.3 API yang dihoskan pada muka yang memeluk, anda perlukan:

    1. titik akhir API (URL di mana model dihoskan).
    2. kunci API muka pelukan anda untuk pengesahan.
    python3 -m venv venv
    source venv/bin/activate’
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    dalam kod di atas:

    • Gantikan "HF_YOUR_API_KEY_HERE" dengan token yang anda hasilkan sebelumnya.
    • Kamus Headers termasuk kunci API sehingga memeluk wajah tahu anda diberi kuasa untuk menggunakan titik akhir.

    Tulis fungsi untuk pertanyaan llama 3.3

    Sekarang, kami akan menulis fungsi untuk menghantar permintaan kepada API. Fungsi ini akan:

    1. Bina petikan yang memberitahu model apa yang perlu dilakukan.
    2. menghantar permintaan untuk memeluk muka.
    3. mengendalikan tindak balas dan ekstrak penjelasan yang dihasilkan.
    pip install streamlit requests transformers huggingface-hub
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    Prompt memberitahu Llama 3.3 untuk menerangkan coretan kod dalam bahasa yang dikehendaki. 

    Penafian: Saya bereksperimen dengan arahan yang berbeza untuk mencari yang menghasilkan output terbaik, jadi pasti ada unsur kejuruteraan segera yang terlibat!

    Seterusnya, muatan ditakrifkan. Untuk input, kami menyatakan bahawa prompt dihantar ke model. Dalam parameter, max_new_tokens mengawal panjang tindak balas, manakala suhu menyesuaikan tahap kreativiti output.

    Fungsi Requests.Post () menghantar data untuk memeluk muka. Jika tindak balas berjaya (status_code == 200), teks yang dihasilkan diekstrak. Sekiranya terdapat kesilapan, mesej deskriptif dikembalikan.

    Akhirnya, terdapat langkah -langkah untuk membersihkan dan memformat output dengan betul. Ini memastikan ia dibentangkan dengan kemas, yang meningkatkan pengalaman pengguna dengan ketara.

    Bina frontend streamlit

    Frontend adalah di mana pengguna akan berinteraksi dengan aplikasinya. StreamLit adalah perpustakaan yang mewujudkan aplikasi web interaktif dengan hanya kod Python dan menjadikan proses ini mudah dan intuitif. Inilah yang akan kami gunakan untuk membina bahagian depan aplikasi kami. Saya sangat suka Streamlit untuk membina demo dan poc!

    Import StreamLit

    di bahagian atas fail app.py anda, tambahkan:

    mkdir multilingual-code-explanation
    cd multilingual-code-explanation
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    Sediakan konfigurasi halaman

    kami akan menggunakan set_page_config () untuk menentukan tajuk aplikasi dan susun atur. Dalam kod di bawah:

    • page_title: menetapkan tajuk tab penyemak imbas.
    • Layout = "Wide": Membolehkan aplikasi menggunakan lebar skrin penuh.
    python3 -m venv venv
    source venv/bin/activate’
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    Buat arahan bar sisi

    Untuk membantu pengguna memahami cara menggunakan aplikasinya, kami akan menambah arahan ke bar sisi: dalam kod di bawah:

    • St.Sidebar.Title (): Mewujudkan tajuk untuk bar sisi.
    • St.Sidebar.markdown (): Menambah teks dengan arahan mudah. ​​
    • pembahagi (): Menambah pemisahan visual yang bersih.
    • Custom HTML: Memaparkan kaki kecil di bahagian bawah dengan sentuhan peribadi. Jangan ragu untuk memperibadikan ini sedikit!
    pip install streamlit requests transformers huggingface-hub
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    tambah komponen aplikasi utama

    Kami akan menambah tajuk utama dan sarikata ke halaman:

    import requests
    Salin selepas log masuk

    Sekarang, untuk membiarkan pengguna menampal kod dan memilih bahasa pilihan mereka, kita memerlukan medan input. Kerana teks kod mungkin lebih panjang daripada nama bahasa, kami memilih kawasan teks untuk kod dan input teks untuk bahasa:

    • text_area (): Membuat kotak besar untuk menampal kod.
    • text_input (): membolehkan pengguna menaip bahasa.
    HUGGINGFACE_API_KEY = "hf_your_api_key_here"  # Replace with your actual API key
    API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-3.3-70B-Instruct"
    HEADERS = {"Authorization": f"Bearer {HUGGINGFACE_API_KEY}"}
    Salin selepas log masuk

    Kami kini menambah butang untuk menghasilkan penjelasan. Jika pengguna memasuki kod dan bahasa dan kemudian klik butang Penjelasan Menjana, maka jawapannya dihasilkan.

    def query_llama3(input_text, language):
       # Create the prompt
       prompt = (
           f"Provide a simple explanation of this code in {language}:\n\n{input_text}\n"
           f"Only output the explanation and nothing else. Make sure that the output is written in {language} and only in {language}"
       )
       # Payload for the API
       payload = {
           "inputs": prompt,
           "parameters": {"max_new_tokens": 500, "temperature": 0.3},
       }
      
       # Make the API request
       response = requests.post(API_URL, headers=HEADERS, json=payload)
       if response.status_code == 200:
           result = response.json()
          
           # Extract the response text
           full_response = result[0]["generated_text"] if isinstance(result, list) else result.get("generated_text", "")
          
           # Clean up: Remove the prompt itself from the response
           clean_response = full_response.replace(prompt, "").strip()
           # Further clean any leading colons or formatting
           if ":" in clean_response:
               clean_response = clean_response.split(":", 1)[-1].strip()
          
           return clean_response or "No explanation available."
       else:
           return f"Error: {response.status_code} - {response.text}"
    Salin selepas log masuk

    Apabila butang diklik, aplikasi:

    • cek jika coretan kod dan bahasa disediakan.
    • memaparkan pemutar semasa menanyakan API.
    • menunjukkan penjelasan yang dihasilkan atau amaran jika input hilang.

    Tambah footer

    Untuk membungkus, mari tambahkan footer:

    import streamlit as st
    Salin selepas log masuk

    Jalankan aplikasi llama 3.3

    sudah tiba masanya untuk menjalankan aplikasi! Untuk melancarkan aplikasi anda, jalankan kod ini di terminal:

    st.set_page_config(page_title="Multilingual Code Explanation Assistant", layout="wide")
    Salin selepas log masuk

    aplikasi akan dibuka di penyemak imbas anda, dan anda boleh mula bermain dengannya!

    Llama 3.3: Tutorial langkah demi langkah dengan projek demo

    ujian llama 3.3 dalam tindakan

    Sekarang kami telah membina aplikasi penjelasan kod multilingual kami, sudah tiba masanya untuk menguji bagaimana model berfungsi. Dalam bahagian ini, kami akan menggunakan aplikasi ini untuk memproses beberapa coretan kod dan menilai penjelasan yang dihasilkan dalam bahasa yang berbeza.

    ujian 1: fungsi faktorial dalam python

    Untuk ujian pertama kami, mari kita mulakan dengan skrip python yang mengira faktorial nombor menggunakan rekursi. Inilah kod yang akan kami gunakan:

    st.sidebar.title("How to Use the App")
    st.sidebar.markdown("""
    1. Paste your code snippet into the input box.
    2. Enter the language you want the explanation in (e.g., English, Spanish, French).
    3. Click 'Generate Explanation' to see the results.
    """)
    st.sidebar.divider()
    st.sidebar.markdown(
       """
       <div >
           Made with ♡ by Ana
       </div>
       """,
       unsafe_allow_html=True
    )
    Salin selepas log masuk
    Skrip ini mentakrifkan faktorial fungsi rekursif (n) yang mengira faktorial nombor tertentu. Untuk NUM = 5, fungsi akan mengira 5 × 4 × 3 × 2 × 1, menghasilkan 120. Hasilnya dicetak ke skrin menggunakan pernyataan cetak (). Berikut adalah output apabila kita menghasilkan penjelasan dalam bahasa Sepanyol:

    Llama 3.3: Tutorial langkah demi langkah dengan projek demo

    Llama 3.3: Tutorial langkah demi langkah dengan projek demo Sebagai penceramah Sepanyol, saya dapat mengesahkan bahawa penjelasan dengan betul mengenal pasti bahawa kod itu mengira faktorial nombor menggunakan rekursi. Ia berjalan melalui bagaimana rekursi berfungsi dengan langkah demi langkah, memecahkannya ke dalam istilah mudah. ​​

    Model ini menerangkan proses rekursi dan menunjukkan bagaimana fungsi itu memanggilnya dengan nilai penurunan n sehingga mencapai 0.

    Penjelasannya sepenuhnya dalam bahasa Sepanyol, seperti yang diminta, menunjukkan keupayaan berbilang bahasa Llama 3.3.

    Penggunaan frasa mudah menjadikan konsep rekursi mudah diikuti, walaupun bagi pembaca yang tidak dikenali dengan pengaturcaraan.

    Ia meringkaskan dan menyebut bagaimana rekursi berfungsi untuk input lain seperti 3 dan kepentingan rekursi sebagai konsep penyelesaian masalah yang cekap dalam pengaturcaraan.

    Ujian pertama ini menyoroti kuasa Llama 3.3:

    ia menerangkan dengan tepat kod dengan cara demi langkah.
    • Penjelasan menyesuaikan diri dengan bahasa yang diminta (bahasa Sepanyol dalam kes ini).
    • Hasilnya adalah terperinci, jelas, dan mesra pemula, seperti yang diarahkan.
    • Sekarang kita telah menguji skrip Python, kita boleh beralih ke bahasa pengaturcaraan lain seperti JavaScript atau SQL. Ini akan membantu kami meneroka keupayaan Llama 3.3 di seluruh pemikiran, pengekodan, dan sokongan berbilang bahasa.

    ujian 2: fungsi faktorial dalam javascript

    Dalam ujian ini, kami akan menilai sejauh mana aplikasi penjelasan kod berbilang bahasa mengendalikan fungsi JavaScript dan menghasilkan penjelasan dalam bahasa Perancis.

    Kami menggunakan coretan kod JavaScript berikut di mana saya sengaja memilih pembolehubah samar -samar untuk melihat sejauh mana model mengendalikan ini:

    Coretan kod ini mentakrifkan fungsi rekursif x (a) yang mengira faktorial nombor tertentu a. Keadaan asas memeriksa jika a === 1. Jika ya, ia kembali 1. Jika tidak, fungsi itu memanggilnya dengan A - 1 dan mengadili hasilnya dengan a. Y tetap ditetapkan kepada 6, jadi fungsi x mengira 6 × 5 × 4 × 3 × 2 × 1. Fnally, hasilnya disimpan dalam pembolehubah z dan dipaparkan menggunakan Console.log. Berikut adalah output dan terjemahan dalam bahasa Inggeris:
    mkdir multilingual-code-explanation
    cd multilingual-code-explanation
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk

    Nota: Anda dapat melihat bahawa ia kelihatan seperti respons tiba -tiba dipotong tetapi kerana kita telah mengehadkan output kepada 500 token! Llama 3.3: Tutorial langkah demi langkah dengan projek demo

    Selepas menterjemahkannya, saya menyimpulkan bahawa penjelasan dengan betul mengenal pasti bahawa fungsi x (a) adalah rekursif. Ia memecahkan bagaimana rekursi berfungsi, menerangkan kes asas (a === 1) dan kes rekursif (a * x (a - 1)). Penjelasan secara eksplisit menunjukkan bagaimana fungsi mengira faktorial 6 dan menyebut peranan y (nilai input) dan z (hasilnya). Ia juga mencatatkan bagaimana konsol.log digunakan untuk memaparkan hasilnya.

    Penjelasan sepenuhnya dalam bahasa Perancis, seperti yang diminta. Istilah teknikal seperti "récursive" (rekursif), "factorielle" (factorial), dan "produit" (produk) digunakan dengan betul. Dan bukan hanya itu, ia mengenal pasti bahawa kod ini mengira faktorial nombor secara rekursif.

    Penjelasan mengelakkan jargon terlalu teknikal dan memudahkan rekursi, menjadikannya mudah diakses oleh pembaca yang baru untuk pengaturcaraan.

    Ujian ini menunjukkan bahawa llama 3.3:

    • dengan tepat menerangkan kod JavaScript yang melibatkan rekursi.
    • menghasilkan penjelasan yang jelas dan terperinci dalam bahasa Perancis.
    • menyesuaikan penjelasannya untuk memasukkan peranan dan tingkah laku kod yang berubah -ubah.

    Sekarang kami telah menguji aplikasinya dengan Python dan JavaScript, mari kita teruskan untuk mengujinya dengan pertanyaan SQL untuk menilai keupayaan berbilang bahasa dan penalarannya.

    ujian 3: pertanyaan SQL dalam bahasa Jerman

    Dalam ujian terakhir ini, kami akan menilai bagaimana aplikasi penjelasan kod berbilang bahasa mengendalikan pertanyaan SQL dan menghasilkan penjelasan dalam bahasa Jerman. Inilah coretan SQL yang digunakan:

    mkdir multilingual-code-explanation
    cd multilingual-code-explanation
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
    Pertanyaan ini memilih lajur ID dan mengira jumlah nilai (jumlah (b.value)) untuk setiap ID. Ia membaca data dari dua jadual: table_x (aliased sebagai a) dan table_y (aliased as b). Kemudian, menggunakan keadaan gabungan untuk menyambungkan baris di mana a.ref_id = b.ref. Ia menapis baris di mana b.flag = 1 dan kumpulan data oleh A.ID. Klausa yang mempunyai menapis kumpulan untuk memasukkan hanya di mana jumlah B.Value lebih besar daripada 1000. Akhirnya, ia memerintahkan hasilnya oleh total_amount dalam urutan menurun.

    Setelah memukul butang penjelasan menjana, inilah yang kita dapat:

    Llama 3.3: Tutorial langkah demi langkah dengan projek demo Penjelasan yang dihasilkan adalah ringkas, tepat, dan berstruktur dengan baik. Setiap klausa SQL utama (pilih, dari, menyertai, di mana, kumpulan oleh, mempunyai, dan memerintahkan) jelas dijelaskan. Juga, penerangan sepadan dengan urutan pelaksanaan dalam SQL, yang membantu pembaca mengikuti langkah logik pertanyaan demi langkah.

    Penjelasan sepenuhnya dalam bahasa Jerman, seperti yang diminta.

    istilah SQL utama (mis., "Filtert", "Gruppiert", "Sortiert") digunakan dengan tepat dalam konteks. Penjelasan mengenal pasti bahawa mempunyai digunakan untuk menapis hasil yang dikelompokkan, yang merupakan sumber kekeliruan yang sama untuk pemula. Ia juga menerangkan penggunaan alias (AS) untuk menamakan semula jadual dan lajur untuk kejelasan.

    Penjelasan mengelakkan istilah yang terlalu kompleks dan memberi tumpuan kepada fungsi setiap klausa. Ini memudahkan pemula untuk memahami bagaimana pertanyaan berfungsi.

    Ujian ini menunjukkan bahawa llama 3.3:

    • mengendalikan pertanyaan SQL dengan berkesan.
    • Menjana penjelasan klausa-oleh-klausa yang jelas dan berstruktur.
    • menyokong bahasa Jerman sebagai bahasa output.
    • memberikan perincian yang cukup untuk membantu pemula memahami logik di belakang pertanyaan SQL.

    Kami telah menguji aplikasi dengan coretan kod di Python, JavaScript, dan SQL, menghasilkan penjelasan dalam bahasa Sepanyol, Perancis, dan Jerman. Dalam setiap ujian:

    • Penjelasannya adalah tepat, jelas, dan terperinci.
    • Model menunjukkan kemahiran penalaran yang kuat dan sokongan berbilang bahasa.

    Dengan ujian ini, kami telah mengesahkan bahawa aplikasi yang telah kami bina adalah serba boleh, boleh dipercayai, dan berkesan untuk menjelaskan kod di seluruh bahasa pengaturcaraan yang berbeza dan bahasa semulajadi.

    Kesimpulan

    Tahniah! Anda telah membina pembantu penjelasan kod multilingual yang berfungsi sepenuhnya menggunakan Streamlit dan Llama 3.3 dari muka yang memeluk.

    Dalam tutorial ini, anda belajar:

      bagaimana untuk mengintegrasikan model muka pelukan ke dalam aplikasi streamlit.
    1. Cara menggunakan Llama 3.3 API untuk menerangkan coretan kod.
    2. bagaimana untuk membersihkan respons API dan membuat aplikasi mesra pengguna.
    Projek ini adalah titik permulaan yang hebat untuk meneroka keupayaan Llama 3.3 dalam penalaran kod, sokongan berbilang bahasa, dan kandungan pengajaran. Jangan ragu untuk membuat aplikasi anda sendiri untuk terus meneroka ciri -ciri kuat model ini!

    Atas ialah kandungan terperinci Llama 3.3: Tutorial langkah demi langkah dengan projek demo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    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
    Artikel terbaru oleh pengarang
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan