หน่วย
1. ข้อมูลเบื้องต้นเกี่ยวกับ AI ในการพัฒนาอุปกรณ์พกพา: บทบาท ขอบเขต การรับรองความถูกต้อง และความปลอดภัย 2. การสร้างโค้ดบนมือถือด้วยปัญญาประดิษฐ์: การพัฒนา Kotlin, Swift และข้ามแพลตฟอร์ม 3. การออกแบบส่วนต่อประสานและการสร้างโค้ด UI ด้วยปัญญาประดิษฐ์ 4. AI บนอุปกรณ์: Core ML, TensorFlow Lite และ ML Kit 5. การรวม Cloud AI และ LLM API: แชท โฟลว์ และความปลอดภัย 6. การสร้างการทดสอบด้วยปัญญาประดิษฐ์: การทดสอบหน่วย อินเทอร์เฟซ และระบบอัตโนมัติ 7. การดีบักและการวิเคราะห์ข้อขัดข้องด้วยปัญญาประดิษฐ์ 8. ประสิทธิภาพและการเพิ่มประสิทธิภาพแบตเตอรี่: แอปพลิเคชันที่รวดเร็วและมีประสิทธิภาพด้วยปัญญาประดิษฐ์ 9. ความเป็นส่วนตัว การอนุญาต และการใช้งานอย่างปลอดภัย 10. การเปิดตัวร้านค้า: App Store, Google Play และความเข้ากันได้ของ AI 11. โครงการแบบครบวงจร การใช้ปัญญาประดิษฐ์และแผนงานอย่างมีความรับผิดชอบในวิชาชีพ
หน่วย 4 / 11

AI บนอุปกรณ์: Core ML, TensorFlow Lite และ ML Kit

กำไร:

  • ความสามารถในการตัดสินใจบนอุปกรณ์หรือคลาวด์ และเลือกเครื่องมือที่เหมาะสม (ML Kit, Core ML, TensorFlow Lite) ตามความต้องการความเป็นส่วนตัว ความต้องการออฟไลน์ ขนาดรุ่น และเกณฑ์แบตเตอรี่
  • ความสามารถในการป้องกันข้อผิดพลาดที่ไม่มีการโต้ตอบโดยการตรวจสอบการประมวลผลอินพุตล่วงหน้า (ขนาดและการทำให้เป็นมาตรฐาน) จากเอกสารของโมเดลในการรวมโมเดล
  • ความสามารถในการประเมินคะแนนความเชื่อมั่นและวัดผลลัพธ์ด้วยการอนุมัติจากผู้ใช้และบนอุปกรณ์จริง โดยไม่ต้องนำเสนอการคาดการณ์ที่มีความเชื่อมั่นต่ำว่าเป็นความจริงสัมบูรณ์

จนถึงตอนนี้ เราได้ใช้ AI เป็นตัวช่วยในการเร่งกระบวนการพัฒนา ตอนนี้เรามาดูบทบาทที่สองของ AI: ความสามารถพิเศษที่ฝังอยู่ในแอปพลิเคชัน โทรศัพท์สมัยใหม่มีพลังในการรันโมเดล AI เช่น การจดจำรูปภาพ การแปลข้อความ การถอดเสียงพูด ฯลฯ บนอุปกรณ์โดยตรง (บนอุปกรณ์ — ในโปรเซสเซอร์ของโทรศัพท์โดยไม่ต้องไปที่เซิร์ฟเวอร์) AI บนอุปกรณ์ มีข้อได้เปรียบเหนือโซลูชันระบบคลาวด์ในแง่ของความเร็ว ความเป็นส่วนตัว และการทำงานแบบออฟไลน์ ในหน่วยนี้ เราจะได้เรียนรู้วิธีฝัง AI ลงในแอปพลิเคชันด้วย Core ML ของ iOS, TensorFlow Lite ข้ามแพลตฟอร์ม (ปัจจุบันรู้จักกันในชื่อ LiteRT) และ ML Kit โซลูชันสำเร็จรูปของ Google และวิธีการใช้ AI เป็นตัวช่วยในการบูรณาการนี้

