当前位置: 首页>数据库>正文

向量数据库(第 3 部分):并非所有索引都是一样的

杩欐槸鎴戝叧浜庡悜閲忔暟鎹簱鐨勭郴鍒楁枃绔犵殑绗笁绡囥€傜涓€閮ㄥ垎姣旇緝浜嗗悇绉嶆暟鎹簱渚涘簲鍟嗙殑浜у搧浠ュ強瀹冧滑鍦ㄩ珮灞傞潰涓婄殑鍖哄埆锛岃€岀浜岄儴鍒嗗垯鐫€閲嶄粙缁嶄簡鍚戦噺鏁版嵁搴撶殑鍩虹鐭ヨ瘑鍜屽姛鑳姐€傛偍鍙兘宸茬粡闃呰杩嘍mitry Kan鍦?021骞存挵鍐欑殑浼樼鏂囩珷銆婂苟闈炴墍鏈夊悜閲忔暟鎹簱閮芥槸鐩稿悓鐨勩€?锛岃鏂囩珷娑电洊浜嗗競鍦轰笂鍚勭鍚戦噺鏁版嵁搴撲箣闂寸殑宸紓銆傝嚜閭f椂浠ユ潵锛岃繖涓鍩熶竴鐩村湪涓嶆柇鍙戝睍锛屽洜涓烘瘡涓暟鎹簱鍦ㄥ叾鍐呴儴閮戒笌鍏朵粬鏁版嵁搴撲笉鍚岋紝鎵€浠ユ垜璁や负娣卞叆鎺㈣绱㈠紩鏄湁鎰忎箟鐨勶紝鍥犱负绱㈠紩鏄悜閲忔悳绱㈢殑鍩虹銆傚亣璁句綘宸茬粡鍏呭垎浜嗚В浠€涔堟槸鍚戦噺鏁版嵁搴擄紝閭d箞鍊煎緱鍥炶繃澶存潵鎬濊€冧竴涓嬶紝瀹冩槸濡備綍濡傛鍑鸿壊鍦版墿灞曞埌鑳藉鎼滅储鏁扮櫨涓囥€佹暟鍗佷嚎鐢氳嚦鏁颁竾浜夸釜鍚戦噺鐨勫憿锛熷悜閲忔暟鎹簱鐨勪富瑕佺洰鏍囨槸鎻愪緵涓€绉嶅揩閫熼珮鏁堢殑鏂瑰紡鏉ュ瓨鍌ㄥ拰璇箟鏌ヨ鏁版嵁锛屼互浣挎暟鎹被鍨嬫垚涓轰竴绛夊叕姘戙€備袱涓悜閲忎箣闂寸殑鐩镐技搴︽槸閫氳繃浣欏鸡璺濈鎴栫偣绉瓑璺濈搴﹂噺鏉ヨ 閲忕殑銆傚湪浣跨敤鍚戦噺鏁版嵁搴撴椂锛岄噸瑕佺殑鏄尯鍒嗘悳绱㈢畻娉曞拰杩戜技鏈€杩戦偦锛圓NN锛夋悳绱㈢畻娉曟墍鎿嶄綔鐨勫簳灞傜储寮曘€備笌澶у鏁版儏鍐典竴鏍凤紝閫夋嫨鍚戦噺绱㈠紩娑夊強鍒板噯纭€э紙绮剧‘搴?鍙洖鐜囷級鍜岄€熷害/鍚炲悙閲忎箣闂寸殑鏉冭 銆傜粡杩囨煡闃呮枃鐚紝鎴戝彂鐜板悜閲忕储寮曟柟娉曞彲浠ユ寜鐓ф暟鎹粨鏋勫拰鍘嬬缉绾у埆涓や釜灞傛杩涜缁勭粐銆傝繖浜涘垎绫诲苟涓嶆槸璇﹀敖鏃犻仐鐨勶紝璁稿鏉ユ簮瀵逛簬濡備綍姝g‘缁勭粐鍚勭绱㈠紩瀛樺湪鍒嗘锛屾墍浠ヨ繖鏄垜鏈€濂界殑灏濊瘯鏉ョ悊瑙h繖涓€鍒囥€備笅闈㈠紑濮嬪惂锛?/p>

绾у埆1锛氭暟鎹粨鏋?/strong>

鏍规嵁鐢ㄤ簬鏋勫缓绱㈠紩鐨勬暟鎹粨鏋勫绱㈠紩杩涜缁勭粐鏈夊姪浜庣悊瑙c€傛渶濂介€氳繃鍙鍖栫殑鏂瑰紡杩涜鎺㈢储銆傛牴鎹暟鎹粨鏋勫绱㈠紩杩涜缁勭粐鍙互鎻愪緵鏇寸洿瑙傜殑鐞嗚В銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第1张

鍝堝笇绱㈠紩

鍝堝笇绱㈠紩锛圚ash-based index锛夋槸涓€绉嶅熀浜庡搱甯屽嚱鏁扮殑绱㈠紩鏂规硶锛屼緥濡傚眬閮ㄦ晱鎰熷搱甯岋紙Locally Sensitive Hashing锛孡SH锛夈€傚搱甯岀储寮曞皢楂樼淮鏁版嵁杞崲涓轰綆缁村搱甯岀爜锛屾棬鍦ㄥ敖鍙兘淇濇寔鍘熷鏁版嵁鐨勭浉浼兼€с€傚湪寤虹珛绱㈠紩鏃讹紝鏁版嵁闆嗕細琚娆″搱甯岋紝浠ョ‘淇濈浉浼肩殑鏁版嵁鐐规洿鏈夊彲鑳藉彂鐢熺鎾烇紙杩欎笌浼犵粺鐨勫搱甯屾妧鏈浉鍙嶏紝浼犵粺鍝堝笇鎶€鏈殑鐩爣鏄敖閲忓噺灏戠鎾烇級銆傚湪鏌ヨ鏃讹紝鏌ヨ鐐逛篃浼氫娇鐢ㄤ笌寤虹珛绱㈠紩鏃剁浉鍚岀殑鍝堝笇鍑芥暟杩涜鍝堝笇锛岀敱浜庣浉浼肩殑鏁版嵁鐐硅鍒嗛厤鍒板悓涓€涓搱甯屾《涓紝鎵€浠ユ绱㈤潪甯稿揩閫熴€傚搱甯岀储寮曠殑涓昏浼樼偣鏄湪澶勭悊澶ч噺鏁版嵁鏃堕潪甯稿揩閫燂紝浣嗙己鐐规槸鍑嗙‘鎬ц緝浣庛€?/p>

