เรากำลังแนะนำการฝังซึ่งเป็นปลายทางใหม่ใน OpenAI API ที่ทำให้ง่ายต่อการใช้งานภาษาและโค้ดที่เป็นธรรมชาติ เช่น การค้นหาเชิงความหมาย การจัดกลุ่ม การสร้างแบบจำลองหัวข้อ และการจัดประเภท การฝังคือการแสดงตัวเลขของแนวคิดที่แปลงเป็นลำดับตัวเลข ซึ่งทำให้คอมพิวเตอร์เข้าใจความสัมพันธ์ระหว่างแนวคิดเหล่านั้นได้ง่าย การฝังของเรามีประสิทธิภาพเหนือกว่าโมเดลชั้นนำในการวัดประสิทธิภาพมาตรฐาน 3 แบบ รวมถึงการปรับปรุงการค้นหาโค้ดที่เกี่ยวข้อง 20%
การฝังมีประโยชน์สำหรับการทำงานกับภาษาและโค้ดที่เป็นธรรมชาติ เนื่องจากสามารถนำมาใช้และเปรียบเทียบได้โดยง่ายด้วยโมเดลการเรียนรู้ของเครื่องและอัลกอริธึมอื่นๆ เช่น การทำคลัสเตอร์หรือการค้นหา
การฝังที่มีตัวเลขใกล้เคียงกันก็มีความหมายคล้ายกันเช่นกัน ตัวอย่างเช่น เวกเตอร์การฝังของ "เพื่อนสุนัขพูดว่า" จะคล้ายกับเวกเตอร์การฝังของ "วูฟ" มากกว่าของ "เหมียว"
ปลายทางใหม่นี้ใช้โมเดลโครงข่ายประสาทเทียม ซึ่งเป็นลูกหลานของ GPT-3 เพื่อจับคู่ข้อความและโค้ดกับการแสดงเวกเตอร์ ซึ่ง "ฝัง" ไว้ในพื้นที่มิติสูง แต่ละมิติจะจับภาพบางแง่มุมของอินพุต
ใหม่ /ฝัง จุดสิ้นสุดใน เปิด AI API จัดเตรียมการฝังข้อความและโค้ดด้วยโค้ดสองสามบรรทัด:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
เรากำลังเปิดตัวโมเดลการฝังสามกลุ่ม โดยแต่ละรุ่นได้รับการปรับแต่งเพื่อให้ทำงานได้ดีบนฟังก์ชันต่างๆ ได้แก่ ความคล้ายคลึงของข้อความ การค้นหาข้อความ และการค้นหาโค้ด โมเดลใช้ข้อความหรือโค้ดเป็นอินพุตและส่งคืนเวกเตอร์ที่ฝัง
Models | ใช้กรณี | |
---|---|---|
ความเหมือนของข้อความ: จับความคล้ายคลึงทางความหมายระหว่างส่วนต่างๆ ของข้อความ | ความคล้ายคลึงกันของข้อความ-{ada, babbage, curie, davinci}-001 | การจัดกลุ่ม การถดถอย การตรวจจับความผิดปกติ การสร้างภาพ |
ค้นหาข้อความ: การดึงข้อมูลความหมายผ่านเอกสาร | ค้นหาข้อความ-{ada, babbage, curie, davinci}-{query, doc}-001 | การค้นหา ความเกี่ยวข้องของบริบท การดึงข้อมูล |
ค้นหารหัส: ค้นหารหัสที่เกี่ยวข้องพร้อมข้อความค้นหาในภาษาธรรมชาติ | รหัสค้นหา-{ada, babbage}-{รหัส ข้อความ}-001 | การค้นหารหัสและความเกี่ยวข้อง |
แบบจำลองความคล้ายคลึงของข้อความ
แบบจำลองความคล้ายคลึงของข้อความจัดให้มีการฝังที่จับความคล้ายคลึงกันทางความหมายของข้อความ โมเดลเหล่านี้มีประโยชน์สำหรับงานหลายอย่างรวมถึง การจัดกลุ่ม, การสร้างภาพข้อมูลและ การจัดหมวดหมู่.
การแสดงภาพแบบโต้ตอบต่อไปนี้แสดงการฝังตัวอย่างข้อความจากชุดข้อมูล DBpedia:
หากต้องการเปรียบเทียบความคล้ายคลึงของข้อความสองชิ้น คุณเพียงแค่ใช้ สินค้าจุด ในการฝังข้อความ ผลที่ได้คือ “คะแนนความคล้ายคลึง” ซึ่งบางครั้งเรียกว่า “ความคล้ายคลึงของโคไซน์” ระหว่าง –1 ถึง 1 โดยที่ตัวเลขที่สูงกว่าหมายถึงความคล้ายคลึงกันมากกว่า ในการใช้งานส่วนใหญ่ การฝังสามารถคำนวณล่วงหน้าได้ จากนั้นการเปรียบเทียบผลิตภัณฑ์ดอทก็สามารถทำได้อย่างรวดเร็วมาก
import openai, numpy as np resp = openai.Embedding.create( input=["feline friends go", "meow"], engine="text-similarity-davinci-001") embedding_a = resp['data'][0]['embedding']
embedding_b = resp['data'][1]['embedding'] similarity_score = np.dot(embedding_a, embedding_b)
การใช้การฝังที่ได้รับความนิยมอย่างหนึ่งคือใช้เป็นคุณลักษณะในงานการเรียนรู้ของเครื่อง เช่น การจัดประเภท ในเอกสารการเรียนรู้ของเครื่อง เมื่อใช้ตัวแยกประเภทเชิงเส้น งานการจัดหมวดหมู่นี้เรียกว่า "โพรบเชิงเส้น" แบบจำลองความคล้ายคลึงของข้อความของเราได้ผลลัพธ์ที่ทันสมัยที่สุดในการจำแนกประเภทโพรบเชิงเส้นใน ส่งEval (Conneau และคณะ, 2018) เกณฑ์มาตรฐานที่ใช้กันทั่วไปในการประเมินคุณภาพการฝัง
แบบจำลองการค้นหาข้อความ
โมเดลการค้นหาข้อความมีการฝังที่ช่วยให้สามารถค้นหางานในวงกว้างได้ เช่น การค้นหาเอกสารที่เกี่ยวข้องในคอลเลกชั่นของเอกสารที่ได้รับจากการสอบถามข้อความ มีการฝังเอกสารและคิวรีแยกกัน จากนั้นจึงใช้ความคล้ายคลึงของโคไซน์เพื่อเปรียบเทียบความคล้ายคลึงระหว่างคิวรีกับแต่ละเอกสาร
การค้นหาโดยใช้การฝังสามารถสรุปได้ดีกว่าเทคนิคการทับซ้อนของคำที่ใช้ในการค้นหาคีย์เวิร์ดแบบคลาสสิก เนื่องจากจะรวบรวมความหมายเชิงความหมายของข้อความและมีความละเอียดอ่อนน้อยกว่าต่อวลีหรือคำที่ตรงกันทั้งหมด เราประเมินประสิทธิภาพของรูปแบบการค้นหาข้อความบน เบียร์ (ธาคูร์ และคณะ ปี 2021) ชุดประเมินผลการค้นหาและได้ประสิทธิภาพการค้นหาที่ดีกว่าวิธีก่อนหน้า ของเรา คู่มือการค้นหาข้อความ ให้รายละเอียดเพิ่มเติมเกี่ยวกับการใช้การฝังสำหรับงานค้นหา
รหัสค้นหารุ่น
โมเดลการค้นหาโค้ดมีการฝังโค้ดและข้อความสำหรับงานค้นหาโค้ด เมื่อได้รับชุดโค้ดบล็อก ภารกิจคือค้นหาบล็อกโค้ดที่เกี่ยวข้องสำหรับการสืบค้นด้วยภาษาธรรมชาติ เราประเมินโมเดลการค้นหาโค้ดบน CodeSearchNet (Husian และคณะ, 2019) ชุดประเมินผลซึ่งการฝังของเราให้ผลลัพธ์ที่ดีกว่าวิธีการก่อนหน้านี้อย่างมีนัยสำคัญ ตรวจสอบ คู่มือการค้นหารหัส เพื่อใช้การฝังสำหรับการค้นหาโค้ด
ตัวอย่างของ Embeddings API ในการดำเนินการ
การวิจัย JetBrains
งานวิจัยของ JetBrains ห้องปฏิบัติการฟิสิกส์อนุภาคดาราศาสตร์ วิเคราะห์ข้อมูลเช่น โทรเลขของนักดาราศาสตร์ และของนาซ่า หนังสือเวียน GCNซึ่งเป็นรายงานที่มีเหตุการณ์ทางดาราศาสตร์ที่ไม่สามารถแยกวิเคราะห์ด้วยอัลกอริธึมแบบเดิมได้
นักวิจัยสามารถค้นหาเหตุการณ์ต่างๆ เช่น "crab pulsar bursts" ได้จากฐานข้อมูลและสิ่งพิมพ์ต่างๆ ที่ขับเคลื่อนโดยการฝังรายงานทางดาราศาสตร์เหล่านี้ของ OpenAI การฝังยังได้รับความแม่นยำ 99.85% ในการจัดประเภทแหล่งข้อมูลผ่านการจัดกลุ่มแบบ k-mean
ปรับจูนการเรียนรู้
ปรับจูนการเรียนรู้ เป็นบริษัทที่สร้างโซลูชั่น AI ของมนุษย์และปัญญาประดิษฐ์เพื่อการเรียนรู้ เช่น วงจรการเรียนรู้แบบปรับตัว ที่ช่วยให้นักศึกษาบรรลุมาตรฐานทางวิชาการ
การฝังของ OpenAI ช่วยปรับปรุงงานในการค้นหาเนื้อหาตำราเรียนตามวัตถุประสงค์การเรียนรู้ได้อย่างมาก ด้วยความแม่นยำ 5 อันดับแรกที่ 89.1% โมเดลการฝังข้อความ-ค้นหา-กูรีของ OpenAI มีประสิทธิภาพเหนือกว่าวิธีการก่อนหน้า เช่น Sentence-BERT (64.5%) แม้ว่าผู้เชี่ยวชาญที่เป็นมนุษย์จะยังดีกว่า แต่ทีม FineTune ก็สามารถติดป้ายกำกับหนังสือเรียนทั้งหมดได้ในเวลาไม่กี่วินาที ตรงกันข้ามกับชั่วโมงที่ผู้เชี่ยวชาญใช้
Fabius
Fabius ช่วยให้บริษัทเปลี่ยนการสนทนากับลูกค้าให้เป็นข้อมูลเชิงลึกที่มีโครงสร้างซึ่งให้ข้อมูลการวางแผนและการจัดลำดับความสำคัญ การฝังของ OpenAI ช่วยให้บริษัทต่างๆ ค้นหาและติดแท็กบันทึกการโทรของลูกค้าได้ง่ายขึ้นด้วยคำขอคุณลักษณะ
ตัวอย่างเช่น ลูกค้าอาจใช้คำว่า "อัตโนมัติ" หรือ "ใช้งานง่าย" เพื่อขอแพลตฟอร์มบริการตนเองที่ดีกว่า ก่อนหน้านี้ Fabius ใช้การค้นหาด้วยคีย์เวิร์ดที่คลุมเครือเพื่อพยายามติดแท็กการถอดเสียงเหล่านั้นด้วยป้ายกำกับแพลตฟอร์มแบบบริการตนเอง ด้วยการฝังของ OpenAI ในตอนนี้ พวกเขาสามารถพบตัวอย่างโดยทั่วไปเพิ่มขึ้น 2 เท่า และตัวอย่างเพิ่มเติม 6 เท่า–10 เท่าสำหรับคุณสมบัติที่มีกรณีการใช้งานที่เป็นนามธรรมซึ่งไม่มีคำหลักที่ชัดเจนที่ลูกค้าอาจใช้
ลูกค้า API ทั้งหมดสามารถเริ่มต้นด้วย เอกสารฝังตัว สำหรับการใช้การฝังในแอปพลิเคชัน
.vector-diagram img { แสดง: ไม่มี;
}
.vector-diagram img: first-child { แสดง: บล็อก;
}
var printResponse = function (btn) { // ผนวกการตอบสนอง var responseEl = เอกสาร .querySelector ('.endpoint-code-response') .querySelector ('code') var callParentEl = เอกสาร .querySelector ('.endpoint-code-call' ) .querySelector('pre') ถ้า (!responseEl || !callParentEl) กลับมา; โทรParentEl.appendChild(responseEl); // ปุ่มซ่อน btn.style.display= 'ไม่มี';
}; var initRotate = ฟังก์ชัน () { var หมุน = document.querySelectorAll ('.js-rotate'); ถ้า (!rotates.length) ส่งคืน; // สำหรับแต่ละชุดของการหมุน turns.forEach (ฟังก์ชัน (r) { // ย้ายลูกคนแรกเพื่อสิ้นสุดทุก ๆ n วินาที window.setInterval (ฟังก์ชัน (){ moveToEnd (r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = ฟังก์ชั่น (พาเรนต์, ลูก) { parent.removeChild (ลูก); parent.appendChild (เด็ก); // ต่อท้าย parent
}; var initShowMore = ฟังก์ชั่น () { var showmores = document.querySelectorAll ('.js-showmore'); showmores.forEach(function (e) { e.addEventListener('click', function () { var showmoreparent = this.parentElement; if (!showmoreparent) return; var more = showmoreparent.querySelector('.js-more'); ถ้า (!more) กลับมา more.style.display = 'block'; this.style.display = 'none'; }); });
}; // ในนั้น
document.addEventListener ('DOMContentLoaded', ฟังก์ชัน () { initRotate (); initShowMore ();
});
นำเข้า {Runtime, Inspector, Library} จาก “https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js”;
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
นำเข้า notebook_embed3d จาก "https://api.observablehq.com/d/fef0801cb0a0b322.js?v=3" const customWidth = function (ตัวเลือก) { return (new Library).Generators.observe (function (change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener(“ ปรับขนาด”, ปรับขนาด); ฟังก์ชั่นส่งคืน () { window.removeEventListener ("ปรับขนาด" ปรับขนาด); }; });
}; const topk_renders = { “แผนภูมิ”: “#topk-chart”,
};
รันไทม์ใหม่ (Object.assign (ไลบรารีใหม่ {ความกว้าง: customWidth (“#topk-chart”)})) โมดูล (notebook_topk ชื่อ => { ตัวเลือก const = topk_renders [ชื่อ]; ถ้า (ตัวเลือก) { // คีย์ มีอยู่ return new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { “แผนภูมิ”: “#embed3d-แผนภูมิ”, “ตำนาน”: “#embed3d-ตำนาน”,
};
รันไทม์ใหม่ (Object.assign (ไลบรารีใหม่ {ความกว้าง: customWidth (“# embed3d-chart”)})) โมดูล (notebook_embed3d ชื่อ => { ตัวเลือก const = embed3d_renders [ชื่อ]; ถ้า (ตัวเลือก) { // คีย์ มีอยู่ return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- ประสบความสำเร็จ
- ข้าม
- อัลกอริทึม
- ในหมู่
- API
- การใช้งาน
- ใช้ได้
- มาตรฐาน
- ปิดกั้น
- การก่อสร้าง
- โทรศัพท์
- สามารถรับ
- กรณี
- เปลี่ยนแปลง
- เด็ก
- การจัดหมวดหมู่
- รหัส
- ชุด
- บริษัท
- บริษัท
- เมื่อเทียบกับ
- คอมพิวเตอร์
- เนื้อหา
- การสนทนา
- ลูกค้า
- ข้อมูล
- ฐานข้อมูล
- การตรวจพบ
- ต่าง
- Dimension
- แสดง
- เอกสาร
- อย่างง่ายดาย
- ปลายทาง
- เหตุการณ์
- ตัวอย่าง
- ผู้เชี่ยวชาญ
- ครอบครัว
- FAST
- ลักษณะ
- คุณสมบัติ
- ข้อเสนอแนะ
- ชื่อจริง
- ดังต่อไปนี้
- ฟังก์ชัน
- General
- ความสูง
- ช่วย
- จะช่วยให้
- ซ่อน
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- เป็นลูกผสม
- รวมทั้ง
- ข้อมูล
- ข้อมูลเชิงลึก
- การโต้ตอบ
- IT
- คีย์
- ภาษา
- ได้เรียนรู้
- การเรียนรู้
- ห้องสมุด
- วรรณคดี
- เครื่อง
- เรียนรู้เครื่อง
- แผนที่
- การจับคู่
- เรื่อง
- ความหมาย
- ตัวชี้วัด
- แบบ
- โมเดล
- มอร์แกน
- มากที่สุด
- ย้าย
- นาซา
- โดยธรรมชาติ
- เครือข่าย
- จำนวน
- อื่นๆ
- รูปแบบไฟล์ PDF
- การปฏิบัติ
- วลี
- ฟิสิกส์
- การวางแผน
- เวที
- ยอดนิยม
- การคาดการณ์
- การสอบสวน
- ผลิต
- ผลิตภัณฑ์
- การเขียนโปรแกรม
- ให้
- ให้
- คุณภาพ
- RE
- ความสัมพันธ์
- ปล่อย
- รายงาน
- รายงาน
- คำตอบ
- ผลสอบ
- ค้นหา
- เลือก
- ชุด
- คล้ายคลึงกัน
- โซลูชัน
- ช่องว่าง
- มาตรฐาน
- ข้อความที่เริ่ม
- รัฐของศิลปะ
- สไตล์
- งาน
- ทีม
- เทคนิค
- ตลอด
- ด้านบน
- แบบดั้งเดิม
- เข้าใจ
- ใช้
- การสร้างภาพ
- W
- W3
- วิกิพีเดีย
- ภายใน
- คำ
- การทำงาน
- หยวน