• การออกแบบพรอมป์ต์อย่างประณีตเป็นสิ่งจำเป็นเพื่อให้ได้ผลลัพธ์จาก LLM ที่แม่นยำและเหมาะสม
  • การออกแบบพรอมป์ต์ช่วยให้ผู้ใช้ที่ไม่คุ้นเคยกับแมชชีนเลิร์นนิงสามารถควบคุมผลลัพธ์ของโมเดลได้โดยมีโอเวอร์เฮดน้อยที่สุด
  • Uber ได้พัฒนาชุดเครื่องมือแบบรวมศูนย์เพื่อให้ทดลองทำซ้ำกับ LLM ได้อย่างรวดเร็ว
    • สร้างและจัดการเทมเพลตพรอมป์ต์
    • ใช้งาน RAG และชุดข้อมูลในช่วงรันไทม์
  • ความสามารถ:
    • รองรับ system instruction, การทำ contextualization แบบไดนามิก, การสร้างแบบออฟไลน์จำนวนมาก (LLM inference), และการประเมินคำตอบ
    • มีการจัดการเวอร์ชัน, การทำงานร่วมกัน, การตรวจสอบความปลอดภัย (ตรวจ hallucination, กรอบการประเมินมาตรฐาน, รวมถึงนโยบายความปลอดภัย)

วงจรชีวิตของ Prompt Engineering

วงจรชีวิตของ prompt engineering ประกอบด้วย 2 ขั้นตอน:

  • ขั้นพัฒนา: ประกอบด้วย 3 ระยะ คือ การสำรวจ LLM, การทำซ้ำเทมเพลตพรอมป์ต์, และการประเมิน
    • ระยะสำรวจ LLM: สำรวจ LLM ที่ใช้งานได้ผ่าน model catalog และ GenAI Playground และทดสอบการตอบสนองของ LLM ด้วยพรอมป์ต์
    • ระยะทำซ้ำเทมเพลตพรอมป์ต์: ระบุความต้องการทางธุรกิจที่ชัดเจน, รวบรวมข้อมูลตัวอย่าง, สร้าง/วิเคราะห์/ทดสอบพรอมป์ต์, ประเมินคำตอบและปรับแก้ตามความจำเป็น โดยไม่จำเป็นต้องสร้างเทมเพลตพรอมป์ต์ตั้งแต่ต้นด้วย auto-prompting
    • ระยะประเมิน: ทดสอบเทมเพลตพรอมป์ต์ด้วยชุดข้อมูลที่ใหญ่ขึ้นเพื่อวัดประสิทธิภาพ สามารถใช้ LLM เป็นผู้ตัดสิน หรือใช้ตัวประเมิน LLM แบบเขียนโค้ดเฉพาะทางเพื่อประเมินผลได้
  • ขั้นนำขึ้นใช้งานจริง (Productionization): มีเพียงเทมเพลตพรอมป์ต์ที่ผ่านค่า threshold ในขั้นประเมินเท่านั้นที่จะถูกนำไปใช้งานจริง และจะมีการติดตาม/มอนิเตอร์การใช้งานในสภาพแวดล้อมโปรดักชัน พร้อมเก็บข้อมูลการใช้งานของระบบเพื่อนำไปปรับปรุงกระบวนการ

สถาปัตยกรรม

  • UI/SDK ของเทมเพลตพรอมป์ต์: จัดการเทมเพลตพรอมป์ต์และ revision โดยเชื่อมต่อกับ GetAPI และ Execute API
  • LLM model catalog: อินเทอร์เฟซกับโมเดล LLM ที่ถูกดีพลอยแล้ว
  • โมเดลและพรอมป์ต์ถูกจัดเก็บใน ETCD และ UCS และถูกนำไปใช้ใน offline generation pipeline และ prompt template evaluation pipeline

