- LLM-Kit ของ Grab เป็นเฟรมเวิร์กที่ออกแบบมาเพื่อเร่งการตั้งค่าแอปพลิเคชัน Generative AI ระดับโปรดักชัน
- ในการพัฒนาแอปพลิเคชัน AI ที่จัดการข้อมูลอ่อนไหว ความปลอดภัยและความมั่นคงของข้อมูลมีความสำคัญอย่างยิ่ง โดย LLM-Kit เข้ามาช่วยแก้ปัญหาเรื่องความสามารถในการขยายระบบ การผสานรวม การมอนิเตอร์ และการทำให้เป็นมาตรฐาน
- สิ่งนี้ช่วยให้สามารถพัฒนาแอปพลิเคชัน LLM ได้อย่างมีประสิทธิภาพและเกิดผลลัพธ์ที่ดีในระยะยาว และช่วยให้ Grab ออนบอร์ดแอปพลิเคชัน GenAI ได้หลายร้อยตัว
คุณสมบัติของ LLM-Kit
- มีโครงสร้างที่เตรียมไว้ล่วงหน้าให้ใช้งาน (API server, การจัดการคอนฟิก, ตัวอย่าง LLM agent, การทดสอบ ฯลฯ)
- ผสานรวมกับ Poetry, Gunicorn, FastAPI, LangChain, LangSmith, Hashicorp Vault, Amazon EKS, Gitlab CI เป็นต้น
- ฟังก์ชัน observability สำหรับมอนิเตอร์แบบเรียลไทม์ผ่านการเชื่อมต่อกับ Datadog และ LangSmith
- การจัดการคอนฟิกและซีเคร็ตโดยใช้
configparser ของ Python และ Vault
- ตัวช่วยยืนยันตัวตน OpenID Connect(OIDC)
- การจัดทำเอกสาร API ด้วย Swagger และ Redoc
- การผสานรวมกับ Redis และ Vector DB
- ไปป์ไลน์การดีพลอยสำหรับสภาพแวดล้อม staging และ production
- การเชื่อมต่อกับเฟรมเวิร์กประเมินผลอันทรงพลังของ LangSmith
- Cookbook: รวมตัวอย่างที่ Grab ใช้งานบ่อย เพื่อเป็นทรัพยากรสำหรับนักพัฒนา
- มีตัวอย่างหลากหลาย เช่น persistent memory agent, Slackbot LLM agent, ตัววิเคราะห์ภาพ, full-stack chatbot ที่มีส่วนติดต่อผู้ใช้ เป็นต้น
คุณค่าของ LLM-Kit
- เพิ่มความเร็วในการพัฒนาแอปพลิเคชัน LLM ด้วย tech stack ที่ตั้งค่าและผสานรวมไว้ล่วงหน้า
- มอนิเตอร์แบบเรียลไทม์ รวมถึงตรวจจับ/แก้ไขปัญหาได้ผ่านการเชื่อมต่อกับ LangSmith และ Datadog
- เพิ่มความปลอดภัยด้วยการยืนยันตัวตน OIDC และการจัดการซีเคร็ตผ่าน Vault
- เพิ่มประสิทธิภาพของการจัดเก็บ/ค้นคืนข้อมูลด้วย Vector DB
- มอบเฟรมเวิร์กแบบ paved road ที่ช่วยส่งเสริมแนวปฏิบัติที่ดีและการทำให้เป็นมาตรฐาน
- ทีมสามารถ ประหยัดเวลาพัฒนาได้ประมาณ 1.5 สัปดาห์ ก่อนจะเริ่มทำฟีเจอร์แรก
การออกแบบสถาปัตยกรรมและการนำเทคโนโลยีไปใช้
- ใช้สถาปัตยกรรมแบบโมดูลาร์เพื่อมอบความสามารถในการขยาย ความยืดหยุ่น และความสะดวกในการใช้งาน
ระบบอัตโนมัติ
- เมื่อนักพัฒนาส่งรายละเอียดที่เกี่ยวข้อง เช่น ชื่อแอป ระบบจะทริกเกอร์การสร้างโปรเจ็กต์ GitLab
- จะมีการสร้าง code scaffold ที่ออกแบบมาโดยเฉพาะสำหรับแอป LLM
- จะมีการสร้างไฟล์ GitLab CI สำหรับ CI/CD ภายในรีโพเดียวกัน
- จะมีการสร้างโครงสร้างพื้นฐาน staging เช่น ECR และ EKS
- จะมีการสร้างโฟลเดอร์ Terraform สำหรับ provisioning โครงสร้างพื้นฐาน และต่อเนื่องไปยังการดีพลอยโครงสร้างพื้นฐาน production
- ตอนท้ายของไปป์ไลน์ GPT token จะถูก push ไปยังเส้นทาง Vault ที่ปลอดภัย และส่งการแจ้งเตือนความสำเร็จไปยังนักพัฒนา
โครงสร้างโค้ด scaffold
- Agents: มีโค้ดสำหรับเริ่มต้นใช้งานเอเจนต์บนพื้นฐานของเฟรมเวิร์กเอเจนต์ LangChain
- Auth: โมดูลการยืนยันตัวตนและการกำหนดสิทธิ์เพื่อเรียกใช้ API บางส่วนภายใน Grab
- Core: มีการดึงคอนฟิก (เช่น GPT token) และการถอดรหัสซีเคร็ตเพื่อรันแอป LLM
- Models: นิยามโครงสร้างสำหรับ core LLM API ภายใน Grab
- Routes: นิยาม REST API endpoint สำหรับแอป LLM (รวมถึงการตรวจสอบสถานะ การยืนยันตัวตน การกำหนดสิทธิ์ และเอเจนต์แบบง่าย)
- Storage: มีการเชื่อมต่อกับ PGVector ซึ่งเป็น Vector DB แบบ managed ของ Grab รวมถึงสคีมาฐานข้อมูล
- Tools: ฟังก์ชันที่ใช้เป็นเครื่องมือสำหรับ LLM agent
- Tracing: ผสานรวมกับเครื่องมือ tracing และ monitoring เพื่อมอนิเตอร์เมตริกต่าง ๆ ของแอปโปรดักชัน
- Utils: โฟลเดอร์พื้นฐานสำหรับฟังก์ชันยูทิลิตี
การ provision และการดีพลอยโครงสร้างพื้นฐาน
- มีการผสานรวมไปป์ไลน์แบบครบวงจรที่ scaffold โค้ดที่จำเป็นสำหรับ provisioning โครงสร้างพื้นฐาน การดีพลอย และกระบวนการ build โดยอัตโนมัติภายใน codebase เดียวกัน
- ใช้ Terraform เพื่อ provision โครงสร้างพื้นฐานที่จำเป็นได้อย่างราบรื่น
- ไปป์ไลน์การดีพลอยถูกกำหนดไว้ในไฟล์
.gitlab-ci.yml เพื่อรับประกันการดีพลอยแบบอัตโนมัติ
- กระบวนการ build ถูกกำหนดไว้ใน
Dockerfile เพื่อให้ build ได้อย่างสม่ำเสมอ
- การทำ scaffold อัตโนมัติช่วยให้นักพัฒนามุ่งเน้นไปที่การเขียน business logic แทนที่จะต้องจัดการความซับซ้อนของโครงสร้างพื้นฐานและการดีพลอยพื้นฐาน
การทำ scaffold สำหรับ RAG
- การใช้ LLM-Kit ช่วยทำให้การตั้งค่า Vector DB(PGVector) และการเพิ่ม service allowlist ง่ายขึ้น
- หลังส่งฟอร์มแล้ว จะสามารถเข้าถึงข้อมูลรับรองและเส้นทางโฮสต์ DB ได้
- ซีเคร็ตจะถูกเพิ่มเข้าไปยังเส้นทาง Vault โดยอัตโนมัติ
- นักพัฒนาเพียงใส่เส้นทางโฮสต์ DB ลงในไฟล์คอนฟิกของแอป LLM-Kit ที่ scaffold ไว้แล้วเท่านั้น
บทสรุป
- LLM-Kit เป็นเครื่องมือสำคัญที่สนับสนุนการเติบโตและนวัตกรรมด้าน AI และ ML ของ Grab
- ด้วยการแก้ปัญหาความท้าทายที่ทีมต้องเผชิญ และมอบเฟรมเวิร์กสำหรับพัฒนาแอป LLM ที่ครอบคลุม ขยายได้ และยืดหยุ่น ทำให้ Grab กำลังเป็นผู้นำในการพัฒนาแอป AI ยุคถัดไป
การเติบโตและแผนในอนาคต
- มีแผนจะยกระดับ concurrency และ scalability ของเว็บเซิร์ฟเวอร์อย่างมาก พร้อมทั้งมอบ SDK ที่เสถียรและใช้งานง่าย
- เตรียมมอบ LLM SDK ที่นำกลับมาใช้ซ้ำและประกอบร่วมกันได้ ซึ่งรวมถึงเฟรมเวิร์กสำหรับ evaluation และ guardrails
- พัฒนา CLI สำหรับการอัปเดตเวอร์ชันและเครื่องมือพัฒนา
- พัฒนาความสามารถในการให้บริการ polling-based agent
- ความก้าวหน้าเหล่านี้มีเป้าหมายเพื่อมอบประสบการณ์การพัฒนาที่ราบรื่นและมีประสิทธิภาพยิ่งขึ้นแก่นักพัฒนา
ยังไม่มีความคิดเห็น