โมเดลภาษาขนาดใหญ่ในอุปกรณ์ที่มี Keras และ TensorFlow Lite

1. ก่อนเริ่มต้น

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

LLM มีขนาดใหญ่มากในแง่ของพื้นที่เก็บข้อมูล และโดยทั่วไปต้องใช้กำลังการประมวลผลจำนวนมากในการเรียกใช้ ซึ่งหมายความว่ามักจะมีการติดตั้งใช้งานในระบบคลาวด์ และเป็นเรื่องที่ท้าทายพอสมควรสำหรับแมชชีนเลิร์นนิงในอุปกรณ์ (ODML) เนื่องจากกำลังการคำนวณในอุปกรณ์เคลื่อนที่มีจำกัด แต่คุณสามารถเรียกใช้ LLM ขนาดเล็กกว่า (เช่น GPT-2) ในอุปกรณ์ Android รุ่นใหม่และยังคงได้รับผลลัพธ์ที่น่าประทับใจ

นี่คือการสาธิตการเรียกใช้โมเดล PaLM ของ Google เวอร์ชันที่มีพารามิเตอร์ 1.5 พันล้านรายการใน Google Pixel 7 Pro โดยไม่มีการเร่งความเร็วในการเล่น

PaLM ใน Pixel 7 Pro

ใน Codelab นี้ คุณจะได้เรียนรู้เทคนิคและเครื่องมือในการสร้างแอปที่ทำงานด้วย LLM (โดยใช้ GPT-2 เป็นโมเดลตัวอย่าง) ด้วยสิ่งต่อไปนี้

  • KerasNLP เพื่อโหลด LLM ที่ฝึกไว้ล่วงหน้า
  • KerasNLP เพื่อปรับแต่ง LLM
  • TensorFlow Lite เพื่อแปลง เพิ่มประสิทธิภาพ และใช้งาน LLM บน Android

ข้อกำหนดเบื้องต้น

  • มีความรู้ระดับกลางเกี่ยวกับ Keras และ TensorFlow Lite
  • มีความรู้พื้นฐานเกี่ยวกับการพัฒนาแอป Android

สิ่งที่คุณจะได้เรียนรู้

  • วิธีใช้ KerasNLP เพื่อโหลด LLM ที่ฝึกไว้ล่วงหน้าและปรับแต่ง
  • วิธีควอนไตซ์และแปลง LLM เป็น TensorFlow Lite
  • วิธีเรียกใช้การอนุมานในโมเดล TensorFlow Lite ที่แปลงแล้ว

สิ่งที่คุณต้องมี

  • สิทธิ์เข้าถึง Colab
  • Android Studio เวอร์ชันล่าสุด
  • อุปกรณ์ Android รุ่นใหม่ที่มี RAM มากกว่า 4 GB

2. ตั้งค่า

วิธีดาวน์โหลดโค้ดสำหรับ Codelab นี้

  1. ไปที่ที่เก็บ GitHub สำหรับ Codelab นี้
  2. คลิกโค้ด > ดาวน์โหลด ZIP เพื่อดาวน์โหลดโค้ดทั้งหมดสำหรับ Codelab นี้

รูปภาพที่เก็บ

  1. แตกไฟล์ ZIP ที่ดาวน์โหลดเพื่อคลายโฟลเดอร์รูท examples ที่มีทรัพยากรทั้งหมดที่คุณต้องการ

3. เรียกใช้แอปเริ่มต้น

  1. นำเข้าโฟลเดอร์ examples/lite/examples/generative_ai/android ไปยัง Android Studio
  2. เริ่มโปรแกรมจำลองของ Android แล้วคลิก execute.png Run ในเมนูการนำทาง

เรียกใช้และสำรวจแอป

แอปควรเปิดขึ้นในอุปกรณ์ Android แอปนี้ชื่อว่า "เติมข้อความอัตโนมัติ" UI ใช้งานง่ายมาก คุณสามารถพิมพ์คำเริ่มต้นในกล่องข้อความแล้วแตะสร้าง จากนั้นแอปจะเรียกใช้การอนุมานใน LLM และสร้างข้อความเพิ่มเติมตามอินพุตที่คุณป้อน

ตอนนี้หากคุณแตะสร้างหลังจากพิมพ์คำบางคำแล้ว จะไม่มีอะไรเกิดขึ้น เนื่องจากยังไม่ได้เรียกใช้ LLM

ภาพหน้าจอสำหรับแอปเริ่มต้น

4. เตรียม LLM สำหรับการติดตั้งใช้งานในอุปกรณ์

5. สร้างแอป Android ให้เสร็จสมบูรณ์

ตอนนี้คุณได้แปลงโมเดล GPT-2 เป็น TensorFlow Lite แล้ว ในที่สุดคุณก็สามารถนําไปใช้ในแอปได้

เรียกใช้แอป

  1. ลากautocomplete.tfliteไฟล์โมเดลที่ดาวน์โหลดจากขั้นตอนสุดท้ายไปยังโฟลเดอร์ app/src/main/assets/ ใน Android Studio

เพิ่มโมเดลไปยัง Android Studio

  1. คลิก execute.png เรียกใช้ในเมนูการนำทาง จากนั้นรอให้แอปโหลด
  2. พิมพ์คำเริ่มต้นในช่องข้อความ แล้วแตะสร้าง

ภาพหน้าจอของแอปที่เสร็จสมบูรณ์แล้ว

6. หมายเหตุเกี่ยวกับ AI ที่มีความรับผิดชอบ

ดังที่ระบุไว้ในประกาศเกี่ยวกับ GPT-2 ของ OpenAI ฉบับเดิม โมเดล GPT-2 มีข้อควรระวังและข้อจำกัดที่สำคัญ ปัจจุบัน LLM มักจะมีความท้าทายที่ทราบกันดีอยู่แล้ว เช่น คำตอบที่ไม่สมเหตุสมผล เอาต์พุตที่ไม่เหมาะสม ความเป็นธรรม และอคติ เนื่องจากโมเดลเหล่านี้ได้รับการฝึกด้วยข้อมูลในโลกแห่งความเป็นจริง จึงทำให้โมเดลสะท้อนปัญหาในโลกแห่งความเป็นจริง

Codelab นี้สร้างขึ้นเพื่อแสดงวิธีสร้างแอปที่ขับเคลื่อนโดย LLM ด้วยเครื่องมือ TensorFlow เท่านั้น โมเดลที่สร้างขึ้นในโค้ดแล็บนี้มีไว้เพื่อวัตถุประสงค์ทางการศึกษาเท่านั้น และไม่ได้มีไว้สำหรับการใช้งานจริง

การใช้งาน LLM ในเวอร์ชันที่ใช้งานจริงต้องมีการเลือกชุดข้อมูลการฝึกอย่างรอบคอบและการลดความเสี่ยงด้านความปลอดภัยที่ครอบคลุม หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ Responsible AI ในบริบทของ LLM โปรดดูเซสชันทางเทคนิคการพัฒนาโมเดลภาษา Generative อย่างปลอดภัยและมีความรับผิดชอบที่ Google I/O 2023 และดูชุดเครื่องมือ Responsible AI

7. บทสรุป

ยินดีด้วย คุณสร้างแอปเพื่อสร้างข้อความที่สอดคล้องกันโดยอิงตามข้อมูลจากผู้ใช้ด้วยการเรียกใช้โมเดลภาษาขนาดใหญ่ที่ผ่านการฝึกมาก่อนในอุปกรณ์เท่านั้น

ดูข้อมูลเพิ่มเติม