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

ตัวอย่างประโยค 2 ประโยคที่แสดงการฝังที่เกี่ยวข้องสําหรับแต่ละคำในประโยคเป็นอาร์เรย์

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

ลองใช้เลย

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

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

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

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

ฟีเจอร์

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

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

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

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

โมเดล

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

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

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

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

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

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

ชื่อโมเดล รูปร่างอินพุต ประเภทการแปลงค่าเป็นจำนวนเต็ม เวอร์ชัน
Universal Sentence Encoder string, string, string ไม่มี (float32) ล่าสุด

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

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

ชื่อแบบจำลอง เวลาในการตอบสนองของ CPU เวลาในการตอบสนองของ GPU
Universal Sentence Encoder 18.21 มิลลิวินาที -