• 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 สัปดาห์ ก่อนจะเริ่มทำฟีเจอร์แรก

การออกแบบสถาปัตยกรรมและการนำเทคโนโลยีไปใช้

  • ใช้สถาปัตยกรรมแบบโมดูลาร์เพื่อมอบความสามารถในการขยาย ความยืดหยุ่น และความสะดวกในการใช้งาน

ระบบอัตโนมัติ

  1. เมื่อนักพัฒนาส่งรายละเอียดที่เกี่ยวข้อง เช่น ชื่อแอป ระบบจะทริกเกอร์การสร้างโปรเจ็กต์ GitLab
  2. จะมีการสร้าง code scaffold ที่ออกแบบมาโดยเฉพาะสำหรับแอป LLM
  3. จะมีการสร้างไฟล์ GitLab CI สำหรับ CI/CD ภายในรีโพเดียวกัน
  4. จะมีการสร้างโครงสร้างพื้นฐาน staging เช่น ECR และ EKS
  5. จะมีการสร้างโฟลเดอร์ Terraform สำหรับ provisioning โครงสร้างพื้นฐาน และต่อเนื่องไปยังการดีพลอยโครงสร้างพื้นฐาน production
  6. ตอนท้ายของไปป์ไลน์ GPT token จะถูก push ไปยังเส้นทาง Vault ที่ปลอดภัย และส่งการแจ้งเตือนความสำเร็จไปยังนักพัฒนา

โครงสร้างโค้ด scaffold

  1. Agents: มีโค้ดสำหรับเริ่มต้นใช้งานเอเจนต์บนพื้นฐานของเฟรมเวิร์กเอเจนต์ LangChain
  2. Auth: โมดูลการยืนยันตัวตนและการกำหนดสิทธิ์เพื่อเรียกใช้ API บางส่วนภายใน Grab
  3. Core: มีการดึงคอนฟิก (เช่น GPT token) และการถอดรหัสซีเคร็ตเพื่อรันแอป LLM
  4. Models: นิยามโครงสร้างสำหรับ core LLM API ภายใน Grab
  5. Routes: นิยาม REST API endpoint สำหรับแอป LLM (รวมถึงการตรวจสอบสถานะ การยืนยันตัวตน การกำหนดสิทธิ์ และเอเจนต์แบบง่าย)
  6. Storage: มีการเชื่อมต่อกับ PGVector ซึ่งเป็น Vector DB แบบ managed ของ Grab รวมถึงสคีมาฐานข้อมูล
  7. Tools: ฟังก์ชันที่ใช้เป็นเครื่องมือสำหรับ LLM agent
  8. Tracing: ผสานรวมกับเครื่องมือ tracing และ monitoring เพื่อมอนิเตอร์เมตริกต่าง ๆ ของแอปโปรดักชัน
  9. 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
  • ความก้าวหน้าเหล่านี้มีเป้าหมายเพื่อมอบประสบการณ์การพัฒนาที่ราบรื่นและมีประสิทธิภาพยิ่งขึ้นแก่นักพัฒนา

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น