鍩轰簬鏍戠殑绱㈠紩

鍩轰簬鏍戠殑绱㈠紩缁撴瀯锛圱ree-based index锛夐€氳繃浜屽弶鎼滅储鏍戝疄鐜板湪楂樼淮绌洪棿涓殑蹇€熸悳绱€傛爲鐨勬瀯寤烘柟寮忎娇寰楃浉浼肩殑鏁版嵁鐐规洿鏈夊彲鑳戒綅浜庡悓涓€瀛愭爲涓紝浠庤€屾洿蹇湴鍙戠幇杩戜技鏈€杩戦偦銆侫nnoy锛圓pproximate Nearest Neighbors Oh Yeah锛夋槸涓€绉嶄娇鐢ㄤ簩鍙夋悳绱㈡爲妫灄鐨勬柟娉曪紝鐢盨potify寮€鍙戙€傚熀浜庢爲鐨勭储寮曠殑缂虹偣鏄紝瀹冧滑鍙浣庣淮鏁版嵁琛ㄧ幇杈冨ソ锛屽湪楂樼淮鏁版嵁涓噯纭€ц緝浣庯紝鍥犱负瀹冧滑鏃犳硶鍏呭垎鎹曟崏鏁版嵁鐨勫鏉傛€с€?/p>

鍩轰簬鍥剧殑绱㈠紩

鍩轰簬鍥剧殑绱㈠紩锛圙raph-based index锛夋槸鍩轰簬鏁版嵁鐐瑰湪鍚戦噺绌洪棿涓舰鎴愬浘鐨勬€濇兂鏋勫缓鐨勭储寮曘€傚浘涓殑鑺傜偣琛ㄧず鏁版嵁鍊硷紝杩炴帴鑺傜偣鐨勮竟琛ㄧず鏁版嵁鐐逛箣闂寸殑鐩镐技鎬с€傚浘鐨勬瀯寤烘柟寮忎娇寰楃浉浼肩殑鏁版嵁鐐规洿鏈夊彲鑳介€氳繃杈硅繛鎺ュ湪涓€璧凤紝鑰岃繎浼兼渶杩戦偦锛圓NN锛夋悳绱㈢畻娉曡璁捐涓轰互楂樻晥鐨勬柟寮忛亶鍘嗗浘銆傚浘鐨勭储寮曚富瑕佷紭鍔垮湪浜庤兘澶熷湪楂樼淮鏁版嵁涓壘鍒拌繎浼兼渶杩戦偦锛屽苟涓斿叿鏈夎緝楂樼殑鍐呭瓨鏁堢巼锛屾彁楂樻€ц兘銆備笅闈㈡槸鍥剧殑绱㈠紩鐨勪袱涓緥瀛愶細HNSW鍜孷amana銆?灏嗗浘鐨勭储寮曚笌鏍戠殑绱㈠紩姒傚康鐩哥粨鍚堢殑鎵╁睍鏄疦GT3锛圢eighbourhood Graphs and Trees锛夈€傜敱Yahoo! Japan Corporation寮€鍙戯紝瀹冨湪绱㈠紩杩囩▼涓繘琛屼簡涓や釜鏋勫缓鎿嶄綔锛氫竴涓皢瀵嗛泦鐨刱NN鍥捐浆鎹负鍙屽悜鍥撅紝鍙︿竴涓€愭鏋勫缓鍙鑸殑灏忎笘鐣岋紙NSW锛夊浘銆備笌绾浘鐨勭储寮曚笉鍚屼箣澶勫湪浜庡畠浣跨敤浜嗙被浼兼爲鐘剁粨鏋勶紙Vantage-point锛屾垨绉颁负鈥淰P鈥濇爲锛夌殑鑼冨洿鎼滅储锛岃繖鏄湪鍥剧殑鏋勫缓杩囩▼涓殑涓€绉嶈椽濠悳绱㈢殑鍙樹綋銆傜敱浜庤繖涓や釜鏋勫缓鎿嶄綔瀵艰嚧鑺傜偣鍏锋湁杈冮珮鐨勫嚭搴︼紝涓轰簡閬垮厤缁勫悎鐖嗙偢锛屾悳绱㈣捣鐐逛娇鐢ㄨ寖鍥存悳绱娇閬嶅巻鏇村姞楂樻晥銆傝繖浣垮緱NGT鎴愪负涓€绉嶆贩鍚堢殑鍥惧拰鏍戠殑绱㈠紩銆?/p>

鍊掓帓鏂囦欢绱㈠紩

鍊掓帓鏂囦欢绱㈠紩锛圛nverted file index锛孖VF锛夊皢鍚戦噺绌洪棿鍒掑垎涓哄涓粏鍒嗙殑鍗曞厓锛岀О涓篤oronoi鍥撅紝杩欎簺鍥惧噺灏戜簡鎼滅储绌洪棿锛岀被浼间簬鑱氱被鐨勬晥鏋溿€備负浜嗘壘鍒版渶杩戦偦锛孉NN绠楁硶鍙渶瀹氫綅鏈€杩慥oronoi鍥惧崟鍏冪殑璐ㄥ績锛岀劧鍚庝粎鍦ㄨ鍗曞厓鍐呰繘琛屾悳绱€侷VF鐨勫ソ澶勫湪浜庡畠鏈夊姪浜庤璁″揩閫熺缉灏忕浉浼兼€ф劅鍏磋叮鍖哄煙鐨凙NN绠楁硶锛屼絾鍏跺師濮嬪舰寮忕殑缂虹偣鏄湪缁嗗垎鍚戦噺绌洪棿鐨勯噺鍖栨楠ゅ彲鑳藉浜庨潪甯稿ぇ閲忕殑鏁版嵁鑰岃█閫熷害杈冩參銆傚洜姝わ紝IVF閫氬父涓庨噺鍖栨柟娉曪紙濡備骇鍝侀噺鍖栵紝PQ锛夌粨鍚堜娇鐢ㄤ互鎻愰珮鎬ц兘銆?/p>

