งานเครื่องมือฝังข้อความ MediaPipe ให้คุณสร้างการนำเสนอแบบตัวเลขของข้อมูลข้อความเพื่อบันทึกความหมายเชิงความหมาย ฟังก์ชันการทำงานนี้มักใช้เพื่อเปรียบเทียบความคล้ายคลึงกันเชิงความหมายของข้อความ 2 ชิ้นโดยใช้เทคนิคการเปรียบเทียบทางคณิตศาสตร์ เช่น ความคล้ายคลึงกันของโคไซน์ งานนี้ดำเนินการกับข้อมูลข้อความด้วยโมเดลแมชชีนเลิร์นนิง (ML) และแสดงผลข้อมูลข้อความในรูปแบบตัวเลขเป็นรายการเวกเตอร์ของฟีเจอร์ที่มีมิติสูง หรือที่เรียกว่าการฝังเวกเตอร์ในรูปแบบจุดลอยตัวหรือเชิงปริมาณ
เริ่มต้นใช้งาน
เริ่มใช้งานนี้โดยทำตามคำแนะนำในการใช้งานสำหรับแพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานเบื้องต้นของงานนี้ ซึ่งรวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดที่มีตัวเลือกการกำหนดค่าที่แนะนำ
- Android - ตัวอย่างโค้ด - คำแนะนำ
- Python - ตัวอย่างโค้ด - คำแนะนำ
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลข้อความอินพุต - รองรับการแปลงข้อมูลเป็นโทเค็นแบบนอกกราฟสำหรับโมเดลที่ไม่มีการแปลงข้อมูลเป็นโทเค็นในกราฟ
- การฝังการคำนวณความคล้ายคลึงกัน - ฟังก์ชันยูทิลิตีในตัวเพื่อคำนวณความคล้ายคลึงกันของโคไซน์ระหว่างเวกเตอร์จุดสนใจ 2 เวกเตอร์
- การหาปริมาณ - รองรับการกำหนดปริมาณสเกลาร์สำหรับเวกเตอร์ของจุดสนใจ
ข้อมูลงาน | เอาต์พุตของงาน |
---|---|
เครื่องมือฝังข้อความยอมรับประเภทข้อมูลอินพุตต่อไปนี้
|
เครื่องมือฝังข้อความจะแสดงรายการการฝังที่มีข้อมูลต่อไปนี้
|
ตัวเลือกการกำหนดค่า
งานมีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
l2_normalize |
ดูว่าจะปรับเวกเตอร์ของฟีเจอร์ที่ส่งคืนด้วยค่าปกติ L2 หรือไม่ ใช้ตัวเลือกนี้เฉพาะเมื่อโมเดลยังไม่มี L2_NORMALIZATION TFLite Op แบบเนทีฟ ในกรณีส่วนใหญ่ ก็มีกรณีเช่นนี้อยู่แล้ว และระบบจะทำการปรับให้สอดคล้องตามมาตรฐาน L2 ผ่านการอนุมาน TFLite โดยไม่จำเป็นต้องใช้ตัวเลือกนี้ | Boolean |
False |
quantize |
ควรทำให้การฝังที่ส่งคืนแปลงเป็นไบต์ผ่านการกำหนดปริมาณแบบสเกลาร์ไหม การฝังมีสมมติฐานโดยนัยว่าเป็นหน่วยบรรทัดฐาน ดังนั้นมิติข้อมูลใดๆ ก็มีค่าเป็น [-1.0, 1.0] อย่างแน่นอน ในกรณีนี้ ให้ใช้ตัวเลือก l2_normalize | Boolean |
False |
รูปแบบ
เราเสนอโมเดลเริ่มต้นที่แนะนำเมื่อคุณเริ่มต้นพัฒนาด้วยงานนี้
โมเดล Universal Sentence Encrypter (แนะนำ)
โมเดลนี้ใช้สถาปัตยกรรมโปรแกรมเปลี่ยนไฟล์คู่ และได้รับการฝึกจากชุดข้อมูลที่มีคำถาม-คำตอบต่างๆ
ลองใช้ประโยคคู่ต่อไปนี้
- ("เป็นการเดินทางที่มีเสน่ห์และมักส่งผลต่อการเดินทาง" "เป็นการเดินทางที่ยอดเยี่ยมและน่าประทับใจมาก")
- ("ฉันชอบโทรศัพท์ของตัวเอง" "ไม่ชอบโทรศัพท์")
- ("ร้านอาหารนี้มีลูกเล่นที่ยอดเยี่ยม" "เราต้องตรวจสอบรายละเอียดของแผนงานของเราอีกครั้ง")
ข้อความที่ฝังใน 2 คู่แรกจะมีความคล้ายคลึงกันแบบโคไซน์สูงกว่าการฝังในคู่ที่ 3 เพราะประโยค 2 คู่แรกมีหัวข้อทั่วไปคือ "ความเห็นสำหรับการเดินทาง" และ "ความเห็นของโทรศัพท์" ตามลำดับ แต่ประโยคคู่ที่ 3 ไม่มีหัวข้อทั่วไป
โปรดทราบว่าแม้ 2 ประโยคในคู่ที่ 2 จะมีความเห็นโต้แย้ง แต่ทั้งคู่มีคะแนนความคล้ายคลึงกันสูงเพราะทั้งสองหัวข้อมีร่วมกัน
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการหาปริมาณ | ฉบับ |
---|---|---|---|
โปรแกรมเปลี่ยนไฟล์ Universal Sentence | สตริง, สตริง, สตริง | ไม่มี (Float32) | ล่าสุด |
การเปรียบเทียบงาน
นี่คือการเปรียบเทียบงานสำหรับทั้งไปป์ไลน์ตามโมเดลที่ฝึกล่วงหน้าไว้ข้างต้น ผลของเวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
ชื่อโมเดล | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU |
---|---|---|
ตัวเข้ารหัสประโยคสากล | 18.21 มิลลิวินาที | - |