Englishํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

Windows์šฉ ํŒŒ์ด์Šค ๋‹ค์šด๋กœ๋“œ

Faiss Windows ์•ฑ์„ ๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ Ubuntu ์˜จ๋ผ์ธ, Fedora ์˜จ๋ผ์ธ ๋˜๋Š” Debian ์˜จ๋ผ์ธ์—์„œ Win Wine์„ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜์„ธ์š”.

์ด๊ฒƒ์€ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ v1.7.3.zip์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” Faiss๋ผ๋Š” Windows ์•ฑ์ž…๋‹ˆ๋‹ค. ์›Œํฌ์Šคํ…Œ์ด์…˜์šฉ ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์ธ OnWorks์—์„œ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Faiss with OnWorks๋ผ๋Š” ์•ฑ์„ ๋ฌด๋ฃŒ๋กœ ์˜จ๋ผ์ธ์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.

์ด ์•ฑ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”.

- 1. ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ PC์— ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

- 2. ํŒŒ์ผ ๊ด€๋ฆฌ์ž https://www.onworks.net/myfiles.php?username=XXXXX์— ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

- 3. ์ด๋Ÿฌํ•œ ํŒŒ์ผ ๊ด€๋ฆฌ์ž์—์„œ ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

- 4. ์ด ์›น์‚ฌ์ดํŠธ์—์„œ ๋ชจ๋“  OS OnWorks ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๋” ๋‚˜์€ Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

- 5. ๋ฐฉ๊ธˆ ์‹œ์ž‘ํ•œ OnWorks Windows OS์—์„œ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ ๊ด€๋ฆฌ์ž https://www.onworks.net/myfiles.php?username=XXXXX๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

- 6. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

- 7. Linux ๋ฐฐํฌ ์†Œํ”„ํŠธ์›จ์–ด ์ €์žฅ์†Œ์—์„œ Wine์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•ฑ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜์—ฌ Wine๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ธฐ ์žˆ๋Š” Windows ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๊ฒŒ์ž„์„ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” Wine์„ ํ†ตํ•œ ๋ฉ‹์ง„ ์ธํ„ฐํŽ˜์ด์Šค์ธ PlayOnLinux๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Wine์€ Linux์—์„œ Windows ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ Windows๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Wine์€ ๋ชจ๋“  Linux ๋ฐ์Šคํฌํƒ‘์—์„œ ์ง์ ‘ Windows ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค Windows ํ˜ธํ™˜์„ฑ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ Wine์€ Windows๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  Windows ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก Windows๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ถฉ๋ถ„ํžˆ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ƒท

Ad


ํŒŒ์ด์Šค


๊ธฐ์ˆ 

Faiss๋Š” ํšจ์œจ์ ์ธ ์œ ์‚ฌ์„ฑ ๊ฒ€์ƒ‰ ๋ฐ ๋ฐ€์ง‘ ๋ฒกํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” RAM์— ๋งž์ง€ ์•Š๋Š” ๋ฒกํ„ฐ๊นŒ์ง€ ๋ชจ๋“  ํฌ๊ธฐ์˜ ๋ฒกํ„ฐ ์ง‘ํ•ฉ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ‰๊ฐ€ ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์กฐ์ •์„ ์œ„ํ•œ ์ง€์› ์ฝ”๋“œ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Faiss๋Š” Python/numpy์— ๋Œ€ํ•œ ์™„์ „ํ•œ ๋ž˜ํผ์™€ ํ•จ๊ป˜ C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์œ ์šฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ์ผ๋ถ€๋Š” GPU์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์Šค๋ถ AI ๋ฆฌ์„œ์น˜(Facebook AI Research)๊ฐ€ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Faiss์—๋Š” ์œ ์‚ฌ์„ฑ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„๋˜๊ณ  ์ •์ˆ˜๋กœ ์‹๋ณ„๋˜๋ฉฐ ๋ฒกํ„ฐ๋Š” L2(์œ ํด๋ฆฌ๋“œ) ๊ฑฐ๋ฆฌ ๋˜๋Š” ๋‚ด์ ๊ณผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ๋ฒกํ„ฐ์™€ ์œ ์‚ฌํ•œ ๋ฒกํ„ฐ๋Š” L2 ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๊ฑฐ๋‚˜ ์ฟผ๋ฆฌ ๋ฒกํ„ฐ์™€์˜ ๋‚ด์ ์ด ๊ฐ€์žฅ ๋†’์€ ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ •๊ทœํ™”๋œ ๋ฒกํ„ฐ์˜ ๋‚ด์ ์ด๋ฏ€๋กœ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.



๊ธฐ๋Šฅ

  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„ C++๋กœ ๊ตฌํ˜„๋˜๋ฉฐ CUDA๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ์„ ํƒ์  GPU ์ง€์›๊ณผ ์„ ํƒ์  Python ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • Faiss๋Š” ๊ณ ์ • ์ฐจ์› d(์ผ๋ฐ˜์ ์œผ๋กœ ๋ช‡ 10~100์ดˆ)์˜ ๋ฒกํ„ฐ ์ปฌ๋ ‰์…˜์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • CPU ๋ฒ„์ „์—๋Š” BLAS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Makefile๋กœ ์ปดํŒŒ์ผ๋˜๋ฉฐ docker ์ด๋ฏธ์ง€๋กœ ํŒจํ‚ค์ง•๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Faiss๋Š” ๋ฒกํ„ฐ ์„ธํŠธ๋ฅผ ์ €์žฅํ•˜๋Š” ์ธ๋ฑ์Šค ์œ ํ˜•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ L2 ๋ฐ/๋˜๋Š” ๋‚ด์  ๋ฒกํ„ฐ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์„ ํƒ์  GPU ๊ตฌํ˜„์€ ๊ณ ์ฐจ์› ๋ฒกํ„ฐ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ด์›ƒ ๊ฒ€์ƒ‰ ๊ตฌํ˜„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Faiss๋Š” Index ๊ฐœ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒกํ„ฐ ์„ธํŠธ๋ฅผ ์บก์Šํ™”ํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ๊ฒ€์ƒ‰์„ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

C + +


์นดํ…Œ๊ณ ๋ฆฌ

ํด๋Ÿฌ์Šคํ„ฐ๋ง, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ด๋Š” https://sourceforge.net/projects/faiss.mirror/์—์„œ๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ์šด์˜ ์‹œ์Šคํ…œ ์ค‘ ํ•˜๋‚˜์—์„œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด OnWorks์—์„œ ํ˜ธ์ŠคํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

Linux ๋ช…๋ น

Ad