Terapkan model bahasa ChatGLM3-6B pada instans ECS berbasis AMD menggunakan gambar Alibaba Cloud AI Containers (AC2), dengan chatbot sebagai contoh implementasi.
Informasi latar belakang
ChatGLM3 merupakan generasi terbaru model open source dalam seri ChatGLM. ChatGLM3-6B mempertahankan alur percakapan yang lancar dan persyaratan penerapan yang rendah dari versi sebelumnya, sekaligus menambahkan model dasar yang lebih kuat, dukungan fitur yang lebih luas, serta rangkaian open source yang lebih komprehensif (repositori open source ChatGLM3-6B).
Langkah 1: Buat instans ECS
-
Konfigurasikan instans dengan parameter utama berikut.
Untuk semua parameter lainnya, ikuti panduan dalam Buat instans kustom.
-
Instance: ChatGLM3-6B memerlukan sekitar 30 GiB memori. Pilih minimal ecs.g8a.4xlarge (64 GiB) agar beroperasi secara stabil.
-
Image: Alibaba Cloud Linux 3.2104 LTS 64-bit.
-
Public IP: Pilih Assign Public IPv4 Address. Atur metode penagihan ke Pay-By-Traffic dengan bandwidth puncak sebesar 100 Mbps untuk mempercepat pengunduhan model.
-
Data Disk: File model memerlukan ruang penyimpanan yang besar. Atur ukuran data disk menjadi 100 GiB.
-
Langkah 2: Buat lingkungan runtime Docker
-
Instal Docker.
Instal Docker pada Alibaba Cloud Linux 3 sebagaimana dijelaskan dalam Instal dan gunakan Docker dan Docker Compose.
-
Verifikasi bahwa daemon Docker sedang berjalan.
sudo systemctl status docker -
Buat dan jalankan kontainer PyTorch yang dioptimalkan untuk AMD dari AC2.
AC2 menyediakan gambar PyTorch yang dioptimalkan untuk CPU AMD guna menyiapkan lingkungan runtime dengan cepat.
sudo docker pull ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch-amd:1.13.1-3.2304-zendnn4.1 sudo docker run -itd --name pytorch-amd --net host -v $HOME/workspace:/workspace \ ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch-amd:1.13.1-3.2304-zendnn4.1
Langkah 3: Terapkan ChatGLM3-6B secara manual
-
Masuk ke lingkungan kontainer.
sudo docker exec -it -w /workspace pytorch-amd /bin/bashSemua perintah selanjutnya dijalankan di dalam kontainer. Jika Anda keluar, jalankan kembali perintah di atas untuk masuk kembali. Untuk memverifikasi bahwa Anda berada di dalam kontainer, jalankan
cat /proc/1/cgroup | grep docker— adanya output menandakan Anda berada di lingkungan kontainer. -
Instal alat yang diperlukan.
yum install -y tmux git git-lfs wget -
Aktifkan Git LFS.
Git LFS diperlukan untuk mengunduh model pra-latih.
git lfs install -
Unduh kode sumber dan model.
-
Jalankan sesi tmux.
tmuxCatatanPengunduhan model memakan waktu lama dan bergantung pada jaringan. Gunakan tmux untuk mencegah gangguan jika koneksi SSH terputus.
-
Unduh kode sumber dan model pra-latih ChatGLM3-6B.
git clone https://github.com/THUDM/ChatGLM3.git git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git --depth=1 -
Verifikasi hasil unduhan.
ls -lSetelah pengunduhan selesai, direktori berisi hal berikut.
[root@iZ2zexxxxxxxxxxxx workspace]# ls -l total 8 drwxr-xr-x 12 root root 4096 Feb 6 09:35 ChatGLM3 drwxr-xr-x 3 root root 4096 Feb 6 09:57 chatglm3-6b
-
-
Instal dependensi runtime Python.
Kontainer AC2 telah menyertakan banyak komponen AI Python. Gunakan
yumataudnfuntuk menginstal dependensi tambahan.yum install -y python3-{transformers,sentencepiece,protobuf,accelerate} -
Jalankan percakapan chatbot.
-
Ubah parameter pemuatan model.
Kode sumber mencakup skrip chatbot terminal. Sebelum menjalankannya, konfigurasikan model agar dimuat dengan presisi BF16, yang memanfaatkan set instruksi AVX-512 CPU untuk akselerasi.
cd /workspace/ChatGLM3/basic_demo grep "import torch" cli_demo.py 2>&1 >/dev/null || sed -i "3i\import torch" cli_demo.py sed -i 's/"auto")/"auto", torch_dtype=torch.bfloat16)/g' cli_demo.py -
Jalankan chatbot.
export MODEL_PATH="/workspace/chatglm3-6b" python3 cli_demo.pySetelah startup selesai, masukkan teks pada prompt
User:untuk berdialog secara real time dengan ChatGLM3-6B.[root@iz2ze*** basic_demo]# python3 cli_demo.py Loading checkpoint shards: 100%|xxx| Welcome to the ChatGLM3-6B model. Enter your input to start a conversation, enter clear to clear the conversation history, or enter stop to exit the program. User: Who are you? What can you do? ChatGLM: Hello, I am an AI assistant. I can answer your questions and help you solve problems. My capabilities include but are not limited to: 1. Answering questions: I can answer questions on history, science, mathematics, literature, and other topics. 2. Offering practical advice: Whether it is a small everyday issue or a difficult problem at work or in your studies, I will do my best to help. 3. Entertainment and leisure: I can chat with you, tell jokes, and share interesting topics to help you relax. Note that although I try to provide accurate information and suggestions, my knowledge and capabilities are still limited. Exercise caution when you make important decisions. If you need anything, ask me at any time and I will be happy to help. User:CatatanMasukkan
stopuntuk keluar dari chatbot.
-