การสร้างเทมเพลตพรอมป์ต์

  • Prompt builder ใน prompt toolkit จะสร้างพรอมป์ต์ให้อัตโนมัติสำหรับผู้ใช้
  • ช่วยค้นหาเทคนิค prompting ขั้นสูงที่เหมาะกับ use case ของ AI แต่ละแบบ
  • Auto prompt builder ที่ใช้เฟรมเวิร์กภายใน Langfx ซึ่งสร้างบน LangChain จะทำตามขั้นตอนต่อไปนี้
    • 1. รวมแนวปฏิบัติที่ดีที่สุดของ prompt engineering
    • 2. ให้คำแนะนำอย่างละเอียดสำหรับรายการเทมเพลตและตัวอย่างบางส่วนเพื่อช่วยสร้างพรอมป์ต์
    • 3. ใช้โมเดล LLM เพื่อสนับสนุนการสร้างพรอมป์ต์
  • แนวทางพรอมป์ต์ขั้นสูง: prompt builder จะสร้างพรอมป์ต์โดยใช้หลักการต่อไปนี้
    • CoT(Chain of Thought) prompting: ทำให้เกิดความสามารถในการให้เหตุผลที่ซับซ้อนผ่านขั้นตอนการอนุมานระหว่างทาง
    • Auto-CoT: ใช้คำชี้นำว่า "think step by step" โดยใช้พรอมป์ต์ "Let's think step by step" กับ LLM เพื่อลดความพยายามแบบแมนนวล
    • Prompt chaining: ใช้ได้กับสถานการณ์ที่มีหลายงานหรือหลายการแปลง
    • ToT(Tree of Thought): ทำให้ chain-of-thought prompting เป็นภาพรวมที่กว้างขึ้น และส่งเสริมการสำรวจแนวคิดที่สามารถใช้เป็นขั้นตอนกลางสำหรับการแก้ปัญหาทั่วไปด้วย language model
    • APE(Automatic Prompt Engineering): เฟรมเวิร์กสำหรับทำให้การสร้างและการเลือกคำสั่งเป็นอัตโนมัติ
    • Multimodal CoT prompting: ผสานข้อความและภาพเข้าด้วยกันในเฟรมเวิร์ก 2 ขั้นตอน โดยขั้นแรกสร้างเหตุผลจากข้อมูลหลายโมดัล และขั้นที่สองใช้เหตุผลที่สร้างขึ้นเพื่ออนุมานคำตอบ
  • การจัดการ revision
    • การทำซ้ำเทมเพลตพรอมป์ต์ยึดตามแนวปฏิบัติที่ดีที่สุดของการทำซ้ำแบบอิงโค้ด
    • ผู้ใช้สามารถแก้ไขคำสั่งและพารามิเตอร์ของโมเดลเพื่อทดสอบกับคำตอบตัวอย่างและชุดข้อมูลได้
    • ทุกการทำซ้ำของเทมเพลตพรอมป์ต์ต้องผ่าน code review และเมื่อได้รับอนุมัติและ merge แล้ว จะมีการสร้าง revision ใหม่ของเทมเพลตพรอมป์ต์

การประเมินเทมเพลตพรอมป์ต์

มีหลายคอมโพเนนต์ที่ทำงานร่วมกันเพื่อประเมินประสิทธิภาพของเทมเพลตพรอมป์ต์:

  • กลไกการประเมิน 2 แบบ
    • ใช้ LLM เป็นผู้ประเมิน เหมาะกับงานที่คุณภาพเชิงอัตวิสัยหรือความละเอียดอ่อนทางภาษามีความสำคัญ
    • ใช้โค้ดแบบกำหนดเองเพื่อประเมินประสิทธิภาพ เหมาะสำหรับวัดแง่มุมเฉพาะของประสิทธิภาพ
  • Evaluation prompt template: เทมเพลตที่ใช้งานง่ายสำหรับผู้ใช้ ซึ่งให้คำสั่ง ตัวอย่างสั้น ๆ เมตริก รูปแบบการตอบสนอง และอื่น ๆ สำหรับการประเมิน
  • Prompt template จริง: เทมเพลตที่ใช้ในโปรดักชัน โดยจะถูก hydration ในช่วงรันไทม์และใช้สำหรับการประเมินประสิทธิภาพ
  • ตัวเลือกชุดข้อมูลนำเข้า: ชุดข้อมูล golden ที่มีการติดป้ายกำกับ หรือชุดข้อมูลที่ได้มาจากทราฟฟิกโปรดักชัน
  • แต่ละเทมเพลตจะถูกประเมินโดยพิจารณาคำสั่งเฉพาะ, คอนเท็กซ์, โมเดลที่เกี่ยวข้อง และพารามิเตอร์

กรณีการใช้งานใน Uber

บริการ LLM แบบออฟไลน์

