Kursus
Munculnya model bahasa besar telah mengubah berbagai industri, membawa kekuatan teknologi seperti GPT-3.5 dan GPT-4 dari OpenAI ke beragam aplikasi. Namun, biaya tinggi dan kekhawatiran kerahasiaan data sering kali menghalangi calon pengguna. Di sinilah model open-source seperti Vicuna-13B berperan, menawarkan kinerja serupa tanpa biaya besar dan risiko terhadap informasi sensitif.
Untuk mempelajari lebih lanjut tentang GPT-3.5 dan GPT-4, tutorial kami Menggunakan GPT-3.5 dan GPT-4 melalui OpenAI API di Python adalah titik awal yang baik untuk memahami cara bekerja dengan paket OpenAI Python untuk bercakap-cakap dengan ChatGPT secara terprogram.
Apa itu Vicuna-13B?
Vicuna-13B adalah model percakapan open-source yang dilatih dari fine-tuning model LLaMa 13B menggunakan percakapan yang dibagikan pengguna dan dikumpulkan dari ShareGPT.
Evaluasi awal dengan GPT-4 sebagai juri menunjukkan Vicuna-13B mencapai lebih dari 90% kualitas chatGPT dan Google Bard, lalu melampaui model lain seperti LLaMa dan Alpaca dalam lebih dari 90% kasus. Alur kerja fine-tuning dan evaluasi secara keseluruhan diilustrasikan di bawah ini:

Alur kerja fine-tuning dan evaluasi Vicuna-13B (sumber)
Meskipun ini menyoroti kekuatan Vicuna-13B, model ini memiliki keterbatasannya sendiri dan tidak terbatas pada tugas seperti matematika dan penalaran.

Gambar dari LMSYSORG yang dimodifikasi oleh penulis
Aplikasi Vicuna-13B
Sebagai chatbot cerdas, aplikasi Vicuna-13B sangat banyak, dan beberapa di antaranya digambarkan di bawah ini dalam berbagai industri, seperti layanan pelanggan, kesehatan, pendidikan, keuangan, dan perjalanan/hospitalitas.

Lima aplikasi berbeda Vicuna-13 dalam kehidupan nyata
- Layanan pelanggan: dengan kemampuan memberikan layanan 24/7, chatbot dapat digunakan untuk mendukung pelanggan dan mengotomatiskan pertanyaan yang berulang dan sederhana. Misalnya, Sephora menggunakan chatbot untuk membantu pelanggan menemukan produk, memeriksa status pesanan, dan mendapatkan tips rias dari situs web mereka.
- Kesehatan: pasien dapat dengan cepat mendapatkan informasi kesehatan yang dipersonalisasi, memungkinkan tenaga kesehatan fokus pada penelitian lain untuk penemuan perawatan baru. Misalnya, Babylon Health memanfaatkan chatbot bertenaga AI untuk melakukan penilaian kesehatan guna memantau kesehatan pasien dengan lebih baik.
- Pendidikan: banyak institusi pendidikan ternama, seperti Duolingo, telah menggunakan bot AI dengan cara yang lebih kreatif untuk meningkatkan keterlibatan siswa, memudahkan pemahaman konsep yang lebih lanjut.
- Keuangan: Interaksi pertama saya dengan rekening bank saat membutuhkan bantuan dilakukan melalui bot cerdas, dan saya percaya banyak bank, seperti Wells Fargo, menggunakan teknologi serupa untuk membantu nasabah melakukan tugas berulang seperti memeriksa saldo, mentransfer uang, dan mengelola akun.
- Perjalanan/hospitalitas: Mirip layanan perbankan, chatbot dapat digunakan untuk membantu menemukan destinasi terbaik berdasarkan anggaran dan kebutuhan perjalanan pengguna, bahkan sebagai concierge virtual. Chatbot perhotelan Equinox Hotel New York, Omar, menangani hampir 85% pertanyaan pelanggan mereka. Ini memungkinkan mereka memproses 2600 pertanyaan baru dalam waktu kurang dari tiga bulan dan menghasilkan 150 prospek berkualitas hanya dalam empat bulan.
Daftar di atas tidak lengkap, dan artikel kami Bagaimana NLP mengubah masa depan Data Science membahas bagaimana NLP mendorong masa depan data science dan machine learning, aplikasi masa depannya, risikonya, dan cara menguranginya.
Pentingnya dan relevansi mempelajari cara menjalankan Vicuna-13B
Berdasarkan aplikasi dunia nyata ini, tidak diragukan lagi ada permintaan besar untuk agen percakapan bertenaga AI seperti Vicuna-13B di berbagai industri utama.
Karena itu, menguasai cara menerapkan dan mengintegrasikan teknologi semacam ini ke dalam alur kerja industri menjadi keterampilan yang semakin penting karena semakin banyak perusahaan menggunakan teknologi ini untuk memperkuat keterlibatan pelanggan, menghasilkan lebih banyak prospek, dan secara keseluruhan meningkatkan laba atas investasi.
Kabar baiknya, tujuan utama tutorial ini adalah membantu Anda mengembangkan keterampilan yang diperlukan untuk menjalankan model Vicuna-13B dan dapat mengintegrasikannya ke dalam alur kerja sistem informasi bisnis apa pun.
Prasyarat
Sebelum menyelami proses menjalankan model Vicuna-13B, penting untuk menyiapkan prasyarat dengan benar, yang mencakup:
- Memahami alur kerja Vicuna-13B
- Menyiapkan perangkat keras dan perangkat lunak yang diperlukan
- Mendapatkan bobot LLaMa untuk Vicuna-13B
Setelah persyaratan ini terpenuhi, kita akan memiliki pemahaman yang lebih baik tentang format input dan output serta dapat menjalankan model dengan sukses.
Memahami alur kerja Vicuna-13B
Memahami format input dan output Vicuna-13B dengan lebih baik dapat memberikan pengetahuan minimum bagi pengembang tentang faktor-faktor yang dapat memengaruhi pengambilan keputusan model.
Bagian ini menjelaskan parameter utama yang diperlukan dalam input beserta format output yang diharapkan dari model Vicuna-13B.