绾у埆2锛氬帇缂?/strong>

绱㈠紩鍙互缁勭粐鐨勭浜屼釜绾у埆鏄畠浠殑鍘嬬缉绾у埆锛氫竴涓€滃钩鍧︹€濇垨鏆村姏绱㈠紩鏄互鏈粡淇敼鐨勫舰寮忓瓨鍌ㄥ悜閲忕殑绱㈠紩銆傚綋鎺ユ敹鍒版煡璇㈠悜閲忔椂锛屽畠浼氫笌鏁版嵁搴撲腑鐨勬瘡涓悜閲忚繘琛岃灏界殑姣旇緝锛屽涓嬮潰绠€鍖栫殑涓夌淮绌洪棿绀轰緥鎵€绀恒€傚疄璐ㄤ笂锛屼娇鐢ㄨ繖鏍风殑绱㈠紩灏卞儚杩涜kNN鎼滅储锛岃繑鍥炵殑缁撴灉鏄笌k涓渶杩戦偦鍚戦噺瀹屽叏鍖归厤鐨勭粨鏋溿€傚彲浠ユ兂璞★紝杩斿洖缁撴灉鎵€闇€鐨勬椂闂翠細闅忕潃鏁版嵁澶у皬鐨勫鍔犺€岀嚎鎬у鍔狅紝杩欏湪搴旂敤浜庡寘鍚暟鍗佷竾涓悜閲忕殑鏁版嵁闆嗘椂鏄笉瀹為檯鐨勩€?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第2张

涓轰簡鎻愰珮鎼滅储鏁堢巼锛屼互鐗虹壊涓€瀹氱殑妫€绱㈠噯纭€т负浠d环锛屽彲浠ラ噰鐢ㄥ帇缂╃殑瑙e喅鏂规銆傝繖涓繃绋嬭绉颁负閲忓寲锛坬uantization锛夛紝鍏朵腑绱㈠紩涓殑搴曞眰鍚戦噺琚垎瑙f垚鐢辫緝灏戝瓧鑺傜粍鎴愮殑鍧楋紙閫氬父閫氳繃灏嗘诞鐐规暟杞崲涓烘暣鏁帮級浠ュ噺灏戝唴瀛樻秷鑰楀拰鎼滅储杩囩▼涓殑璁$畻鎴愭湰銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第3张

骞冲潶绱㈠紩

鍦ㄤ娇鐢ˋNN锛堥潪绌蜂妇锛夋悳绱㈡椂锛屽綋鐜版湁鐨勭储寮曪紙濡侷VF鎴朒NSW锛夌洿鎺ヨ绠楁煡璇㈠悜閲忎笌鏁版嵁搴撳悜閲忎箣闂寸殑璺濈鏃讹紝瀹冭绉颁负鈥滃钩鍧︹€濈储寮曘€傝繖涓庨噺鍖栧彉浣撴湁鎵€鍖哄埆銆傚湪杩欑鏂瑰紡涓嬩娇鐢ㄦ椂锛屽畠浠绉颁负IVF-Flat銆丠NSW-Flat绛夈€?/p>

閲忓寲绱㈠紩

閲忓寲绱㈠紩锛圦uantized indexes锛夋槸灏嗙幇鏈夌殑绱㈠紩锛堝IVF銆丠NSW銆乂amana锛変笌閲忓寲绛夊帇缂╂柟娉曠粨鍚堣捣鏉ワ紝浠ュ噺灏戝唴瀛樺崰鐢ㄥ苟鍔犲揩鎼滅储閫熷害銆傞噺鍖栭€氬父鏈変袱绉嶇被鍨嬶細鏍囬噺閲忓寲锛圫calar Quantization锛孲Q锛夊拰浜у搧閲忓寲锛圥roduct Quantization锛孭Q锛夈€係Q灏嗗悜閲忎腑鐨勬诞鐐规暟杞崲涓烘暣鏁帮紙鍦ㄥ瓧鑺傚ぇ灏忎笂瑕佸皬寰楀锛夛紝閫氳繃灏嗗悜閲忓绉板湴鍒嗘垚鑰冭檻姣忎釜缁村害鐨勬渶灏忓€煎拰鏈€澶у€肩殑鍖洪棿銆?PQ鏄竴绉嶆洿澶嶆潅鐨勬柟娉曪紝瀹冭€冭檻浜嗘瘡涓悜閲忕淮搴︿笂鐨勫€煎垎甯冿紝鍚屾椂杩涜鍘嬬缉鍜屾暟鎹檷缁淬€侾Q鐨勬€濇兂鏄皢杈冨ぇ缁村害鐨勫悜閲忕┖闂村垎瑙d负杈冨皬缁村害瀛愮┖闂寸殑绗涘崱灏旂Н锛岄€氳繃灏嗘瘡涓瓙绌洪棿閲忓寲涓鸿嚜宸辩殑鑱氱被鏉ヨ〃绀哄悜閲忥紝浣垮緱鍙互浠庡畠浠殑浠g爜锛堢О涓洪噸鏋勫€硷級鏈夋晥鍦颁及璁″畠浠箣闂寸殑璺濈銆備笌SQ涓嶅悓锛孭Q浣跨敤浜嗛潪瀵圭О鐨勫垎绠辫繃绋嬶紝澧炲姞浜嗙簿搴︼紝鍥犱负瀹冨皢姣忎釜瀛愮┖闂村唴鍚戦噺鐨勫垎甯冪撼鍏ヤ簡杩戜技璺濈浼拌鐨勪竴閮ㄥ垎銆傜劧鑰岋紝杩欎篃瀛樺湪涓€涓潈琛★紝鍗冲畠浼氭樉钁楅檷浣庡彫鍥炵巼銆?/p>