batch offline generation pipeline ของ LLM ช่วยให้ทำ batch inference เพื่อสร้างคำตอบจาก LLM ในปริมาณมากได้สะดวก:

  • นำไปใช้กับกรณีใช้งานการตรวจสอบชื่อผู้ใช้ของฝั่งผู้บริโภคได้
  • ใน MA Studio เพียงเลือกและป้อนชุดข้อมูลที่เกี่ยวข้อง
  • เทมเพลตพรอมป์ต์จะถูก hydration แบบไดนามิกด้วยชุดข้อมูล

บริการ LLM แบบออนไลน์

เทมเพลตพรอมป์ต์มี dynamic placeholder ที่ต้องถูกแทนที่ด้วยค่าที่เฉพาะเจาะจงในช่วงรันไทม์:

  • ปัจจุบันรองรับเฉพาะการแทนที่ชนิดสตริงโดยใช้ไวยากรณ์เทมเพลตแบบ Jinja
  • รองรับความสามารถ fan-out ระหว่างพรอมป์ต์ เทมเพลต และโมเดล
    • เทมเพลต: API template มีความสามารถในการฟอร์แมต payload ที่เปิดเผยจาก data model ทั่วไปให้เป็นโครงสร้าง API เฉพาะของผู้ให้บริการ
    • พรอมป์ต์และโมเดล: พรอมป์ต์จะผูกกับโมเดลและเทมเพลตเฉพาะ บริการจะดึงพรอมป์ต์มาและเรียก genAI API ด้วยพารามิเตอร์ของโมเดลและเทมเพลตที่จำเป็นเพื่อรันการทำงาน

สำรวจความสามารถข้างต้นผ่านกรณีใช้งานการสรุป:

  • ในสถานการณ์ที่ support ticket (contact) หนึ่งรายการอาจถูกจัดการโดยเจ้าหน้าที่หลายคน เจ้าหน้าที่ใหม่จำเป็นต้องไล่ดูทิกเก็ตเพื่อทำความเข้าใจบริบท หรือขอให้ลูกค้าอธิบายปัญหาอีกครั้ง
  • ระบบแก้ปัญหานี้ด้วยการจัดทำสรุประหว่างการส่งต่องานระหว่างเจ้าหน้าที่

การมอนิเตอร์

การมอนิเตอร์ใช้วัดประสิทธิภาพของเทมเพลตพรอมป์ต์โปรดักชันที่ถูกใช้งานจริง:

  • pipeline การมอนิเตอร์ประสิทธิภาพรายวันจะรันการประเมินประสิทธิภาพกับทราฟฟิกโปรดักชัน
  • มอนิเตอร์เมตริกตามแต่ละ production iteration ของเทมเพลตพรอมป์ต์ เช่น latency, accuracy และ precision
  • แดชบอร์ด MES จะรีเฟรชทุกวันด้วยเมตริกการมอนิเตอร์ประสิทธิภาพ

บทสรุป

ชุดเครื่องมือ prompt engineering ของ Uber เป็นเฟรมเวิร์กแบบครบวงจรเพื่อยกระดับการโต้ตอบและการใช้งาน LLM ในหลายขั้นตอนของการพัฒนาและการใช้งานจริง:

  • รองรับตั้งแต่การสำรวจความสามารถของ LLM ครั้งแรกใน Gen AI Playground ไปจนถึงการทำซ้ำและการสร้างเทมเพลตพรอมป์ต์อย่างละเอียด
  • สถาปัตยกรรมของชุดเครื่องมือมอบแนวทางเชิงระบบต่อการออกแบบพรอมป์ต์ โดยผสานเทคนิคแนวทางขั้นสูงและวิธีการประเมินที่แข็งแรง
  • วงจรชีวิตแบบมีโครงสร้างตั้งแต่การพัฒนาเทมเพลตพรอมป์ต์ไปจนถึงการใช้งานจริงและการมอนิเตอร์ ช่วยให้มั่นใจว่าแต่ละเทมเพลตผ่านการทดสอบอย่างเข้มงวดและได้รับการปรับให้เหมาะสมด้านประสิทธิภาพ
  • ในอนาคตมีแผนจะผสานกับ RAG สำหรับการประเมินแบบออนไลน์, RAG สำหรับการประเมิน, และ RAG สำหรับการสร้างแบบออฟไลน์

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

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