Alur kerja minimalis dari alur kerja end-to-end
Mari pahami alur kerja di atas. Pertama, pengguna mengirimkan input yang diinginkan, yang mencakup prompt, yaitu permintaan tekstual utama yang mungkin ingin pengguna dapatkan jawabannya.
Prompt disertakan bersama parameter tambahan berikut:
- Max-length: digunakan untuk menentukan jumlah maksimum karakter yang harus dipertimbangkan model dalam respons akhir.
- Temperature: nilainya berkisar antara 0 dan 1. Semakin rendah nilainya, semakin deterministik hasil akhirnya. Sebaliknya, nilai yang lebih tinggi menghasilkan lebih banyak keacakan, sehingga output lebih beragam dan kreatif.
- Top-p: digunakan untuk mengontrol keragaman prediksi, artinya memilih token paling mungkin yang probabilitas kumulatifnya melebihi ambang tertentu. Dimulai dari nol, nilai yang lebih tinggi meningkatkan peluang menemukan output yang lebih baik tetapi memerlukan komputasi tambahan.
- Repetition_penalty: jika suatu kata disebutkan terlalu sering, parameter ini membantu menghindari penyebutan berlebihan kata tersebut, sehingga hasil akhir lebih bervariasi.
- Seed: untuk memastikan hasil yang konsisten untuk input tertentu di berbagai kali eksekusi.
- Debug: parameter ini berguna ketika pengguna ingin mengaktifkan mode debugging, yang bermanfaat untuk mendiagnosis perilaku dan kinerja model.
Setelah mengirimkan prompt dengan parameter di atas, model Vicuna-13B melakukan pemrosesan yang relevan di balik layar untuk menghasilkan output yang diperlukan, yang sesuai dengan skema berikut:
- Text: output tekstual yang dihasilkan oleh model Vicuna
- Metadata: beberapa informasi tambahan yang dihasilkan oleh model. Penjelasan mendalam diberikan di bagian berikutnya.
Menyiapkan perangkat keras dan perangkat lunak yang diperlukan
Sekarang setelah kita lebih memahami input dan output, kita dapat melanjutkan dengan mengidentifikasi pustaka utama untuk berhasil menjalankan model vicuna.
- Conda: memastikan lingkungan yang bersih dan terisolasi untuk dependensi model vicuna.
- FastAPI: menyediakan kerangka kerja modern untuk mengembangkan API model Vicuna dengan analisis otomatis terhadap prompt pengguna.
- Uvicorn: menyajikan aplikasi FastAPI model Vicuna, memastikan kinerja yang efisien dan andal.
- LLaMa.cpp: menangani kompleksitas pemrosesan model bahasa besar yang membentuk model vicuna.
Membuat lingkungan virtual
Semua perintah di bagian ini dijalankan dari terminal. Menggunakan pernyataan conda create, kita membuat lingkungan virtual bernama vicuna-env.
conda create --name vicuna-env
Setelah berhasil membuat lingkungan virtual, kita mengaktifkan lingkungan virtual di atas menggunakan pernyataan conda activate, sebagai berikut dari :
conda activate vicuna-env
Pernyataan di atas akan menampilkan nama variabel lingkungan dalam tanda kurung di awal terminal sebagai berikut:

Nama lingkungan virtual setelah aktivasi
Instalasi pustaka
Pustaka di atas dapat diinstal dengan dua cara. Pertama, dengan menjalankan pip install secara manual untuk setiap pustaka, dan ini bisa memakan waktu saat menangani jumlah pustaka yang signifikan serta tidak optimal ketika bekerja di tingkat industri.
Cara kedua adalah opsi terbaik dan menggunakan file requirements.txt yang berisi masing-masing pustaka yang diperlukan. Di bawah ini adalah isi file requirements.txt, bersama dengan instalasinya menggunakan satu perintah pip install.
# Content of the requirements.txt file
llama-cpp-python==0.1.48
fastapi
uvicorn[standard]
Ketiga pustaka dapat diinstal sebagai berikut:
pip install -r requirements.txt
Mendapatkan bobot LLaMa
Dari platform Hugging Face, kita dapat mengunduh bobot model Vicuna seperti yang ditunjukkan di bawah ini:

Dua langkah utama untuk mengunduh bobot Vicuna-13B dari Hugging Face
Untuk organisasi kode yang lebih baik, kita dapat memindahkan bobot model yang diunduh ke folder model baru.
Pengemasan dan Pembuatan API
Meskipun semua prasyarat telah dipenuhi untuk menjalankan model melalui command line, menerapkan API yang terhubung dengan model adalah pendekatan yang lebih praktis. Ini akan membuat model lebih mudah diakses oleh lebih banyak pengguna.
Untuk mencapainya, kita memerlukan langkah-langkah berikut:
- Memuat model dari mesin lokal
- Membangun API untuk mengekspos model
Struktur keseluruhan kode sumber diberikan di bawah ini, dan kode lengkap tersedia di GitHub.
------ model
|------- ggml-vicuna-13b-4bit.bin
------ requirements.txt
------ vicuna_app.py
ggml-vicuna-13b-4bit.binadalah bobot model yang diunduh di folder modelrequirements.txtberisi dependensi untuk menjalankan modelvicuna_app.pyberisi kode Python untuk membuat API, yang menjadi fokus utama bagian ini.
Definisi rute utama API
Dalam kasus kita, diperlukan dua rute utama berikut. Sebelumnya, kita perlu mengimpor pustaka yang relevan, memuat model, dan membuat instance modul FastAPI.
# Import the libraries
from fastapi import FastAPI, HTTPException
from llama_cpp import Llama
# Load the model
vicuna_model_path = "./model/ggml-vicuna-13b-4bit.bin"
vicuna_model = Llama(model_path=vicuna_model_path)
app = FastAPI()
- Rute pertama: Rute default
"/”mengembalikan format JSON berikut“Message”: “Welcome to the Vicuna Demo FastAPI”melalui fungsihome()yang tidak menerima parameter.
# Define the default route
@app.get("/")
def home():
return {"Message": "Welcome to the Vicuna Demo FastAPI"}
- Rute kedua: “
/vicuna_says” bertanggung jawab memicu fungsi answer_prompt(), yang menerima prompt pengguna sebagai parameter, dan mengembalikan respons JSON yang berisi hasil model Vicuna dan beberapa metadata tambahan.
@app.post("/vicuna_says")
def answer_prompt(user_prompt):
if (not (user_prompt)):
raise HTTPException(status_code=400,
detail="Please Provide a valid text message")
response = vicuna_model(user_prompt)
return {"Answer": response}
Eksekusi rute
Kita akhirnya dapat menjalankan API dengan instruksi berikut dari command line, dari lokasi file vicuna_app.py.
uvicorn vicuna_app:app --reload
uvicornmemulai server unicorn.vicuna_app: mengacu pada pythonvicuna_app.py. Ini adalah yang di sebelah kiri tanda “:”.app: mengacu pada objek yang dibuat di dalam filevicuna_app.pydengan instruksiapp = FastAPI(). Jika nama filenyamain.pyinstruksinya akanuvicorn main:app --reload--reload: opsi yang digunakan untuk memulai ulang server setelah ada perubahan kode. Perlu diingat bahwa ini hanya digunakan saat tahap pengembangan, bukan saat tahap deployment.
Berikut hasil yang kita dapatkan dari menjalankan perintah sebelumnya, dan kita dapat melihat bahwa server berjalan di localhost pada port 8000 (http://127.0.0.1:8000)

Url API yang berjalan di localhost
Mengakses rute default sangat mudah. Cukup ketik URL berikut pada browser apa pun.

Respons dari rute default
Ini bagian yang menarik. URL http://127.0.0.1:8000/docs menyediakan dashboard lengkap untuk berinteraksi dengan API, dan hasilnya ditunjukkan di bawah.

Visualisasi grafis dari dua rute
Dari Gambar sebelumnya, saat kita memilih /vicuna_says pada kotak hijau, kita mendapatkan panduan lengkap untuk berinteraksi dengan API kita, seperti ditunjukkan di bawah.

Tiga langkah utama untuk mengeksekusi prompt pengguna
Cukup pilih tab Try it out dan berikan pesan yang ingin Anda prediksi di area text_message.
Kita akhirnya mendapatkan hasil berikut setelah memilih tombol Execute.

Respons server dari model Vicuna terhadap pertanyaan pengguna
Respons model Vicuna disajikan pada kolom “text”, dan hasilnya terlihat cukup mengesankan.
Metadata tambahan disertakan, seperti model yang digunakan, tanggal pembuatan respons, jumlah token dalam prompt, dan jumlah token dalam respons, untuk menyebut beberapa.
Beberapa wawasan tentang bagaimana deployment memudahkan penggunaan Vicuna-13B
Menerapkan model sekuat ini meningkatkan pengalaman pengguna dan efisiensi operasional dalam beberapa cara yang patut dicatat, dan tidak terbatas pada yang di bawah ini:
- Kemudahan akses: Deployment memungkinkan pengguna mengakses model melalui API, menghilangkan kebutuhan mengunduh dan menyiapkan model secara lokal.
- Manajemen sumber daya: Sumber daya server yang memadai dapat menangani banyak permintaan secara simultan, memberikan layanan yang andal.
- Skalabilitas: Sumber daya dapat ditingkatkan untuk memenuhi permintaan pengguna yang meningkat, memastikan kinerja yang konsisten.
- Pembaruan dan pemeliharaan: Pembaruan dan pemeliharaan terpusat memastikan pengguna selalu memiliki akses ke versi terbaru model.
- Integrasi: Integrasi yang lebih mudah dengan sistem dan aplikasi lain memperluas potensi kasus penggunaan dan daya guna model.
Secara keseluruhan, deployment memfasilitasi penggunaan model vicuna-13B yang lebih mudah diakses, andal, dan serbaguna, memperluas penerapannya bagi berbagai pengguna dan aplikasi.
Praktik Terbaik dan Tips Vicuna-13B
Saat bekerja dengan model Vicuna-13B, beberapa praktik terbaik dan tips dapat membantu pengembang mengoptimalkan pengalaman, hasil, dan mengatasi masalah umum.
Tips untuk mengoptimalkan kinerja model Vacune-13B
Dengan mengikuti praktik terbaik dan tips ini, mereka dapat memastikan pengalaman yang lebih mulus dan hasil yang lebih baik saat bekerja dengan model Vicuna-13B.

4 tips untuk mengoptimalkan kinerja model Vicuna-13B
- Optimasi perangkat keras: Pastikan server yang menampung Vicuna-13B memiliki RAM dan CPU yang memadai untuk mengelola kebutuhan komputasi model secara efisien.
- Pemrosesan batch: Manfaatkan kemampuan pemrosesan paralel model dengan memproses data secara batch, bila memungkinkan.
- Caching hasil: Terapkan caching untuk hasil kueri umum guna mengurangi komputasi berulang dan meningkatkan waktu respons.
- Prapemrosesan input: Praproses data input untuk memastikan formatnya optimal bagi model, sehingga membantu meningkatkan akurasi dan kinerja.
Pemecahan masalah umum
Beralih dari optimasi kinerja, penting juga untuk mahir memecahkan masalah umum yang mungkin muncul selama penggunaan Vicuna-13B, dan di bawah ini empat contohnya:

Beberapa masalah pemecahan masalah umum
- Kesalahan memori: Jika terjadi kesalahan memori, pertimbangkan opsi seperti menambah RAM server atau mengoptimalkan ukuran input agar lebih mudah dikelola oleh model.
- Waktu respons lambat: Tingkatkan CPU server atau terapkan pemrosesan batch untuk memperbaiki waktu respons model yang lambat.
- Output tidak tepat: Jika output tidak tepat atau tidak terduga, tinjau dengan cermat data input untuk setiap anomali atau kesalahan yang mungkin memengaruhi hasil.
- Masalah integrasi: Jika ada tantangan dalam mengintegrasikan Vicuna-13B dengan sistem atau aplikasi lain, tinjau secara menyeluruh dokumentasi API dan verifikasi bahwa semua titik integrasi telah dikonfigurasi dengan benar.
Kesimpulan
Singkatnya, artikel ini telah memberikan gambaran komprehensif tentang menyiapkan dan memanfaatkan model Vicuna-13B. Kami membahas prasyarat yang diperlukan, termasuk perangkat keras, perangkat lunak, dan mendapatkan bobot LLaMa yang penting untuk menjalankan model dengan sukses.
Instruksi terperinci diberikan untuk menyiapkan lingkungan kerja, memasang perangkat lunak yang diperlukan, dan menyiapkan bobot Vicuna-13B, menekankan pentingnya bobot dalam model bahasa.
Selain itu, kami membahas pengemasan dan deployment Vicuna-13B, menyoroti bagaimana deployment memfasilitasi penggunaannya sebagai antarmuka web dan API.
Terakhir, wawasan praktis tentang berinteraksi dengan Vicuna-13B, contoh kemampuannya, dan praktik terbaik untuk mengoptimalkan kinerjanya serta memecahkan masalah umum juga dibagikan.
Siap menyelami lebih dalam dunia AI dan machine learning? Tingkatkan keterampilan Anda dengan kerangka deep learning andal yang digunakan para profesional AI. Ikuti kursus Deep Learning dengan PyTorch hari ini.
Seorang data scientist serbabisa yang senang berbagi pengetahuan dan memberi dampak bagi orang lain, Zoumana adalah pembuat konten di YouTube dan penulis teknologi teratas di Medium. Ia menikmati berbicara di depan umum, ngoding, dan mengajar. Zoumana meraih dua gelar magister: yang pertama di bidang ilmu komputer dengan fokus Machine Learning di Paris, Prancis, dan yang kedua di bidang Data Science dari Texas Tech University di AS. Kariernya dimulai sebagai Pengembang Perangkat Lunak di Groupe OPEN, Prancis, lalu bergabung dengan IBM sebagai Konsultan Machine Learning, di mana ia mengembangkan solusi AI end-to-end untuk perusahaan asuransi. Zoumana kemudian bergabung dengan Axionable, startup AI Berkelanjutan pertama yang berbasis di Paris dan Montreal. Di sana, ia berperan sebagai Data Scientist dan mengimplementasikan produk AI, terutama use case NLP, untuk klien dari Prancis, Montreal, Singapura, dan Swiss. Selain itu, 5% dari waktunya didedikasikan untuk Riset dan Pengembangan. Saat ini, ia bekerja sebagai Senior Data Scientist di IFC - World Bank Group.