娴佽鐨勭储寮?/p>

鍦ㄥ垪鍑虹殑鎵€鏈夌储寮曟柟娉曚腑锛屽ぇ澶氭暟涓撻棬鏋勫缓鐨勫悜閲忔暟鎹簱鍙疄鐜板叾涓殑涓€灏忛儴鍒嗐€傝繖鏄竴涓潪甯稿揩閫熷彂灞曠殑棰嗗煙锛屽洜姝ゅ湪闃呰鏈枃鏃讹紝寰堝淇℃伅鍙兘宸茬粡杩囨椂銆傚己鐑堝缓璁偍鏌ラ槄鎮ㄦ劅鍏磋叮鐨勬暟鎹簱鐨勬渶鏂版枃妗o紝浜嗚В瀹冧滑鏀寔鍝簺绱㈠紩銆傚湪鏈妭涓紝鎴戝皢閲嶇偣浠嬬粛涓€浜涘彈澶氫釜渚涘簲鍟嗗叧娉ㄧ殑鐑棬鍜屽嵆灏嗘帹鍑虹殑绱㈠紩銆?/p>

IVF-PQ

VF-PQ锛堝悜閲忓€掓帓鏂囦欢绱㈠紩涓庝骇鍝侀噺鍖栵級鏄湪Milvus鍜孡anceDB绛夋暟鎹簱涓彁渚涚殑澶嶅悎绱㈠紩銆傜储寮曠殑IVF閮ㄥ垎鐢ㄤ簬缂╁皬鎼滅储绌洪棿锛岃€孭Q閮ㄥ垎鐢ㄤ簬鍔犻€熸煡璇㈠悜閲忎笌鏁版嵁搴撳悜閲忎箣闂寸殑璺濈璁$畻锛屽苟閫氳繃閲忓寲鍚戦噺鏉ュ噺灏戝唴瀛橀渶姹傘€傚皢涓よ€呯粨鍚堢殑濂藉鍦ㄤ簬锛岀敱浜嶱Q缁勪欢鐨勫瓨鍦紝閫熷害寰楀埌浜嗗ぇ骞呮彁鍗囷紝骞朵笖IVF缁勪欢鏈夊姪浜庢彁楂橈紙閫氬父鐢变簬PQ缁勪欢鑰屽彈鍒版崯瀹崇殑锛夊彫鍥炵巼銆?PQ缁勪欢鍙互鏍规嵁涓嬮潰鐨勫浘琛ㄨ繘琛屽垎瑙c€傝〃绀烘暟鎹偣鐨勬瘡涓悜閲忕敱鍥哄畾鏁伴噺鐨勭淮搴缁勬垚锛堝彇鍐充簬涓婃父浣跨敤鐨勫祵鍏ユā鍨嬶紝閫氬父涓烘暟鐧炬垨鏁板崈锛夈€傜敱浜庡湪澶у瀷鏁版嵁闆嗕笂瀛樺偍杩欎箞澶?2浣嶆垨64浣嶆诞鐐规暟鍙兘闈炲父鏄傝吹锛屼骇鍝侀噺鍖栭€氳繃涓や釜闃舵鏉ヨВ鍐宠繖涓棶棰橈細绗竴闃舵鏄矖閲忓寲闃舵锛屽皢鍚戦噺鍒嗘垚m涓瓙鍚戦噺锛屾瘡涓瓙鍚戦噺鐨勭淮搴︿负d/m锛屽苟涓烘瘡涓瓙鍚戦噺鍒嗛厤涓€涓噺鍖栧€硷紙绉颁负鈥滈噸鏋勫€尖€濓級锛屽皢鍘熷鍚戦噺鏄犲皠鍒拌瀛愮┖闂翠腑鐐圭殑璐ㄥ績銆?绗簩闃舵绫讳技浜巏-means鑱氱被锛岄€氳繃鏈€灏忓寲鍘熷鍚戦噺涓庨噺鍖栧悜閲忚川蹇冧箣闂寸殑璺濈鏉ュ涔犱竴缁勨€滅爜鏈€濆€笺€傞€氳繃灏嗗ぇ鍨嬮珮缁村悜閲忔槧灏勪负杈冨皬鐨勪綆缁村瓙鍚戦噺锛屽彧闇€瀛樺偍閲忓寲鍊肩殑鐮佹湰锛屼粠鑰屼娇鍐呭瓨鍗犵敤閲忓ぇ澶у噺灏忋€?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第4张

鐒跺悗锛孖VF琚簲鐢ㄤ簬PQ鍚戦噺绌洪棿 - 瀵逛簬绌洪棿涓殑姣忎釜鐐癸紝閮芥湁涓€涓浉搴旂殑鍖哄煙锛岀О涓篤oronoi鍗曞厓锛屽叾涓寘鍚墍鏈夎窛绂绘簮鐐癸紙绉嶅瓙鐐癸級姣斾换浣曞叾浠栫偣鏇磋繎鐨勭┖闂翠腑鐨勭偣銆傝繖浜涚瀛愮偣鐢ㄤ簬鍒涘缓涓€涓€掓帓绱㈠紩锛屽皢姣忎釜璐ㄥ績涓庣┖闂翠腑鐨勫悜閲忓垪琛ㄧ浉鍏宠仈銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第5张

