Model bahasa besar (LLM) telah berkembang pesat, beralih daripada rasa ingin tahu penyelidikan kepada alat yang berkuasa untuk pelbagai aplikasi. Walaupun memutar chatbot mudah menggunakan alat seperti Llama.cpp atau Ollama agak mudah, menggunakan LLM dalam persekitaran pengeluaran untuk mengendalikan beban kerja dunia sebenar memberikan set cabaran yang berbeza. Cabaran ini termasuk menguruskan berbilang pengguna serentak, memastikan jaminan masa operasi, dan mengoptimumkan penggunaan sumber GPU untuk mengelakkan melebihi kekangan belanjawan.
Sumber yang diperlukan untuk melayani LLM pada skala berbeza dengan ketara daripada yang diperlukan untuk menjalankannya pada komputer peribadi. Model yang beroperasi dengan cekap dengan kurang daripada 4 GB memori pada PC boleh memerlukan 40 GB atau lebih memori GPU apabila digunakan dalam tetapan pengeluaran untuk mengendalikan banyak permintaan serentak.
Panduan ini meneroka jalan untuk menskalakan beban kerja AI daripada bukti konsep awal kepada penggunaan sedia pengeluaran. Kami akan membimbing anda melalui penggunaan model seperti Gemma 3 atau Llama 3 pada skala.
Memanfaatkan API untuk Integrasi LLM
Mengintegrasikan LLM ke dalam asas kod boleh dicapai melalui pelbagai kaedah, tetapi menggunakan API serasi OpenAI sangat disyorkan untuk penggunaan pengeluaran. Pendekatan ini memberikan fleksibiliti untuk menyesuaikan diri dengan landskap model yang berkembang pesat. Model yang dianggap canggih hanya beberapa bulan lalu boleh menjadi ketinggalan zaman dengan cepat.
Sejak ledakan AI yang bermula dengan ChatGPT pada tahun 2022, antara muka API OpenAI telah muncul sebagai standard de facto untuk menyambungkan aplikasi kepada LLM. Standard ini membolehkan pembangun membina aplikasi menggunakan sumber yang tersedia, seperti bermula dengan Mistral 7B dalam Llama.cpp pada buku nota dan beralih dengan lancar ke pelayan API Mistral AI untuk penggunaan pengeluaran. Ini menghapuskan terikat kepada satu model, enjin inferens atau pembekal API.
Perkhidmatan inferens berasaskan awan menyediakan cara mesra perbelanjaan modal (capex) untuk menskalakan penggunaan AI. Perkhidmatan ini menghapuskan keperluan untuk pengurusan perkakasan dan konfigurasi model, sebaliknya menyediakan API untuk integrasi aplikasi.
Sebagai tambahan kepada tawaran API daripada pembina model utama, bilangan permulaan infrastruktur AI yang semakin meningkat menawarkan inferens-sebagai-perkhidmatan untuk model berat terbuka. Pembekal ini berbeza dalam pendekatan mereka. Sesetengah, seperti SambaNova, Cerebras, dan Groq, memanfaatkan perkakasan khusus atau teknik seperti penyahkodan spekulatif untuk mempercepatkan inferens tetapi menawarkan pilihan model yang lebih kecil. Yang lain, seperti Fireworks AI, menyokong penggunaan model penalaan halus tersuai menggunakan penyesuai Adaptasi Pangkat Rendah (LoRA). Kepelbagaian ekosistem AI memerlukan penyelidikan menyeluruh sebelum komited kepada pembekal tertentu.
Pertimbangan Penggunaan LLM Di Premis
Dalam situasi di mana pendekatan berasaskan awan tidak dapat dilaksanakan disebabkan oleh privasi, peraturan atau kekangan infrastruktur sedia ada (cth., syarikat telah melabur dalam pelayan GPU), penggunaan di premis menjadi perlu. Ini boleh membentangkan beberapa cabaran. Beberapa soalan lazim yang timbul termasuk:
- Pemilihan Model: Model yang sesuai bergantung pada kes penggunaan tertentu. Model yang direka untuk chatbot perkhidmatan pelanggan akan mempunyai keperluan yang berbeza daripada yang digunakan untuk penjanaan yang dipertingkatkan pengambilan atau sebagai pembantu kod. Meluangkan masa dengan pembekal API untuk mengenal pasti model yang memenuhi keperluan adalah disyorkan.
- Keperluan Perkakasan: Menentukan perkakasan yang diperlukan adalah kritikal, kerana GPU adalah mahal dan sukar diperoleh. Model itu sendiri boleh memberikan pandangan tentang perkakasan yang diperlukan untuk menjalankannya. Model yang lebih besar memerlukan lebih banyak perkakasan. Anggaran kasar memori GPU minimum boleh dikira dengan mendarabkan kiraan parameter (dalam bilion) dengan 2GB untuk model yang dilatih pada ketepatan 16-bit. Untuk model 8-bit, 1GB per bilion parameter diperlukan. Teknik pemampatan model seperti kuantisasi boleh mengurangkan ini kepada 512MB per bilion parameter. Ini adalah had yang lebih rendah. Memori tambahan diperlukan untuk melayani model kepada berbilang pengguna serentak disebabkan oleh cache kunci-nilai, yang bertindak sebagai memori jangka pendek model. Matriks sokongan Nvidia menawarkan panduan tentang GPU yang diperlukan untuk menjalankan pelbagai model.
- Redundansi: Sebagai tambahan kepada saiz perkakasan kepada model, redundansi mesti dipertimbangkan. Node GPU tunggal terdedah kepada kegagalan, jadi menggunakan dua atau lebih sistem untuk failover dan pengimbangan beban adalah penting.
- Kaedah Penggunaan: LLM boleh digunakan dan dilayan dalam pengeluaran menggunakan pelbagai kaedah: logam kosong dengan pengimbang beban, mesin maya, atau bekas dalam Docker atau Kubernetes. Kubernetes memudahkan penggunaan berskala besar dengan mengautomasikan penciptaan bekas, rangkaian dan pengimbangan beban.
Kubernetes untuk Penggunaan LLM
Kubernetes menghapuskan sebahagian besar kerumitan yang berkaitan dengan penggunaan berskala besar dengan mengautomasikan penciptaan bekas, rangkaian dan pengimbangan beban. Banyak perusahaan telah menerima pakai dan memahami Kubernetes. Nvidia, Hugging Face, dan lain-lain mengutamakan persekitaran bekas dengan Nvidia Inference Microservices (NIM) dan Hugging Face Generative AI Services (HUGS), yang telah dikonfigurasikan untuk beban kerja dan penggunaan biasa.
Enjin Inferens
Pelbagai enjin inferens tersedia untuk menjalankan model, termasuk Ollama dan Llama.cpp, yang serasi dengan pelbagai perkakasan. Untuk menskalakan model, pustaka seperti vLLM, TensorRT LLM, SGLang, dan PyTorch sering digunakan. Panduan ini memfokuskan pada penggunaan model menggunakan vLLM, kerana ia menyokong pilihan model popular yang luas dan menawarkan sokongan dan keserasian yang luas merentasi Nvidia, AMD dan perkakasan lain.
Menyediakan Persekitaran Kubernetes
Menyediakan persekitaran Kubernetes untuk berfungsi dengan GPU memerlukan pemacu dan kebergantungan tambahan berbanding persediaan Kubernetes biasa. Proses persediaan akan berbeza untuk perkakasan AMD dan Nvidia.
Panduan ini menggunakan K3S dalam konfigurasi nod tunggal. Langkah asas adalah serupa dengan persekitaran berbilang nod, tetapi kebergantungan mesti dipenuhi pada setiap nod pekerja GPU, dan konfigurasi storan mungkin memerlukan pelarasan.
Matlamatnya adalah untuk menyediakan asas yang kukuh untuk menggunakan beban kerja inferens dengan cara yang mesra pengeluaran. Prasyarat berikut diperlukan:
- Pelayan atau stesen kerja dengan sekurang-kurangnya satu papan GPU AMD atau Nvidia yang disokong
- Pemasangan segar Ubuntu 24.04 LTS
Kebergantungan Nvidia
Menyediakan persekitaran K3S yang dipercepatkan Nvidia memerlukan pemasangan Pengurus Fabrik Pemacu CUDA dan pemacu pelayan tanpa kepala. Pasang utiliti pelayan Nvidia untuk isu pemacu penyahpepijatan.
Persediaan Awal dan Konfigurasi
Setelah pelayan Ubuntu dihidupkan, langkah pertama adalah untuk memastikan sistem dikemas kini. Ini memastikan bahawa semua pakej sistem adalah yang terkini dan serasi.