บนอุปกรณ์หรือคลาวด์?

นี่เป็นการตัดสินใจทางสถาปัตยกรรมครั้งแรกและสำคัญที่สุด AI บนอุปกรณ์จะไม่ลบข้อมูลออกจากโทรศัพท์ ซึ่งถือเป็นชัยชนะครั้งใหญ่ในด้านความเป็นส่วนตัว นอกจากนี้ยังทำงานได้ทันทีและทำงานแบบออฟไลน์เนื่องจากไม่มีเวลาแฝงของเครือข่าย อย่างไรก็ตาม มันถูกจำกัดด้วยพลังการประมวลผลและหน่วยความจำของอุปกรณ์ รุ่นที่มีขนาดใหญ่มาก (เช่น รุ่นลิ้นยักษ์) ใส่โทรศัพท์ไม่ได้หรือจะทำให้แบตเตอรี่หมด ในทางกลับกัน Cloud AI ให้พลังไม่จำกัด แต่ส่งข้อมูลไปยังเซิร์ฟเวอร์ ต้องใช้เครือข่าย และสร้างความล่าช้า

เกณฑ์

บนอุปกรณ์

คลาวด์ (คลาวด์ API)

ความเป็นส่วนตัว

ข้อมูลยังคงอยู่ในอุปกรณ์ แข็งแกร่ง

ข้อมูลไปที่เซิร์ฟเวอร์ จำเป็นต้องให้ความสนใจ

ความเร็ว

ทันทีไม่มีเครือข่าย

ขึ้นอยู่กับเวลาแฝงของเครือข่าย

ออฟไลน์

มันได้ผล

ไม่ทำงาน

ขนาดโมเดล

จำกัด (ทรัพยากรโทรศัพท์)

ไม่จำกัด

แบตเตอรี่/ความร้อน

เอฟเฟกต์การใช้งานหนัก

เซิร์ฟเวอร์อยู่ระหว่างการโหลด อุปกรณ์ผ่อนคลาย

ราคา

ฟรี (แหล่งที่มาของอุปกรณ์)

ค่าธรรมเนียมต่อการใช้งาน

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

เคล็ดลับ: กำหนดให้อุปกรณ์เป็นค่าเริ่มต้นสำหรับฟีเจอร์ที่จัดการข้อมูลที่ละเอียดอ่อน (สุขภาพ ไบโอเมตริก ตำแหน่ง) เสมอ วลีที่ว่า “ข้อมูลไม่ออกจากอุปกรณ์” มีค่ามากสำหรับทั้งการปฏิบัติตามความเป็นส่วนตัวและความไว้วางใจของผู้ใช้ และสร้างความแตกต่างอย่างมากในป้ายกำกับความเป็นส่วนตัวของร้านค้า

สามวิธี: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) เป็นวิธีเริ่มต้นที่ง่ายที่สุด: ให้ความสามารถสำเร็จรูป เช่น การจดจำข้อความ (OCR — การอ่านข้อความในรูปภาพ) การตรวจจับใบหน้า การอ่านบาร์โค้ด การแปลในไม่กี่บรรทัด คุณไม่จำเป็นต้องฝึกโมเดลของคุณเอง Core ML (Apple) เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการรันโมเดลของคุณเองหรือโมเดลสำเร็จรูปบน iOS ใช้ฮาร์ดแวร์ Neural Engine (โปรเซสเซอร์เครือข่ายประสาทเทียม) ของ Apple TensorFlow Lite/LiteRT เป็นโซลูชันข้ามแพลตฟอร์มที่ช่วยให้คุณสามารถเรียกใช้โมเดลที่ผ่านการฝึกอบรมของคุณเองทั้งบน Android และ iOS