鏍规嵁鏌ヨ鍚戦噺鎵€鍦ㄧ殑浣嶇疆锛屽畠鍙兘闈犺繎澶氫釜Voronoi鍗曞厓鐨勮竟鐣岋紝浣垮緱浠庡摢浜涘崟鍏冭繑鍥炴渶杩戦偦鍙樺緱妯$硦涓嶆竻锛屽鑷磋竟缂橀棶棰樸€傚洜姝わ紝IVF-PQ绱㈠紩娑夊強璁剧疆涓€涓澶栫殑鍙傛暟n_probes锛屽憡璇夋悳绱㈢畻娉曞悜澶栨墿灞曞埌鍙傛暟鎸囧畾鐨勫崟鍏冩暟銆?涓轰簡鏈夋晥鍦版瀯寤篒VF-PQ绱㈠紩锛岄渶瑕佸仛鍑轰袱涓€夋嫨锛歅Q姝ラ鐨勫瓙鍚戦噺鏁伴噺鍜孖VF姝ラ鐨勫垎鍖烘暟閲忋€傚瓙鍚戦噺鏁伴噺瓒婂ぇ锛屾瘡涓瓙绌洪棿瓒婂皬锛屽噺灏戜簡鐢变簬鍘嬬缉鑰屽鑷寸殑淇℃伅鎹熷け銆傜劧鑰岋紝杈冨ぇ鐨勫瓙鍚戦噺鏁伴噺涔熶細瀵艰嚧姣忎釜PQ姝ラ涓殑鏇村I/O鍜岃绠楅噺锛屽洜姝ゅ繀椤诲皢姝ゆ暟閲忔渶灏忓寲锛屼互淇濇寔璁$畻鎴愭湰浣庡粔銆傜被浼煎湴锛孖VF姝ラ涓殑鍒嗗尯鏁伴噺蹇呴』閫夋嫨浠ュ湪鍙洖鐜囧拰鎼滅储閫熷害涔嬮棿鍙栧緱骞宠 銆傚綋鍒嗗尯鏁伴噺绛変簬鏁版嵁闆嗕腑鐨勫悜閲忔暟閲忔椂锛屾瀬闄愭儏鍐典笅鏄毚鍔涙悳绱紝杩欐槸鏈€鍑嗙‘鐨勶紙鍙洖鐜囦负1锛夛紝浣嗗疄璐ㄤ笂灏嗗叾鍙樻垚浜咺VF-Flat绱㈠紩銆備簨瀹炰笂锛孡anceDB鐨処VF-PQ绱㈠紩鏂囨。涓‘鍒囨弿杩颁簡鍦ㄥ垱寤虹储寮曟椂鐨勮繖浜涙潈琛★紝鍥犳鍊煎緱娣卞叆浜嗚В杩欎簺姒傚康锛屼互浜嗚В濡備綍鍦ㄥ疄闄呭満鏅腑搴旂敤瀹冧滑銆?/p>

HNSW

鍒嗗眰鍙鑸皬涓栫晫锛圚NSW锛夊浘鏄瀯寤哄悜閲忕储寮曚腑鏈€鍙楁杩庣殑绠楁硶涔嬩竴 - 鍦ㄦ挵鍐欐湰鏂囨椂锛屽嚑涔庢瘡涓暟鎹簱渚涘簲鍟嗛兘灏嗗叾浣滀负棣栭€夐€夐」銆傚畠涔熸槸鏈€鐩磋鐨勭畻娉曚箣涓€锛屽己鐑堝缓璁槄璇讳粙缁嶅畠鐨勫師濮嬭鏂囥€?鍦ㄩ珮灞傛涓婏紝HNSW鍩轰簬灏忎笘鐣屽浘鐜拌薄鏋勫缓锛岃鐜拌薄琛ㄦ槑灏界鍥句腑鐨勫ぇ澶氭暟鑺傜偣涓嶆槸褰兼鐨勯偦灞咃紝浣嗙粰瀹氳妭鐐圭殑閭诲眳寰堝彲鑳芥槸褰兼鐨勯偦灞咃紝鏃犺鍥剧殑澶у皬濡備綍銆傚熀鏈笂锛屽浘涓殑浠讳綍鑺傜偣閮藉彲浠ラ€氳繃鐩稿杈冨皯鐨勬楠や粠鍏朵粬鑺傜偣鍒拌揪銆傚湪涓嬮潰鐨勭ず渚嬩腑锛屽疄蹇冨~鍏呯殑钃濊壊鍜岀孩鑹茶妭鐐瑰彲浠ュ湪浠呯粡杩?涓烦璺冪殑鎯呭喌涓嬬浉浜掑埌杈撅紝灏界瀹冧滑鍦ㄥ浘涓彲鑳借璁や负鏄浉璺濊緝杩滅殑銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第6张

鎮ㄧ殑鏁版嵁鎵€鍦ㄧ殑鍚戦噺绌洪棿涔熷彲浠ヨ瑙嗕负涓€涓彲瀵艰埅鐨勫皬涓栫晫锛圢SW锛夊浘锛屽叾涓妭鐐硅〃绀烘暟鎹偣锛岃竟琛ㄧず鐩镐技鎬э紝鍗虫弿杩颁袱涓妭鐐瑰湪鍚戦噺绌洪棿涓殑鎺ヨ繎绋嬪害鐨勬暟鍊笺€侼SW閫氳繃鏋勫缓涓€涓棤鍚戝浘鏉ョ‘淇濆叏灞€杩為€氭€э紝鍗崇粰瀹氫换鎰忓叆鍙g偣锛屽彲浠ュ埌杈惧浘涓殑浠讳綍鑺傜偣銆傞鍏堝舰鎴愯繙璺濈鐨勮竟锛堣繛鎺ヨ繙绂荤殑鑺傜偣锛岄渶瑕佸娆¢亶鍘嗭級锛岀劧鍚庡舰鎴愮煭璺濈鐨勮竟锛堣繛鎺ラ檮杩戠殑鑺傜偣锛夈€傞暱杈规彁楂樹簡鎼滅储鏁堢巼锛岃€岀煭杈规彁楂樹簡鎼滅储鍑嗙‘鎬с€傚彲浠ラ€氳繃閬嶅巻杩欎釜鍥炬潵鎵惧埌缁欏畾鏌ヨ鍚戦噺鐨勬渶杩戣妭鐐广€?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第7张

