14 คะแนน โดย kwonhl0211 2024-07-15 | ยังไม่มีความคิดเห็น | แชร์ทาง WhatsApp
  • ประสบการณ์ด้านการพัฒนา AI ของ Linus Lee

    • Linus Lee ทำงานที่ Notion ในตำแหน่ง Lead AI Engineer
    • ก่อนมา Notion เขาทำวิจัยด้าน NLP, แมชชีนเลิร์นนิง และ HCI มาอย่างมาก รวมถึงทำต้นแบบและเขียนบทความอย่างต่อเนื่อง
    • เขาพัฒนาฟีเจอร์ Q&A, Autofill และ AI Writing ที่ Notion และยังทำวิจัยเกี่ยวกับโมเดล latent space ด้วย
  • ภาพรวมการพัฒนา Notion AI

    • Linus Lee พัฒนาเว็บและเครื่องมือเพิ่มประสิทธิภาพการทำงานหลากหลายมาตั้งแต่สมัยเรียนมหาวิทยาลัย
    • ตลอดปี 2022 เขาเริ่มอ่านและศึกษางานวิจัยด้าน AI ด้วยตัวเอง
    • ในเดือนตุลาคม 2022 เขาได้เข้าร่วมโปรเจ็กต์ AI Writer รุ่นเบต้าของ Notion
    • ตอนที่เขาเข้าทำงานที่ Notion ทีม AI มีสมาชิก 4 คน แต่ปัจจุบันเติบโตเป็นราว 20 คนแล้ว
    • โปรเจ็กต์หลักที่ Linus Lee มีส่วนร่วมคือ AI Writer, Autofill และ Q&A ซึ่งเปิดตัวในเดือนกุมภาพันธ์ พฤษภาคม และพฤศจิกายน 2023 ตามลำดับ
    • ต่อจากนี้ Notion AI วางแผนจะยกระดับการใช้งานให้ดีขึ้นอีกผ่านเทคโนโลยีเอเจนต์
  • แนะนำออฟฟิศและทีม AI ของ Notion

    • Notion มีออฟฟิศอยู่ที่ซานฟรานซิสโกและนิวยอร์ก โดยออฟฟิศซานฟรานซิสโกใช้เป็นพื้นที่สำหรับมื้อกลางวันและกิจกรรมต่าง ๆ
    • ออฟฟิศนิวยอร์กเป็นสถานที่ที่ Linus Lee อาศัยและทำงาน และมีสภาพแวดล้อมการทำงานที่ออกแบบอย่างเรียบร้อยสวยงาม
    • การพัฒนาฟีเจอร์ AI ของ Notion เริ่มต้นในปี 2013 และ CEO กับ CTO ก็มีส่วนร่วมในการพัฒนาผลิตภัณฑ์โดยตรง
    • ในภาพการประชุมของทีม AI ช่วงฤดูใบไม้ร่วงปี 2022 จะเห็นผู้จัดการ, CEO Ivan, CTO Simon, ผู้จัดการผลิตภัณฑ์ และดีไซเนอร์กำลังทำเซสชัน Q&A
    • ในการพัฒนาผลิตภัณฑ์ AI คุณภาพและการประเมินผลเป็นองค์ประกอบสำคัญ โดยใช้เทคนิคการประเมินที่คำนึงถึงสเปกตรัมตั้งแต่งานวิจัย benchmark ไปจนถึงการใช้งานจริงในโปรดักชัน
    • Notion ตรวจสอบประสิทธิภาพระหว่าง benchmark กับข้อมูลจริง และประเมินความสามารถของโมเดลอย่างแม่นยำผ่านการทดสอบแบบเป็นโปรแกรม
    • รายการประเมินรวมถึงการมีคำเฉพาะ, ความน่าเชื่อถือ, การมีคีย์เวิร์ด และความแม่นยำด้านภาษา
  • การพัฒนาผลิตภัณฑ์ AI ของ Notion

    • การประเมินโดยมนุษย์เป็นองค์ประกอบสำคัญของการพัฒนาผลิตภัณฑ์ AI ที่ Notion
    • ในชุดข้อมูลทดสอบ มนุษย์จะตรวจสอบข้อมูล และทดสอบผลิตภัณฑ์ผ่านการทดสอบแบบเป็นโปรแกรม
    • หลังพัฒนาผลิตภัณฑ์แล้ว จำเป็นต้องมีการมอนิเตอร์อย่างต่อเนื่องโดยอิงจากฟีดแบ็กของผู้ใช้
    • AI ควรให้ความสามารถหลายระดับในการเก็บกรณีล้มเหลวของผู้ใช้และตอบคำถามได้อย่างมีประสิทธิภาพ
    • หัวใจของการพัฒนาผลิตภัณฑ์ AI คุณภาพสูงคือการปรับแก้และคุณภาพของข้อมูล ดังนั้นการทำให้ข้อมูลจากโลกจริงเข้ากับโมเดลจึงสำคัญ
    • ทีม Notion พัฒนาฟีเจอร์นี้ร่วมกันโดยมีทั้งวิศวกร นักวิจัย ดีไซเนอร์ และผู้จัดการผลิตภัณฑ์หารือเรื่องการปรับแก้
    • ทีมปรับปรุงโมเดลการแก้ไขอย่างต่อเนื่องเพื่อยกระดับคุณภาพของผลลัพธ์ โดยใช้โมเดลอย่าง GPT-4
  • กระบวนการพัฒนาฟีเจอร์ AI ของ Notion

    • วิศวกร AI ของ Notion พัฒนาโมเดลผ่านการรวบรวมข้อมูลและจัดโครงสร้างข้อมูล ดังนั้นจึงต้องวิเคราะห์ข้อมูลอย่างละเอียดและสอดคล้องกับความต้องการของผู้ใช้
    • ทีมศึกษาวิธีจัดระเบียบข้อมูลอย่างบันทึกการประชุมและเว็บเพจของผู้ใช้ Notion พร้อมสร้างชุดข้อมูลขึ้นมา เพราะสิ่งนี้ส่งผลต่อประสิทธิภาพของโมเดล AI
    • ทีมระบุ use case อย่าง Q&A ผ่านการวิจัยเพื่อนำมาทดสอบโมเดล เพื่อให้ตอบคำถามของผู้ใช้ได้อย่างมีประสิทธิภาพ
    • ทีมพัฒนาระบบต้นแบบโดยใช้ GPT-4 และคลาวด์โมเดล จากนั้นทดสอบภายในเพื่อค้นหาปัญหาในระยะแรก
    • ทีมวิเคราะห์กรณีล้มเหลวที่เก็บได้จากการใช้งานภายใน แล้วนำไปปรับปรุงทั้งชุดข้อมูลและโมเดล จึงเพิ่มความแม่นยำของโมเดลผ่านการทดสอบและฟีดแบ็กซ้ำ ๆ
  • ขั้นตอนการพัฒนาและประเมินโมเดล AI ของ Notion

    • กระบวนการทำซ้ำกับโมเดลประกอบด้วยการแก้ไขพรอมป์ต์ การปรับจูนรายละเอียดของโมเดล และการเพิ่มขั้นตอนที่สองใน language model pipeline
    • เมื่อเห็นว่าแก้ปัญหาได้ในขั้นพัฒนาแล้ว ทีมจะ deploy อีกครั้ง เก็บกรณีล้มเหลวเพิ่ม และทำซ้ำเป็นวงจร
    • กระบวนการนี้จะทำต่อไปจนกว่าคุณภาพของอินพุตและเอาต์พุตในสภาพแวดล้อมภายในจะน่าพอใจ
    • เมื่อถึงจุดหนึ่ง ผลิตภัณฑ์จะถูกเปิดให้ผู้ใช้จำนวนน้อยผ่านโปรแกรมเบต้า พร้อมมอนิเตอร์ฟีดแบ็กผู้ใช้และข้อมูลล็อกที่เก็บอัตโนมัติ
    • ในช่วงเริ่มต้นของการสร้างชุดข้อมูล ทีมใช้หลายวิธีเพื่อตรวจสอบว่าสะท้อน use case จริงได้ดีเพียงใด
  • ระยะเริ่มต้นของการพัฒนาฟีเจอร์ AI

    • ทีมสร้างต้นแบบขึ้นมาและทดสอบกับทีม AI ภายใน
    • จากนั้นจึงรวบรวมอินพุตและตัวอย่างที่หลากหลายผ่านการใช้งานภายใน
    • ชุดอินพุตเริ่มต้นไม่จำเป็นต้องเป็นตัวแทนของกรณีจริงได้อย่างสมบูรณ์แบบเสมอไป
    • หลังทดสอบภายใน ทีมจะปล่อยให้ผู้ใช้วงกว้างขึ้นใช้งานเพื่อค่อย ๆ เก็บข้อมูลที่สมจริงมากขึ้น
    • ชุดข้อมูลเริ่มต้นอาจสร้างขึ้นจากกรณีล้มเหลวที่คาดการณ์ไว้ได้เช่นกัน
    • เมื่อพัฒนาฟีเจอร์รองรับภาษา ทีมจะนำชุดข้อมูล QA เดิมมาแปลเป็นภาษาต่างประเทศเพื่อใช้งาน
  • การเก็บข้อมูลและประเมินผลผ่านการทดสอบภายในและภายนอก

    • ชุดข้อมูลเริ่มต้นไม่จำเป็นต้องสมจริงอย่างสมบูรณ์ ดังนั้นจึงใช้การทดสอบเพื่อเก็บข้อมูลที่ดีขึ้น
    • ทีมทดสอบต้นแบบกับผู้ใช้ภายในหรือผู้ใช้ภายนอกกลุ่มเล็ก ๆ และเก็บตัวอย่างเอาต์พุตที่ผิดพลาดด้วยหลายวิธี
    • ทีมทำการประเมินแบบเป็นโปรแกรมโดยอิงจากคีย์เวิร์ดหรือโครงสร้างเอาต์พุต และเก็บล็อกไว้สำหรับการอนุมานของ AI ทุกครั้ง จึงสามารถตรวจสอบและวิเคราะห์เอาต์พุตที่ล้มเหลวได้
    • การสัมภาษณ์ผู้ใช้ช่วยให้เข้าใจ use case จริง และค้นพบวิธีใช้งานที่ไม่คาดคิดได้
    • ตัวอย่างเช่น ระหว่างการทดสอบภายในของ Autofill ทีมพบว่าพนักงานจำนวนมากนำไปใช้เพื่อการแปล จึงพัฒนาฟีเจอร์นี้ให้เป็นเวอร์ชันแปลที่เหมาะสมยิ่งขึ้น
  • ฟีดแบ็กและวิธีประเมินผลิตภัณฑ์ AI

    • ปุ่มฟีดแบ็กแบบชอบและไม่ชอบไม่ค่อยมีประโยชน์ต่อผู้ใช้ จึงไม่ถูกใช้งานบ่อยนัก
    • อีกทั้งในระดับขนาดผู้ใช้ของ Notion ก็ไม่สามารถเก็บข้อมูลได้เพียงพอจากปุ่มฟีดแบ็กประเภทนี้
    • อย่างไรก็ตาม บางครั้งมันก็ช่วยจับกรณีพิเศษที่ไม่พบจาก use case อื่นได้ จึงยังมีประโยชน์อยู่บ้าง
    • ภายในทีมมีการประเมินความสามารถของโมเดลต่ออินพุตที่ไม่คาดคิดผ่าน adversarial testing
    • adversarial testing มีประโยชน์ในการทำความเข้าใจขีดจำกัดของประสิทธิภาพโมเดลและระบุจุดที่เกิดปัญหา
    • ทีมมอนิเตอร์จุดแข็งและจุดอ่อนของโมเดลอย่างต่อเนื่องผ่านข้อมูลการใช้งานจริง
  • องค์ประกอบสำคัญของการพัฒนาผลิตภัณฑ์ AI

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

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

    • ในสเปกผลิตภัณฑ์ นอกจากอินเทอร์เฟซและฟังก์ชันแล้ว ควรระบุเกณฑ์การประเมินและมาตรฐานของเอาต์พุตที่ดีไว้ด้วย
    • เกณฑ์การประเมินถูกใช้เป็นจุดสื่อสารหลักระหว่างผู้รับผิดชอบผลิตภัณฑ์ วิศวกร และนักวิจัย
    • ประสบการณ์ด้านแมชชีนเลิร์นนิงแบบดั้งเดิมยังนำมาปรับใช้กับ LLM และโมเดล generative AI ได้ ซึ่งให้มุมมองเชิงลึกมากกว่าที่คิด
    • อย่างไรก็ตาม ในแมชชีนเลิร์นนิงแบบดั้งเดิมมักจัดการกับชุดข้อมูลขนาดใหญ่และวิเคราะห์คลัสเตอร์หรือบางส่วนขนาดใหญ่ แต่ใน language model จะตรวจดูกรณีล้มเหลวรายกรณีและล็อกรายรายการบ่อยกว่า
    • เพราะฉะนั้น งานกับ language model จึงต้องใช้เครื่องมือและเวิร์กโฟลว์ที่ต่างออกไป
  • ความสำคัญและแนวทางของการประเมินโมเดล AI

    • การประเมินผลมีผู้ใช้และสิ่งที่ผู้ใช้ทำจริงเป็นแหล่งความจริงสูงสุด
    • ดังนั้น เอกสารหรือข้อมูลสำหรับการประเมินควรสะท้อน use case จริงโดยอิงจากข้อมูลการใช้งานทั้งภายในและภายนอก
    • ความท้าทายสำคัญในกระบวนการประเมินคือการทำให้ครอบคลุมพื้นที่อินพุตทั้งหมดที่เราต้องการให้ระบบทำงานได้ดี
    • การสร้าง automated evaluation pipeline จะช่วยประหยัดเวลาในภายหลังเมื่อต้องจัดการข้อมูลจำนวนมาก แต่ในช่วงแรกการที่สมาชิกทีมลงมาตรวจดูและทำความเข้าใจเอาต์พุตด้วยตนเองเป็นสิ่งสำคัญ
    • สิ่งนี้ช่วยให้เข้าใจสาเหตุความล้มเหลวของโมเดลและแนวโน้มของโมเดลต่อแต่ละงานได้
  • วิธีจัดทีม AI

    • มีอยู่ 2 แนวทางหลัก โดยแนวทางแรกคือเปลี่ยนทีมแมชชีนเลิร์นนิงเดิมให้เป็นทีม AI
    • วิธีนี้จะทำให้ทีมมุ่งเน้นที่ข้อมูล การตรวจสอบ และ benchmark จึงต้องประเมินให้สอดคล้องกับความต้องการของผู้ใช้และความคาดหวังในโลกจริง
    • แนวทางที่สองคือให้ทีมวิศวกรเดิมเรียนรู้ language model API เช่น OpenAI API ซึ่ง Notion ก็ใช้วิธีนี้ ดังนั้นทีม AI ช่วงแรกจึงส่วนใหญ่เป็นวิศวกรเว็บ
    • จุดแข็งของทีมลักษณะนี้คือมีความเข้าใจผู้ใช้และเก่งด้านการทดสอบเชิงทดลอง แต่ก็ต้องเรียนรู้ความสำคัญของการประเมินอย่างเข้มงวดและชุดข้อมูลคุณภาพสูง
    • นอกจากนี้ สุขอนามัยของข้อมูลและเวิร์กโฟลว์ในการดูแลชุดข้อมูลก็มีความสำคัญมาก ดังนั้นการรักษาคุณภาพของ data point ระดับสูงจึงเป็นสิ่งจำเป็น

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

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