Large Language Models (LLM) เป็นเทคโนโลยีล้ำสมัยที่ฉันกำลังทดลองอยู่ แม้ว่าบริการที่ได้รับการจัดการ เช่น OpenAI จะนำเสนอการใช้งาน LLM ที่คุ้มค่า แต่ก็มีสถานการณ์ที่การเรียกใช้ LLM ภายในเครื่องกลายเป็นสิ่งจำเป็น อาจเนื่องมาจากการจัดการข้อมูลที่ละเอียดอ่อนหรือต้องการผลลัพธ์คุณภาพสูงในภาษาอื่นที่ไม่ใช่ภาษาอังกฤษ LLM แบบโอเพ่นซอร์สตรงกับคุณภาพของผู้เล่นรายใหญ่อย่าง OpenAI แต่มักต้องการทรัพยากรการประมวลผลจำนวนมาก การปรับใช้โมเดลขนาดเล็กบนแพลตฟอร์ม เช่น AWS Lambda สามารถเสนอทางเลือกที่คุ้มค่าได้
เป้าหมายของฉันในโครงการนี้คือการปรับใช้ LLM โอเพ่นซอร์สที่มีขนาดเล็กลง โดยเฉพาะ Microsoft Phi-2 ซึ่งเป็นโมเดลพารามิเตอร์ 2.7 พันล้านที่เทียบเคียงกับเอาท์พุตจากโมเดลโอเพ่นซอร์สที่ใหญ่กว่า ฉันจะสำรวจ LLM และแลมบ์ดาที่ใช้นักเทียบท่า ประเมินประสิทธิภาพ และประเมินต้นทุนสำหรับแอปพลิเคชันในโลกแห่งความเป็นจริง
ตรวจสอบให้แน่ใจว่าได้ติดตั้งเครื่องมือที่จำเป็น รวมถึงบัญชี AWS, AWS CLI, Docker และ Python
lambda_function.py
requirements.txt
โดยเริ่มจากไลบรารี AWS ( boto3
)Dockerfile
ที่ระบุองค์ประกอบภาพ Dockerdocker-compose.yml
เพื่อใช้งานและสร้างคอนเทนเนอร์docker-compose up
llama-cpp-python
ลงใน requirements.txt
สร้างคอนเทนเนอร์ใหม่และทดสอบด้วยพรอมต์จริงโดยใช้ curl
ดำเนินการปรับใช้โดยใช้สคริปต์ที่ให้มา ( deploy.sh
) สิ่งนี้เกี่ยวข้องกับการสร้างหรือการตรวจสอบพื้นที่เก็บข้อมูล ECR, บทบาท IAM, การรับรองความถูกต้องของ Docker-ECR, การสร้างอิมเมจ Docker, การอัปโหลดอิมเมจ ECR, การรับ ARN ของบทบาท IAM, การตรวจสอบฟังก์ชัน Lambda, การกำหนดค่า และการปรับใช้
ใช้ URL ฟังก์ชัน Lambda ที่ได้รับระหว่างการปรับใช้งานเพื่อทดสอบพร้อมท์
มีความรู้ด้านการเขียนโปรแกรม Docker, AWS และ Python
สำรวจ แก้ไข และเรียกใช้สคริปต์ที่ให้มาเพื่อปรับใช้และทดสอบ LLM แบบโอเพ่นซอร์สบน AWS Lambda ได้ตามสบาย