NSW鍥剧殑涓€涓棶棰樻槸瀹冩槸骞冲潶鐨?- 鏌愪簺鑺傜偣鍙兘浼氬垱寤哄瘑闆嗙殑鈥滀氦閫氭灑绾解€濓紝闄嶄綆閬嶅巻鐨勬晥鐜囷紝骞跺鑷存柟娉曠殑鎼滅储澶嶆潅搴︿负澶氬鏁扮骇鍒€侶NSW閫氳繃鍒嗗眰鍥剧粨鏋勬潵瑙e喅杩欎釜闂锛屽苟淇浜嗘瘡涓妭鐐归偦灞呮暟閲忕殑涓婇檺锛屽皢鎼滅储澶嶆潅搴﹂檷浣庡埌瀵规暟绾у埆銆傚熀鏈€濇兂鏄牴鎹妭鐐逛箣闂寸殑璺濈灏哄害灏嗘渶杩戦偦鍒嗗眰鍦ㄥ浘涓€傚浘涓殑闀胯竟淇濈暀鍦ㄩ《灞傦紙鍗虫渶绋€鐤忕殑灞傦級锛屾瘡涓緝浣庣殑灞傚寘鍚殑杈规瘮涓婇潰鐨勫眰鏇寸煭銆傛渶浣庡眰褰㈡垚瀹屽叏鍥撅紝骞朵笖鎼滅储鏄粠涓婂埌涓嬭繘琛岀殑銆傚鏋滄墍鏈夊眰閮解€滄姌鍙犫€濆埌褰兼涓紝HNSW鍥炬湰璐ㄤ笂灏辨槸涓€涓狽SW鍥俱€?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第8张

涓婇潰鐨勫浘绀哄睍绀轰簡濡備綍鍦ㄩ《灞傜粰瀹氫换鎰忓叆鍙g偣鐨勬儏鍐典笅锛屽彲浠ュ揩閫熼亶鍘嗘暣涓浘锛岄€愬眰闄嶄綆锛岀洿鍒版壘鍒颁笌鏌ヨ鍚戦噺鏈€杩戠殑閭诲眳銆侶NSW鐩稿浜嶪VF鐨勬渶澶т紭鍔垮湪浜庡畠鑳藉鍦ㄥ鏉傜殑楂樼淮鍚戦噺绌洪棿涓互楂樺彫鍥炵巼鎵惧埌杩戜技鏈€杩戦偦銆備簨瀹炰笂锛屽湪鍏跺彂甯冩椂锛堝ぇ绾?019骞达級锛屽畠鍦ㄥ熀鍑嗘暟鎹泦涓婁骇鐢熶簡鏈€鍏堣繘鐨勭粨鏋滐紝鐗瑰埆鏄湪鎻愰珮鍙洖鐜囩殑鍚屾椂閫熷害涔熷緢蹇紝杩欒В閲婁簡瀹冪殑宸ㄥぇ娴佽銆傜劧鑰岋紝瀹冨湪鍐呭瓨鏁堢巼鏂归潰涓嶅IVF锛岄櫎闈炲湪鎼滅储鏃朵笌PQ绛夋柟娉曠粨鍚堜娇鐢ㄦ潵鍘嬬缉鍚戦噺銆傚嚭浜庤繖浜涘師鍥狅紝鍍廞drant鍜學eaviate杩欐牱鐨勬暟鎹簱閫氬父瀹炵幇浜嗘秹鍙婇噺鍖栫殑澶嶅悎绱㈠紩锛屼緥濡侶NSW-PQ10锛屽悓鏃惰繕鎻愪緵浜嗚皟鏁村彫鍥炵巼鍜屾煡璇㈠欢杩熶箣闂存潈琛$殑璋冭妭鍙傛暟銆?/p>

Vamana

Vamana鏄渶杩戝紑鍙戠殑鍩轰簬鍥剧殑绱㈠紩绠楁硶涔嬩竴锛岀敱Subramanya绛変汉涓庡井杞爺绌堕櫌鍗板害鍚堜綔锛屽湪2019骞寸殑NeurIPS浼氳涓婇娆℃彁鍑恒€俈amana鐨勬樉钁楃壒鐐瑰寘鎷細

  • 瀹冧粠澶村紑濮嬭璁★紝鏃㈠彲浠ュ湪鍐呭瓨涓伐浣滐紙澶у鏁扮储寮曢兘鏄负姝よ璁$殑锛夛紝涔熷彲浠ュ湪纾佺洏涓婂伐浣溿€傚井杞彁鍑虹殑纾佺洏瀹炵幇琚О涓篋iskANN銆傚浜庡悜閲忔暟鎹簱渚涘簲鍟嗘潵璇达紝纾佺洏绱㈠紩浼间箮鏄竴涓法澶х殑瀹炵幇鎸戞垬锛屾墍浠ヨ繖鏄疺amana涓庡叾浠栫畻娉曠殑鍖哄埆涔嬩竴銆?/p>

  • 瀹冨厑璁稿鏃犳硶鏀惧叆鍐呭瓨鐨勬暟鎹泦杩涜绱㈠紩锛岄€氳繃鏋勫缓閲嶅彔鍒嗗尯鐨勮緝灏忕储寮曪紝鍙互杞绘澗鍚堝苟涓轰竴涓崟涓€绱㈠紩锛屽叾鏌ヨ鎬ц兘涓庝负鏁翠釜鏁版嵁闆嗘瀯寤虹殑鍗曚竴绱㈠紩鐩稿綋銆?/p>

  • 瀹冭繕鍙互涓嶱Q绛夌幇鎴愮殑鍚戦噺鍘嬬缉鏂规硶缁撳悎浣跨敤锛屾瀯寤轰竴涓猇amana-PQ绱㈠紩锛岀敤浜庢敮鎸丏iskANN绯荤粺 - 鏁版嵁闆嗙殑瀹屾暣绮惧害鍚戦噺瀛樺偍鍦ㄧ鐩樹笂锛岃€屽帇缂╁悜閲忓垯缂撳瓨鍦ㄥ唴瀛樹腑锛屽疄鐜颁簡涓よ€呯殑鏈€浣崇粨鍚堛€?/p>

