คำแนะนำการฝังข้อความ

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

ลองเลย

เริ่มต้นใช้งาน

เริ่มใช้งานนี้โดยทำตามคำแนะนำในการใช้งานสำหรับแพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานเบื้องต้นของงานนี้ ซึ่งรวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดที่มีตัวเลือกการกำหนดค่าที่แนะนำ

รายละเอียดงาน

ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้

ฟีเจอร์

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

ตัวเลือกการกำหนดค่า

งานมีตัวเลือกการกำหนดค่าต่อไปนี้

ชื่อตัวเลือก คำอธิบาย ช่วงของค่า ค่าเริ่มต้น
l2_normalize ดูว่าจะปรับเวกเตอร์ของฟีเจอร์ที่ส่งคืนด้วยค่าปกติ L2 หรือไม่ ใช้ตัวเลือกนี้เฉพาะเมื่อโมเดลยังไม่มี L2_NORMALIZATION TFLite Op แบบเนทีฟ ในกรณีส่วนใหญ่ ก็มีกรณีเช่นนี้อยู่แล้ว และระบบจะทำการปรับให้สอดคล้องตามมาตรฐาน L2 ผ่านการอนุมาน TFLite โดยไม่จำเป็นต้องใช้ตัวเลือกนี้ Boolean False
quantize ควรทำให้การฝังที่ส่งคืนแปลงเป็นไบต์ผ่านการกำหนดปริมาณแบบสเกลาร์ไหม การฝังมีสมมติฐานโดยนัยว่าเป็นหน่วยบรรทัดฐาน ดังนั้นมิติข้อมูลใดๆ ก็มีค่าเป็น [-1.0, 1.0] อย่างแน่นอน ในกรณีนี้ ให้ใช้ตัวเลือก l2_normalize Boolean False

รูปแบบ

เราเสนอโมเดลเริ่มต้นที่แนะนำเมื่อคุณเริ่มต้นพัฒนาด้วยงานนี้

โมเดลนี้ใช้สถาปัตยกรรมโปรแกรมเปลี่ยนไฟล์คู่ และได้รับการฝึกจากชุดข้อมูลที่มีคำถาม-คำตอบต่างๆ

ลองใช้ประโยคคู่ต่อไปนี้

  • ("เป็นการเดินทางที่มีเสน่ห์และมักส่งผลต่อการเดินทาง" "เป็นการเดินทางที่ยอดเยี่ยมและน่าประทับใจมาก")
  • ("ฉันชอบโทรศัพท์ของตัวเอง" "ไม่ชอบโทรศัพท์")
  • ("ร้านอาหารนี้มีลูกเล่นที่ยอดเยี่ยม" "เราต้องตรวจสอบรายละเอียดของแผนงานของเราอีกครั้ง")

ข้อความที่ฝังใน 2 คู่แรกจะมีความคล้ายคลึงกันแบบโคไซน์สูงกว่าการฝังในคู่ที่ 3 เพราะประโยค 2 คู่แรกมีหัวข้อทั่วไปคือ "ความเห็นสำหรับการเดินทาง" และ "ความเห็นของโทรศัพท์" ตามลำดับ แต่ประโยคคู่ที่ 3 ไม่มีหัวข้อทั่วไป

โปรดทราบว่าแม้ 2 ประโยคในคู่ที่ 2 จะมีความเห็นโต้แย้ง แต่ทั้งคู่มีคะแนนความคล้ายคลึงกันสูงเพราะทั้งสองหัวข้อมีร่วมกัน

ชื่อโมเดล รูปร่างอินพุต ประเภทการหาปริมาณ ฉบับ
โปรแกรมเปลี่ยนไฟล์ Universal Sentence สตริง, สตริง, สตริง ไม่มี (Float32) ล่าสุด

การเปรียบเทียบงาน

นี่คือการเปรียบเทียบงานสำหรับทั้งไปป์ไลน์ตามโมเดลที่ฝึกล่วงหน้าไว้ข้างต้น ผลของเวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU

ชื่อโมเดล เวลาในการตอบสนองของ CPU เวลาในการตอบสนองของ GPU
ตัวเข้ารหัสประโยคสากล 18.21 มิลลิวินาที -