ขั้นตอนการบูรณาการทั่วไปกับ AI จะเป็นดังนี้:

  1. คำจำกัดความความสามารถพิเศษ เป้าหมายที่ชัดเจน เช่น “อยากอ่านข้อความในรูป”
  2. การเลือกเส้นทาง หากมีพรสวรรค์พร้อม ML Kit; Core ML/TF Lite หากมีรุ่นพิเศษ
  3. รูปแบบโมเดล .mlmodel (Core ML), .tflite (TF Lite) อธิบายขั้นตอนการแปลง AI
  4. รหัสบูรณาการ กำลังโหลดโมเดล ประมวลผลอินพุตล่วงหน้า ตีความเอาต์พุต
  5. การทดสอบประสิทธิภาพ ความเร็ว หน่วยความจำ การวัดแบตเตอรี่บนอุปกรณ์จริง
ข้อควรระวัง: ข้อผิดพลาด AI ที่พบบ่อยที่สุดในการรวมโมเดลบนอุปกรณ์คือการประมวลผลอินพุตล่วงหน้า โดยการแปลงรูปภาพให้เป็นขนาดและรูปแบบสีตามที่โมเดลคาดหวัง หากโมเดลคาดหวังขนาด 224x224 พิกเซล และคุณให้ขนาด 300x300 ผลลัพธ์จะไม่มีความหมาย แต่คุณจะไม่ได้รับข้อความแสดงข้อผิดพลาด ตรวจสอบค่าการประมวลผลล่วงหน้าจากเอกสารของโมเดล

รู้ขีดจำกัดของโมเดล

โมเดลในอุปกรณ์จะตัดสินใจโดยอิงตามข้อมูลที่ได้รับการฝึก โมเดลการรู้จำวัตถุที่ฝึกเฉพาะกับภาพที่ถ่ายในระหว่างวันจะผิดกับภาพกลางคืน โมเดลมีคะแนนความเชื่อมั่น (ความมั่นใจ — ความมั่นใจของโมเดลเกี่ยวกับคำตอบ ปกติจะอยู่ระหว่าง 0 ถึง 1) การนำเสนอผลลัพธ์ที่มีความมั่นใจต่ำแก่ผู้ใช้อย่างแม่นยำถือเป็นอันตราย ตัวอย่างเช่น แอปพลิเคชันสแกนจุดผิวหนังไม่ควรพูดว่า "ไม่เป็นพิษเป็นภัยอย่างแน่นอน" แต่ควรพูดว่า "การคาดการณ์ของแบบจำลองคือสิ่งนี้ โปรดปรึกษาแพทย์" ผลลัพธ์ของแบบจำลองเป็นเพียงคำแนะนำ ไม่ใช่การวินิจฉัย

มินิเคสสามอัน

กรณีที่ 1 — การเร่งความเร็วด้วย OCR แอปติดตามค่าใช้จ่ายได้ขจัดภาระในการป้อนใบเสร็จรับเงินด้วยตนเองด้วยการจดจำข้อความ ML Kit ผู้ใช้ถ่ายภาพใบเสร็จรับเงิน และกรอกจำนวนเงินและวันที่โดยอัตโนมัติ เวลาป้อนด้วยตนเองลดลงจาก 40 วินาทีเป็น 8 วินาทีต่อการรับ ทีมงานให้ผู้ใช้ยืนยันปริมาณที่ AI อ่านอยู่เสมอ เนื่องจากใบเสร็จรับเงินยับมีข้อผิดพลาด 6% ระบบอัตโนมัติ + การอนุมัติโดยมนุษย์คือความสมดุลที่เหมาะสม

กรณีที่ 2 — ข้อผิดพลาดในการประมวลผลล่วงหน้า ทีมหนึ่งได้รวมโมเดลการจดจำพืชเข้ากับ TensorFlow Lite; ผู้ทดสอบผลลัพธ์จะเป็นการสุ่ม ปัญหาคือโค้ดที่ AI สร้างขึ้นไม่ได้ทำให้ภาพเป็นมาตรฐานจนถึงช่วง [0,1] ตามที่โมเดลคาดหวัง (ค่าพิกเซลเหลืออยู่ที่ 0-255) เมื่อเพิ่มการทำให้เป็นมาตรฐาน ความแม่นยำเพิ่มขึ้นจาก 30% เป็น 89% บทเรียน: การประมวลผลล่วงหน้านั้นเงียบแต่อันตรายถึงชีวิต

กรณีที่ 3 — การได้รับความเป็นส่วนตัว แอปพลิเคชันด้านสุขภาพตรวจพบความผิดปกติจากข้อมูลอัตราการเต้นของหัวใจด้วยรุ่น Core ML บนอุปกรณ์ ข้อมูลไม่เคยไปที่เซิร์ฟเวอร์ ตัวเลือกนี้ทำให้แอปพลิเคชันได้รับวลี "ไม่รวบรวมข้อมูล" ในป้ายกำกับความเป็นส่วนตัวของ App Store และเพิ่มอัตราการดาวน์โหลดเมื่อเทียบกับคู่แข่ง ตัวเลือกบนอุปกรณ์มีทั้งจริยธรรมและผลกำไรในเชิงพาณิชย์

พรอมต์อ่อน / พรอมต์แข็งแกร่ง

ข้อความเตือนที่อ่อนแอ: "เพิ่มการจดจำรูปภาพให้กับแอปของฉัน"

ข้อความแจ้งที่มีประสิทธิภาพ: "เพิ่มคุณลักษณะการอ่านจำนวนและวันที่ลงในแอปพลิเคชัน Android/Kotlin ของฉัน - ใช้การรู้จำข้อความ Google ML Kit (บนอุปกรณ์ ออฟไลน์) - ถ่ายภาพจากกล้องหรือแกลเลอรี - แยกจำนวนและวันที่ออกจากข้อความที่จดจำด้วย regex - นำเสนอผลลัพธ์แก่ผู้ใช้เพื่อขออนุมัติในช่องแก้ไข บันทึกอัตโนมัติ - จัดการโฟลว์การอนุญาตและการปฏิเสธของกล้อง เขียนสถานการณ์ก่อนการประมวลผลและข้อผิดพลาด อธิบายขั้นตอนต่างๆ"

เทมเพลตที่คัดลอกได้

เทมเพลตการเลือกเส้นทาง: "ฉันต้องการสร้างฟีเจอร์ต่อไปนี้: [ฟีเจอร์] ควรเป็นบนอุปกรณ์หรือคลาวด์ เปรียบเทียบตาม: ความเป็นส่วนตัว ความต้องการออฟไลน์ ขนาดรุ่น แบตเตอรี่ ต้นทุน แนะนำเครื่องมือที่เหมาะสม (ML Kit / Core ML / TF Lite) และปรับให้เหมาะสม"

เทมเพลตการรวม:"เขียนการรวม [โมเดล/ความสามารถ] สำหรับ [แพลตฟอร์ม]:1) การโหลดโมเดล2) การประมวลผลอินพุตล่วงหน้า (ขนาดที่คาดหวังและการทำให้เป็นมาตรฐาน)3) การเรียกอนุมาน4) การตีความเอาท์พุตและการตรวจสอบคะแนนความมั่นใจ5) คำเตือนผู้ใช้เกี่ยวกับผลลัพธ์ที่มีความมั่นใจต่ำ เตือนฉันให้ตรวจสอบค่าการประมวลผลล่วงหน้าจากเอกสารประกอบของโมเดล"