Vamana閫氳繃杩唬鏋勫缓涓€涓湁鍚戝浘锛岄鍏堜粠涓€涓殢鏈哄浘寮€濮嬶紝鍏朵腑姣忎釜鑺傜偣琛ㄧず鍚戦噺绌洪棿涓殑涓€涓暟鎹偣銆傚湪寮€濮嬫椂锛屽浘鏄珮搴﹁繛鎺ョ殑锛屽嵆鍑犱箮鎵€鏈夎妭鐐归兘鐩镐簰杩炴帴銆傜劧鍚庯紝浣跨敤涓€涓洰鏍囧嚱鏁板鍥捐繘琛屼紭鍖栵紝璇ュ嚱鏁版棬鍦ㄦ渶澶у寲褰兼鏈€鎺ヨ繎鐨勮妭鐐逛箣闂寸殑杩炴帴鎬с€傝繖鏄€氳繃淇壀澶ч儴鍒嗛殢鏈虹殑鐭▼杈圭紭锛屽苟娣诲姞杩炴帴鐩歌窛杈冭繙鐨勮妭鐐圭殑鏌愪簺闀跨▼杈圭紭锛堜互鍔犲揩鍥句腑鐨勯亶鍘嗭級鏉ュ疄鐜扮殑銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第9张

鍦ㄦ煡璇㈡椂锛岄€夋嫨鍏ㄥ眬璐ㄥ績浣滀负鍏ュ彛鐐广€傞€氳繃闀跨▼杈瑰揩閫熷悜鍙虫柟鍚戣繘琛屾悳绱紝杩欎娇寰楃畻娉曡兘澶熷揩閫熻烦杞埌鍥剧殑绔偣锛屽苟鐩稿蹇€熷湴缂╁皬鍒版煡璇㈠悜閲忕殑鏈€杩戦偦銆傚湪涓嬮潰鐨勭ず渚嬩腑锛屽彧闇€瑕佷笁娆¤烦璺冨氨鍙互浠庡叆鍙g偣锛堝叏灞€璐ㄥ績锛夐亶鍘嗗埌鍥剧殑澶栬竟缂橈紝鐒跺悗鍒拌揪鏈€杩戦偦銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第10张

姝e鎮ㄥ彲鑳藉凡缁忔敞鎰忓埌鐨勯偅鏍凤紝Vamana鎻愪緵鐨勬槸涓€绉嶆洿澶氱殑鈥滃唴閮?澶栭儴鈥濇悳绱㈡柟娉曪紝鑰屼笉鏄疕NSW鐨勨€滃閮?鍐呴儴鈥濇悳绱㈡柟娉曪紝鍏朵腑鎼滅储浠庨《灞傜殑涓€涓殢鏈鸿妭鐐癸紙鍙兘寰堣繙锛夊紑濮嬶紝骞跺悜鍐呴儴杩涜銆?鐩墠锛堟埅鑷?023骞达級锛屾病鏈夊灏戞暟鎹簱瀹炵幇浜哣amana绱㈠紩锛岃繖鍙兘鏄敱浜庡湪纾佺洏涓婂疄鐜扮殑鎶€鏈寫鎴樹互鍙婂寤惰繜鍜屾悳绱㈤€熷害鐨勫奖鍝嶃€侻ilvus11鐩墠鏄敮涓€鍏锋湁鍙敤鐨勭鐩樹笂Vamana绱㈠紩鐨勪緵搴斿晢锛岃€學eaviate12鍜孡anceDB13鐩墠鍙湁瀹為獙鎬х殑瀹炵幇銆傜劧鑰岋紝杩欐槸涓€涓揩閫熷彂灞曠殑棰嗗煙锛屽洜姝ゅ己鐑堝缓璁偍鍏虫敞鍏抽敭鐨勫悜閲忔暟鎹簱渚涘簲鍟嗭紝浠ヤ簡瑙f渶鏂扮殑鍙戝睍鎯呭喌锛?/p>

娴佽鐨勭煝閲忔暟鎹簱涓彲鐢ㄧ殑绱㈠紩

姝e鏈郴鍒楃殑绗竴閮ㄥ垎鎵€绀猴紝澶у鏁版暟鎹簱灏咹NSW绱㈠紩浣滀负榛樿閫夐」瀹炵幇銆?/p>

向量数据库(第 3 部分):并非所有索引都是一样的,第11张

鍍廙ilvus銆乄eaviate銆丵drant鍜孡anceDB杩欐牱鐨勬暟鎹簱鎻愪緵浜嗙畝鍗曠殑璋冩暣鍙傛暟锛岀敤浜庢帶鍒跺叾Product Quantization缁勪欢涓殑鍘嬬缉/閲忓寲绾у埆銆備簡瑙h繖浜涚储寮曞浣曞伐浣滅殑鍩烘湰鍘熺悊闈炲父閲嶈锛岃繖鏍锋偍灏卞彲浠ヤ负鎮ㄧ殑鐢ㄤ緥閫夋嫨姝g‘鐨勬暟鎹簱鍜岀储寮曞弬鏁般€?/p>

缁撹

