อัปเดตเมื่อ 11/09/2024
(การทำเครื่องหมายวันที่เนื่องจากความรวดเร็วของ LLM API ใน Python และอาจแนะนำการเปลี่ยนแปลงที่ไม่สมบูรณ์ตามเวลาที่คนอื่นอ่านข้อความนี้!)
นี่เป็นงานวิจัยเล็กๆ น้อยๆ เกี่ยวกับวิธีที่เราสามารถใส่ไฟล์โมเดล Qwen GGUF ลงใน AWS Lambda โดยใช้ Docker และ SAM CLI
ดัดแปลงมาจาก https://makit.net/blog/llm-in-a-lambda-function/
ฉันต้องการทราบว่าฉันสามารถลดการใช้จ่าย AWS ของฉันโดยใช้ประโยชน์จากความสามารถของ Lambda เท่านั้น ไม่ใช่ Lambda + Bedrock หรือไม่ เนื่องจากบริการทั้งสองจะมีค่าใช้จ่ายมากขึ้นในระยะยาว
แนวคิดก็คือเพื่อให้เหมาะสมกับโมเดลภาษาขนาดเล็กซึ่งไม่ต้องใช้ทรัพยากรมาก และหวังว่าจะได้รับเวลาแฝงตั้งแต่วินาทีถึงวินาทีในการกำหนดค่าหน่วยความจำ 128 - 256 mb
ฉันต้องการใช้โมเดล GGUF เพื่อใช้ระดับปริมาณที่แตกต่างกันเพื่อค้นหาว่าประสิทธิภาพ / ขนาดไฟล์ใดที่ดีที่สุดที่จะโหลดลงในหน่วยความจำ
qwen2-1_5b-instruct-q5_k_m.gguf
ลงใน qwen_fuction/function/
app.y / LOCAL_PATH
qwen_function/function/requirements.txt
(โดยเฉพาะใน venv/conda env)sam build
/ sam validate
sam local start-api
เพื่อทดสอบในเครื่องcurl --header "Content-Type: application/json" --request POST --data '{"prompt":"hello"}' http://localhost:3000/generate
เพื่อแจ้ง LLMsam deploy --guided
เพื่อปรับใช้กับ AWSAWS
การกำหนดค่าเริ่มต้น - 128mb, หมดเวลา 30 วินาที
ปรับการกำหนดค่า #1 - 512mb, หมดเวลา 30 วินาที
ปรับการกำหนดค่า #2 - 512mb, หมดเวลา 30 วินาที
ย้อนกลับไปที่โครงสร้างราคาของ Lambda
การใช้ LLM แบบโฮสต์โดยใช้ AWS Bedrock ฯลฯ บนคลาวด์อาจมีราคาถูกกว่า เนื่องจากโครงสร้างราคาสำหรับ Lambda ที่มี Qwen ดูไม่สามารถแข่งขันได้มากนักเมื่อเทียบกับ Claude 3 Haiku
นอกจากนี้ การหมดเวลาเกตเวย์ API ไม่สามารถกำหนดค่าได้ง่ายเกินกว่าการหมดเวลา 30 วินาที ขึ้นอยู่กับกรณีการใช้งานของคุณ ซึ่งอาจไม่เหมาะมากนัก
ผลลัพธ์ผ่าน Local ขึ้นอยู่กับสเปคเครื่องของคุณ!! และอาจบิดเบือนการรับรู้ ความคาดหวัง และความเป็นจริงของคุณไปอย่างมาก
ขึ้นอยู่กับกรณีการใช้งานของคุณด้วย เวลาแฝงต่อการเรียกใช้แลมบ์ดาและการตอบกลับอาจทำให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดี
โดยรวมแล้ว ฉันคิดว่านี่เป็นการทดลองเล็กๆ น้อยๆ ที่สนุกสนาน แม้ว่าจะไม่ครอบคลุมถึงงบประมาณและข้อกำหนดด้านเวลาแฝงผ่าน Qwen 1.5b สำหรับโปรเจ็กต์เสริมของฉันก็ตาม ขอบคุณ @makit อีกครั้งสำหรับคำแนะนำ!