เทมเพลตคะแนนความเชื่อมั่น:"พิจารณาคะแนนความเชื่อมั่นในโค้ดการอนุมานนี้:- ปัจจุบันผลลัพธ์ 'แน่นอน' ต่ำกว่าเกณฑ์ (เช่น 0.6)- แสดงหมายเหตุ 'นี่คือค่าประมาณ' ให้ผู้ใช้- อ้างอิงถึงผู้เชี่ยวชาญหากประเด็นสำคัญ (สุขภาพ ความปลอดภัย)[รหัส]"

เทมเพลตการตรวจสอบประสิทธิภาพ: "แสดงรายการหน่วยเมตริกที่ฉันจำเป็นต้องวัดบนอุปกรณ์จริงสำหรับการผสานรวมโมเดลบนอุปกรณ์นี้: เวลาในการอนุมาน การเพิ่มหน่วยความจำ ผลกระทบของแบตเตอรี่ ความร้อน บอกวิธีการวัดสำหรับแต่ละรายการ"

ข้อผิดพลาดทั่วไป

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

โดยสรุป

AI บนอุปกรณ์ให้ความเป็นส่วนตัว ความเร็ว และการทำงานแบบออฟไลน์โดยการเก็บข้อมูลไว้ในโทรศัพท์ ขีดจำกัดคือกำลังของอุปกรณ์และขนาดรุ่น ML Kit ใช้สำหรับความสามารถที่พร้อมใช้งานทันที, Core ML (iOS) และ TensorFlow Lite (ข้ามแพลตฟอร์ม) ใช้สำหรับโมเดลแบบกำหนดเอง นักฆ่าเงียบของการบูรณาการคือการประมวลผลล่วงหน้าที่ไม่เหมาะสม ขนาดอินพุตและการทำให้เป็นมาตรฐานได้รับการตรวจสอบจากเอกสารประกอบของโมเดล ผลลัพธ์แต่ละรายการมาพร้อมกับคะแนนความเชื่อมั่น และการคาดคะเนที่มีความเชื่อมั่นต่ำจะไม่ถูกนำเสนอว่าเป็นความจริงสัมบูรณ์ การตัดสินใจวัดกันบนอุปกรณ์จริง ไม่ใช่โปรแกรมจำลอง

งานสมัคร

สำหรับคุณสมบัติ “การอ่านข้อความจากภาพถ่าย” หรือ “การอ่านบาร์โค้ด” ให้ถาม AI ว่าควรอยู่ในอุปกรณ์หรือบนคลาวด์ด้วย “เทมเพลตการเลือกเส้นทาง” จากนั้นขอพิมพ์เขียวที่ใช้ ML Kit ด้วย “เทมเพลตบูรณาการ” ตรวจสอบว่าขั้นตอนการประมวลผลล่วงหน้าและขั้นตอนการอนุมัติ/แก้ไขผู้ใช้มีอยู่ในโค้ด กำหนดเกณฑ์คะแนนความน่าเชื่อถือและเขียนสิ่งที่คุณจะทำอย่างไรหากผลลัพธ์มีความน่าเชื่อถือต่ำ

รายการตรวจสอบ

  • [ ] ฉันตัดสินใจบนอุปกรณ์/คลาวด์ตามเกณฑ์
  • [ ] ฉันเลือกเครื่องมือที่เหมาะสม (ML Kit / Core ML / TF Lite)
  • [ ] ฉันตรวจสอบมิติการประมวลผลล่วงหน้าและการทำให้เป็นมาตรฐานจากเอกสารประกอบของโมเดล
  • [ ] ฉันตรวจสอบคะแนนความน่าเชื่อถือและเตือนถึงผลความน่าเชื่อถือต่ำ
  • [ ] ฉันนำเสนอผลลัพธ์แก่ผู้ใช้โดยได้รับการอนุมัติ/แก้ไข ฉันไม่ได้บันทึกแบบสุ่มสี่สุ่มห้า
  • [ ] ฉันวัดประสิทธิภาพบนอุปกรณ์จริง ไม่ใช่โปรแกรมจำลอง