涓撻棬鏋勫缓鐨勫悜閲忔暟鎹簱鐨勫埗閫犲晢鑺辫垂浜嗘暟鍗冨皬鏃舵潵瀵瑰叾绱㈠紩鍜屽瓨鍌ㄥ眰杩涜寰皟鍜屼紭鍖栵紝鍥犳锛屽鏋滄偍鎷ユ湁澶у瀷鏁版嵁闆嗗苟涓旈渶瑕佸湪鍚戦噺鎼滅储鏌ヨ涓婂疄鐜?lt;100姣鐨勫欢杩燂紝閭d箞鍊熷姪鍍廤eaviate銆丵drant鍜孧ilvus杩欐牱鐨勬垚鐔熴€佸彲鎵╁睍鐨勫紑婧愭暟鎹簱浼间箮鏄竴涓槑鏅虹殑閫夋嫨锛屾棤璁烘槸浠庡紑鍙戣€呯殑瑙掑害杩樻槸浠庝笟鍔$殑瑙掑害鏉ョ湅銆?/p>

  • Flat绱㈠紩鏄互鍘熷褰㈠紡瀛樺偍鍚戦噺鐨勭储寮曪紝鐢ㄤ簬绮剧‘鐨刱鏈€杩戦偦鎼滅储銆傚畠鏄渶鍑嗙‘鐨勶紝浣嗕篃鏄渶鎱㈢殑銆?/p>

  • IVF-Flat绱㈠紩浣跨敤鍊掓帓鏂囦欢绱㈠紩鏉ュ揩閫熺缉灏忔悳绱㈢┖闂达紝姣旀毚鍔涙悳绱㈣蹇緱澶氾紝浣嗕細鍦ㄥ彫鍥炵巼鏂归潰鐗虹壊涓€浜涘噯纭€с€?/p>

  • IVF-PQ浣跨敤IVF涓嶱roduct Quantization缁撳悎锛屽鍚戦噺杩涜鍘嬬缉锛屽噺灏戝唴瀛樺崰鐢ㄥ苟鍔犲揩鎼滅储閫熷害锛屽悓鏃跺湪鍙洖鐜囨柟闈㈡瘮绾储寮曟洿濂姐€?/p>

  • HNSW鏄洰鍓嶆渶娴佽鐨勭储寮曠被鍨嬶紝閫氬父涓嶱roduct Quantization缁撳悎浣跨敤锛屼互鎻愰珮鎼滅储閫熷害鍜屽唴瀛樻晥鐜囥€?/p>

  • Vamana鏄竴涓浉瀵硅緝鏂扮殑绱㈠紩锛屼笓涓虹鐩樻€ц兘璁捐鍜屼紭鍖?瀹冩壙璇哄湪瀛樺偍澶т簬鍐呭瓨鐨勫悜閲忔暟鎹椂鑳藉琛ㄧ幇鍑轰笌HNSW鐩稿綋鐨勬€ц兘鍜岄€熷害銆傜劧鑰岋紝鐩墠杩樻病鏈夊緢澶氭暟鎹簱瀹炵幇Vamana绱㈠紩锛岃繖鏄敱浜庣鐩樻€ц兘鏂归潰鐨勬寫鎴樸€?/p>

鍦ㄦ垜鐪嬫潵锛孡anceDB鏄湭鏉ュ嚑涓湀涓渶浠や汉鍏村鐨勬暟鎹簱涔嬩竴銆傝繖鏄洜涓哄畠鏄競鍦轰笂鍞竴涓€涓墍鏈夊悜閲忕储寮曢兘鍩轰簬纾佺洏鐨勫悜閲忔暟鎹簱銆傝繖鏄洜涓轰粬浠湪澶氫釜鏂归潰鍚屾椂杩涜鍒涙柊锛?/p>

  • LanceDB姝e湪鏋勫缓涓€绉嶆柊鐨勯珮鏁堝垪寮忔暟鎹牸寮廘ance锛屾棬鍦ㄦ垚涓簆arquet鐨勭幇浠g户浠昏€咃紝骞堕拡瀵瑰悜閲忔悳绱㈣繘琛屼簡浼樺寲銆?/p>

  • 姝f槸鐢变簬杩欑楂樻晥鐨勫瓨鍌ㄥ眰锛孡anceDB鑳藉鍦ㄥ熀浜庣鐩樼殑绱㈠紩鏂归潰鍏呮弧淇″績锛屼笌鍏朵粬渚涘簲鍟嗕笉鍚屻€?/p>

  • LanceDB閲囩敤浜嗗祵鍏ュ紡锛堟棤鏈嶅姟鍣級鐨勪笓鐢ㄦ灦鏋勶紝浠庡ご寮€濮嬫瀯寤恒€傞浂鎷疯礉鏁版嵁璁块棶鏄鍩轰簬纾佺洏鐨勭储寮曠殑宸ㄥぇ鎬ц兘鎻愬崌銆?/p>

  • 鏁版嵁鐨勮嚜鍔ㄧ増鏈帶鍒讹紝鏃犻渶棰濆鐨勫熀纭€璁炬柦銆?/p>

  • 涓嶢WS S3鍜孉zure Blob Storage绛変簯瀛樺偍鎻愪緵鍟嗙洿鎺ラ泦鎴愶紝闈炲父瀹规槗涓庣幇鏈夌殑鏁版嵁娴佹按绾块泦鎴愩€?/p>

鏃犺鎮ㄩ€夋嫨鍝釜鏁版嵁搴撴潵婊¤冻鎮ㄧ殑鐢ㄤ緥锛屾垜浠兘鍙互涓€鑷磋涓猴紝鐜板湪鏄竴涓潪甯稿ソ鐨勬椂浠o紝鍙互灏濊瘯鍜屽疄楠岃繖浜涘伐鍏枫€傛垜鐭ラ亾杩欑瘒鏂囩珷涓湁寰堝淇℃伅锛屼絾涓嬮潰鐨勫弬鑰冭祫鏂欑‘瀹炲府鍔╂垜鐞嗚В浜嗗悜閲忔暟鎹簱鐨勫唴閮ㄥ伐浣滃師鐞嗕互鍙婂畠浠槸濡備綍浠庨浂寮€濮嬫瀯寤虹殑銆傚笇鏈涙偍瑙夊緱杩欑瘒鏂囩珷鏈夎叮锛岃鎴戜滑缁х画瀛︿範鍚э紒馃殌

浣滆€咃細Prashanth Rao

鏇村鎶€鏈共璐у敖鍦╳x鈥滀簯鍘熺敓鏁版嵁搴撯€?/p>


https://www.xamrdz.com/database/6xx1994164.html

相关文章: