Tentang
Lambda-Instruktor adalah penyebaran eksperimental dari model instruktur model-embedding di AWS Lambda.
Instruktur-Large adalah model yang dibangun oleh kelompok NLP dari University of Hong Kong di bawah lisensi Apache-2.0 dan berkinerja baik pada tugas pengambilan (yaitu menemukan dokumen terkait untuk kalimat yang diberikan). Pada Juni-2023, tampaknya berada di level dengan teks-embedding-002 Openai di berbagai tolok ukur di papan peringkat yang memeluk.
Potensi Penggunaan Kasus:
- Pasangkan dengan inferensi lokal: menghasilkan sejumlah besar embeddings dengan instruktur-besar di mesin lokal Anda di muka (vs. membayar API komersial seperti Openai bahkan untuk pengujian).
- Residensi Data: Menyebarkan fungsi Lambda di daerah AWS global seperti termasuk Eropa dan AS.
- Skalabilitas: Timbangan AWS Lambda hampir tidak terbatas, tanpa overhead mengelola server.
- Inferensi produksi berbiaya rendah: Dengan harga per-permintaan AWS Lambda vs menjalankan server 24/7.
- Gunakan dengan database vektor: seperti chromadb atau pinecone.
Kinerja, Biaya, dan Keterbatasan:
- Cold Start: Fungsi Lambda memiliki awal yang dingin sekitar 150 detik (dengan basis instruktur sekitar 50-an).
- Inferensi: Permintaan berturut-turut diproses dalam waktu sekitar 6 detik per permintaan (dengan basis instruktur sekitar 3 detik).
- Max. Token: Instruktur-Large tampaknya dibatasi pada panjang urutan 512 token (sekitar 380 kata), sedangkan teks-embedding-002 openai mendukung hingga 8191 token (6000 kata).
- Biaya: Biaya AWS Lambda dapat diperkirakan di:
- Konfigurasi:
- Wilayah: EU-Central-1 (Eropa, Frankfurt)
- Harga ARM: $ 0,0000133334 untuk setiap GB detik
- Permintaan: $ 0,20 per 1 juta permintaan
- Ukuran Memori: 10240 MB
- Perhitungan:
- Durasi: $ 0,0000133334 * 10,24 GB * 6 detik = 0,000819204096 / permintaan
- Permintaan: Permintaan $ 0,20 / 1 juta = 0,0000002 / Permintaan
- Total = $ 0,0008194 / permintaan
- Pada Juni 2023, itu lebih mahal dari ADA V2 Openai di $ 0,0001/1K token setelah pengurangan harga 75%.
Perbaikan lebih lanjut: Biaya dan awal yang dingin dapat ditingkatkan lebih lanjut dengan AWS Lambda yang disediakan konkurensi dan rencana penghematan AWS. Lihat juga kalkulator AWS pada permintaan 1m per bulan untuk proyek ini.
Penyebaran
Prasyarat
- Pengetahuan AWS Umum sangat membantu.
- Anda perlu memasang Docker dan GIT-LFS secara lokal.
- Anda harus menginstal AWS-SAM secara lokal dan dikonfigurasi dengan akun AWS Anda.
- Lingkungan lokal berbasis ARM direkomendasikan (Mac M1/M2). Jika Anda mengalami masalah, cobalah menyebarkan melalui mesin EC2 berbasis ARM (panduan di bawah).
Pengaturan
Kami akan mengunduh model instruktur secara lokal, mengemas aplikasi dalam wadah Docker dan menggunakannya pada fungsi Lambda berbasis ARM. Kami menggunakan lengan karena berbiaya lebih rendah dengan AWS dan ternyata lebih cepat.
- Klon Repositori
git clone https://github.com/maxsagt/lambda-instructor.git
- Klon model instruktur-besar ke folder ./app/model (lihat https://huggingface.co/hkunlp/instructor-large?clone=true)
git lfs install ./app/model
git clone https://huggingface.co/hkunlp/instructor-large ./app/model
- Bangun wadah Docker dengan AWS-SAM
sam build --cached --parallel
- Uji secara lokal dengan muatan sampel di event.json.
sam local invoke -e event.json
- Digunakan ke AWS. Perhatikan bahwa Pengguna AWS Anda atau Kebutuhan Peran (sementara) IIM untuk AWS Cloudformation, Elastic Container Registry, S3, Lambda dan IAM.
- Selesai. Anda akan menemukan fungsi Lambda di AWS yang siap untuk konfigurasi lebih lanjut. Misalnya:
- Uji fungsi lambda di konsol lambda.
- Mengkonfigurasi URL Fungsi Lambda untuk secara langsung menggunakan fungsi Lambda melalui URL.
- Tambahkan Gateway API untuk fungsi API yang lebih canggih.
Opsional: Menyebarkan melalui mesin EC2 berbasis ARM.
Jika Anda tidak memiliki mesin ARM di tangan, atau ingin menggunakan AWS untuk pengunggahan wadah Docker yang lebih cepat.
- Buat contoh AWS:
- Diuji di Ubuntu Server 22.04 LTS (HVM), Jenis Volume SSD, AMI-0329D3839379BFD15, Arsitektur: 64-bit (ARM), Tipe Instance: T4G.Medium, Penyimpanan: 20Gib GP3.
- Pastikan VPC Anda bersifat publik.
- Mulailah instance.
- Klik pada instance dan tambahkan peran IAM melalui Tindakan -> Keamanan. Peran IAM membutuhkan akses IAM, S3, ECR, Cloudformation dan Lambda.
- Unggah repositori ke instance AWS jarak jauh:
git clone https://github.com/maxsagt/lambda-instructor.git
cd lambda-instructor
zip -r deployment.zip . -x ' ./app/model/* '
PUBLIC_IPv4_DNS=ec2-x-xx-xxx-xxx.eu-central-1.compute.amazonaws.com
scp -o StrictHostKeyChecking=no -i " ../my_key.pem " ./deployment.zip ubuntu@ $PUBLIC_IPv4_DNS :deployment.zip
- Masuk ke instance Anda dan jalankan skrip penyebaran sampel.
ssh -o StrictHostKeyChecking=no -i " ../my_key.pem " ubuntu@ $PUBLIC_IPv4_DNS
sudo apt install unzip
unzip -o deployment.zip
chmod +x sample_deployment.sh
sudo bash -x sample_deployment.sh
- Bangun dan gunakan sesuai di atas. Jika perintah SAM tidak dikenali, baca dokumentasi SAM di sini.
- Jangan lupa untuk mengakhiri instance setelah digunakan.
Masukan
Umpan balik dan kontribusi dipersilakan!