Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NGT-ONNGによる近似最近傍探索
Search
po3rin
May 31, 2021
Programming
0
100
NGT-ONNGによる近似最近傍探索
po3rin
May 31, 2021
Tweet
Share
More Decks by po3rin
See All by po3rin
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
200
麻雀点数計算問題生成タスクから学ぶ Single Agentの限界と Agentic Workflowの底力
po3rin
5
2k
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
1.1k
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
4
2.4k
M3におけるCI/CDパイプラインを新鮮に保つ仕組み
po3rin
0
380
Go Templateを使った フロントエンド開発を採用した 経緯と所感
po3rin
1
360
検索基盤移行時の思考
po3rin
0
4.3k
Go1.19で採用された Pattern-defeating Quicksort の紹介
po3rin
7
6.2k
Elasticsearchを負荷から守るesguard
po3rin
0
310
Other Decks in Programming
See All in Programming
パフォーマンスチューニングで Web 技術を深掘り直す
progfay
18
4.7k
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
570
CSC305 Lecture 02
javiergs
PRO
1
260
NetworkXとGNNで学ぶグラフデータ分析入門〜複雑な関係性を解き明かすPythonの力〜
mhrtech
3
760
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
120
Model Pollution
hschwentner
1
180
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.3k
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
2
1.1k
CSC509 Lecture 02
javiergs
PRO
0
400
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
380
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
7
2.2k
iOSDC.pdf
chronos2500
2
630
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Statistics for Hackers
jakevdp
799
220k
Agile that works and the tools we love
rasmusluckow
330
21k
Being A Developer After 40
akosma
90
590k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Transcript
M3 ใݕࡧจಡΈձ #2 hiromu-nakamura @po3rin 3FBEJOHQBQFSl0QUJNJ[BUJPOPG*OEFYJOH#BTFEPOL /FBSFTU/FJHICPS(SBQIGPS1SPYJNJUZ4FBSDIJO)JHI EJNFOTJPOBM%BUBz /(50//(ʹΑΔۙࣅ࠷ۙ୳ࡧ
தଜ߂ ΤϜεϦʔͷ"*ɾػցֶशνʔϜͰݕࡧج൫पΓ Λ୲͍ͯ͠Δɻ(P͕͖ɻ ֤छΞΧϯτQPSJOͰͬͯ·͢ɻ )*SPNV/BLBNVSB
$POUFOUT *OUSPEVDUJPOdϕϯνϚʔΫ͔ΒݟΔ"//ͷݱঢ়d /(50//(3FMBUFE8PSL /(50//( ͓·͚
*OUSPEVDUJPO dϕϯνϚʔΫ͔ΒݟΔ"//ͷݱঢ়d
"// ߴ࣍ݩͷϕΫτϧۭؒͰσʔλͷ࠷ۙΛݕࡧ͢Δ͜ͱॏཁͳλεΫͰ͋Δɻ ը૾σʔληοτ͔Βྨࣅͨ͠ը૾Λݟ͚ͭΔ ใݕࡧͰɺςΩετຒΊࠐΈΛ༻ͯ͠ɺྨࣅهࣄΛࢀর͢Δ ಛʹਂֶशϞσϧͷ࣍ݩ૿Ճ͢Δ͕͋ΔͨΊɺඦສΛ͑Δߴ࣍ݩ ϕΫτϧΛݕࡧ͢Δඞཁ͕͋Γɺۙࣅ࠷ۙ୳ࡧ BQQSPYJNBUFOFBSFTU OFJHICPS "//
ݕࡧํ๏ओྗɻ
"// ఏҊ͞Ε͍ͯΔ࠷ۙݕࡧํ๏ଟଘࡏ IOTX GBJTT 'BDFCPPL ONTMJC લճՏ߹͞Μ͕༻
qBOO 0QFO$7Ͱ࣮͞Ε͍ͯΔ &UDʜ ࠷ۙ୳ࡧͷϕϯνϚʔΫΛߦ͏ϓϩδΣΫτʮ#FODINBSLJOHOFBSFTUOFJHICPSTʯ <>Ͱ֤ख๏ΛλεΫ͝ͱʹൺֱՄೳɻ <>IUUQTHJUIVCDPNFSJLCFSOBOOCFODINBSLT
"// ͳʹΒ:BIPP+"1"/ΒʹΑͬͯ/(5ͱ͍͏ͷ͕ੈքτοϓϨϕϧୡͨ͠Β͍͠<> <>IUUQTUFDICMPHZBIPPDPKQFOUSZ
#FODINBSLJOHOFBSFTUOFJHICPST <>IUUQTHJUIVCDPNFSJLCFSOBOOCFODINBSLT
#FODINBSLJOHOFBSFTUOFJHICPST <>IUUQTHJUIVCDPNFSJLCFSOBOOCFODINBSLT
IUUQTBSYJWPSHBCT Αͬͯࠓճͷจ /(5 /FJHICPSIPPEHSBQIBOEUSFF ͷจ
/(50//(3FMBUFE8PSL d/(50//(ొ·ͰͷܦҢΛ͓͑͞Δd
3FMBUFE8PSL ࠷ۙ୳ࡧɺπϦʔϕʔεͱάϥϑϕʔεʹେ͖͘ྨ͞ΕΔɻଠࣈ/(5ʹ࣮͞Ε͍ͯΔΞϧΰϦζϜɻ ˙πϦʔϕʔε LEUSFF "// LEπϦʔʹۙࣅݕࡧΛద༻͢Δํ๏ '-"// ෳͷLEπϦʔ͕ฒߦͯ͠ݕࡧ͞ΕΔϥϯμϜԽ͞ΕͨLEπϦʔ
˙άϥϑϕʔε )/48 ۙࣅۙάϥϑʹϨΠϠʔͷ֓೦Λಋೖ "//( ۙࣅ,//( 1"//( ΫΤϦ࣌ؒΛॖ͢ΔͨΊʹ"//(ͷ֤ϊʔυͷΤοδΛআ͢Δ 0//( ϕϯνϚʔΫτοϓϨϕϧ
"//( ϊʔυʹLݸͷ࠷ۙϊʔυͷ࿈Λߦ͏άϥϑɻ ࿈݁άϥϑΛอূ͠ͳ͍ͷͰ͞Εͨάϥϑ͕ൃੜ͢Δ ਤ ɻ L//( "//(<>ϊʔυͣͭແΤοδͰஞ࣍తʹ࿈݁͢Δ͜ͱͰ࿈݁άϥϑΛอূ͢Δ ਤ ɻ "//(
<>IUUQTTZJNHKQJEPDTSFTFBSDI@MBCBSUJDMFTNJXBTBLJJQTKUPEQEG
"//(5 ϥϯμϜʹબͨ͠ϊʔυ͔ΒάϥϑΛ୳ࡧ͢ΔͷͰάϥϑ͕େྔͷϊʔυΛ༗͢Δ ߹ʹ୳ࡧίετ͕૿Ճ͢Δɻಛʹ୳ࡧى࣍ୈͰίετ͕Ͷ্͕Δɻ "//(5<>"//(ʹ͓͍ͯ୳ࡧىΛܾఆ͢ΔͷʹEWQUSFF<>Λར༻͢Δ͜ͱʹ ΑΓίετͰۙϊʔυΛ୳ࡧͰ͖Δ ਤ ɻ "//( <>IUUQTTZJNHKQJEPDTSFTFBSDI@MBCBSUJDMFTNJXBTBLJJQTKKOMQEG
"//(5
"//(5 EWQUSFF EZOBNJDWBOUBHFQPJOUUSFF ୳ࡧىΛબͿͨΊ͚ͩʹΘΕΔɻ͜ͷྫͰۭؒશମΛͷಉ ৺ԁɺΦϨϯδͷಉ৺ԁɺ੨ͷಉ৺ԁʹΑΓॱʹׂ͢Δ͜ͱͰ෦ۭؒࡉԽ͠ɺͦͷ෦ۭؒͷแؚؔ Λࣔ͢πϦʔߏΛੜ͢Δɻ͜ΕͰ୳ࡧىΛେ෯ʹߜΓࠐΊΔɻಈతͷߏஙΞϧΰϦζϜޙௐࠪʜ
/(50//( d/(50//(ʹΑΔΤοδௐd
.PUJWBUJPO "//( "//(5ͰΤοδʹΑͬͯ࣍ͷ͕ൃੜ͢Δɻ ೖྗΤοδ͕ۃʹগͳ͍ϊʔυ౸ୡ͢Δ͕֬Լ͕ΔͷͰݕࡧ࿙Ε͢ΔՄೳ Τοδ͕શମతʹগͳ͍ͱԕճΓʹͳΔՄೳੑ͕͋Γɺݕࡧ࿙Ε͢ΔՄೳੑ্͕͕Δ Τοδ͕ଟ͍ͱ୳ࡧ͕࣌ؒ૿͑Δɻ ͭ·Γ ೖྗΤοδͷϊʔυͰҰఆʹ͍ͨ͠ ग़ྗΤοδͷ૿ՃʹΑΔԼ͕ൃੜ͠ͳ͍ൣғͰ֤ϊʔυͷೖྗΤοδΛ૿͢ɻ ͜ΕΒΛϊʔυʹΤοδͷௐʹΑͬͯղܾ͢Δͷ͕/(50//(
0QUJNJ[FE/FBSFTU /FJHICPST(SBQI Ͱ͋Γɺ"//(5ʹΤοδௐύεௐΛ͔͚ͨͷͰ͋Δɻ
EFHSFFBEKVTUNFOUNFUIPET QBUIBEKVTUNFOUNFUIPE /(50//(ͰͭΤοδௐ๏ͱݕࡧ࣌ͷύεௐ๏ΛఏҊ͍ͯ͠Δɻ ੩త࣍ௐ,//(ͷΤοδͱసΤοδ͔Β࡞ͬͨάϥϑͰೖग़࣍Λେ·͔ʹௐ͢Δ ੍͖੩త࣍ௐೖग़࣍ΛΑΓਖ਼֬ʹௐ͢Δ ಈత࣍ௐݕࡧ࣌ʹཁٻ͞ΕΔਫ਼͔Βग़࣍Λಈతʹܾఆ͢Δ γϣʔτΧοτΤοδআڈʹΑΔύεௐ ϊʔυͷग़͕࣍ߴ͘ͳΓɺΫΤϦ͕࣌ؒ͘ͳΔͷΛͳΜͱ͔͍ͨ͠
੩త࣍ௐ d,//(ͷΤοδͱసΤοδ͔Β࡞ͬͨάϥϑͰೖग़࣍Λେ·͔ʹௐd ·ͣϊʔυͷೖग़࣍Λେࡶʹἧ͍͑ͨ F@P F@J͕༩͑ΒΕͨ࣌ɺ֤ϊʔυ͔Βڑ͕͍ॱʹ F@Pݸͷग़ྗΤοδ͕બ͞ΕΔɻF@Jݸͷग़ྗΤοδ ͍ॱʹબ͞ΕΔɻ બΕͨF@Pݸͷग़ྗΤοδ܈ͦͷ··࠾༻͠ɺF@J ݸͷग़ྗΤοδ܈શͯసͯ͠ೖྗΤοδͱͯ͠࠾ ༻͢Δɻ
ࠨਤL F@P F@Jͷ࣌Λࣔ͢ɻେ·͔ʹFP FJʹ͕࣍ἧ͑ΒΕ͍ͯΔɻ จͰ͜ΕΛௐάϥϑͱ໋໊͍ͯ͠Δɻ ௐ ݸͷΤοδ eo ݸͷసΤοδ ei
੍͖࣍ௐ தଜ͕·ͩཧղͰ͖ͯͳ͍આ dೖग़࣍ΛΑΓਖ਼֬ʹௐ͢ΔͨΊͷ੍͖ͷ࣍ௐd ઌ΄Ͳͷํ๏ͩͱେࡶʹ࣍ΛௐͰ͖Δ͕ɺҰ෦ͷϊʔυߴ ͍ग़࣍Λ͕࣋ͭ͋Δɻͦ͜Ͱɺग़ࣗΛ૿͞ͳ͍Α͏ʹೖ ग़࣍Λௐ͢Δํ๏͕ՃͰఏҊ͞Ε͍ͯΔɻ ઌ΄ͲͷΞϧΰϦζϜͰF@PͰੜ͞ΕΔௐάϥϑ(@UΛੜ ͢Δɻ(@JΛߏஙதͷάϥϑ(@Fͷసஔάϥϑͱ͢Δɻ (@Uͷϊʔυͷग़࣍ͷঢॱͰͭͷϊʔυ͕બ͞Εɺͦͷ
ϊʔυͷྡϊʔυͷ͍ۙॱͦΕͧΕʹ͍ͭͯɺ(@Jͷྡϊʔυ ͷग़͕࣍F@JΑΓ͘ɺ(@Fͷϊʔυͷग़͕࣍F@PΑΓ͍ ߹ɺྡϊʔυͱͷΤοδ͕(@FʹՃ͞ΕΔɻ (@FϊʔυʹF@PݸͷΤοδؚ͕·ΕΔ·ͰɺݩͷάϥϑͷΤοδ ͕ϊʔυʹՃ͞Ε·͢ɻ
ௐ Gt Ge Gi Gt Ge Gi F@J F@P L
Ge TUBHF݁Ռ ˔ ˔ ˔ ࠷ޙͷϊʔυ·Ͱॲཧ ੍ݶ͖੩త࣍ௐTUBHF ඞͣ͠࿈άϥϑʹͳΒͳ͍ʁ
Ge Ge G 4UBHF ੍ݶ͖੩త࣍ௐTUBHF F@J F@P L ඞͣ͠࿈άϥϑʹͳΒͳ͍ʁΜʁʁ ࠓޙཁௐࠪ
γϣʔτΧοτΤοδআڈʹΑΔ ύεௐ EWQUSFFΛ༻ͯ͠ΫΤϦʹ΄΅ྡ͢ΔϊʔυΛ୳ ࡧىͱ͍ͯ͠ΔͨΊɺγϣʔτΧοτΤοδແବ ʹग़࣍Λ૿͍ͯ͠Δ߹͕͋Δɻ ͜ͷΑ͏ͳΤοδΛআ͢ΔͱΫΤϦ࣌ؒΛॖͰ͖ Δɻ ସύε͕ͭҎ্ͷϊʔυͰߏ͞Ε͍ͯΔ߹ ࠨ ਤB
Λআ͠Α͏ͱ͢ΔͱΫΤϦ࣌ؒͷํ͕େ͖͘ͳ ΔͨΊͭͷϊʔυͰߏ͞Ε͍ͯΔύεͷΈ͕আ͞ ΕΔ ࠨਤCͷ߹ ɻ γϣʔτΧοτΤοδ͕ସύεͷΤοδΑΓ͍ ߹ ࠨਤD ͷΑ͏ͳ߹আ͞Εͳ͍ɻ
ಈత࣍ௐ dݕࡧ࣌ʹཁٻ͞ΕΔਫ਼͔Βग़࣍Λಈతʹܾఆ͢Δd ߴਫ਼͕ඞཁͳ߹ߴ͍ग़͕࣍ඞཁɻҰํͰ ͕༏ઌ͞ΕΔ߹ߴ͍ग़࣍ෆཁɻ͕ͨͬͯ͠ɺ ग़࣍ݕࡧ࣌ʹಈతʹௐͰ͖Δͱخ͍͠ɻ ୳ࡧ࣌ʹߟྀ͢Δग़࣍ਫ਼ௐύϥϝʔλЏͷؔ Ͱ͋ΔFQΛೖྗͱͯ͠ௐ͢Δɻ ਫ਼ௐύϥϝʔλͷЏ୳ࡧܘʹӨڹΛ༩͑ Δɻͭ·Γ,OO4FBSDIͷਫ਼Λೋͭͷ؍Ͱܾఆ͢ Δɻ
74NFUIPET %"͕࠷ڑܭࢉ͕গͳ͘ࡁΉɻ σʔληοτʹΑͬͯ4"Ͱ͑͞΄΅࠷ྑͷάϥϑߏΛߏஙͰ͖Δɻ 4"$ɺ(*45ͷΑ͏ͳߴ࣍ݩͷσʔληοτʹޮՌత͔͠Εͳ͍ɻ 4"ͱ4"$ͷ࣍%"ͷ࣍ΑΓগͳ͍ͨΊϝϞϦ༻ྔͷݮΛ༏ઌ͢Δඞཁ͕͋Δ߹ɺ4"·ͨ 4"$͕બࢶͱͳΔɾ
3FTVMUT σʔληοτ͝ͱͷ֤छ࠷ۙ୳ࡧख๏ൺֱ
ग़࣍ΛݮΒ͢ɻೖ࣍Ұఆʹ͢ΔΤοδௐͱ͍͏ΞΠσΞ໘ന͍ɻ ͨͩಈతͳߋ৽ɺআΛߟྀͯ͠ͳ͍ͷͰɺΞϓϦέʔγϣϯͰ͏ͷෆ ͖ɻ੩తͳݕࡧʹ͑Δ͚Ͳͦ͏ͳΔͱ͍Ͳ͜Ζ͕ɻɻ 7BME/(50//(αϙʔτ͠ͳ͍ͱݴ͍ͬͯΔɻͦΓΌͦ͏ɻ Γੈ)/48࣌ͳͷ͔ ॴײ
͓·͚ͱิ
<>IUUQTHJUIVCDPNWEBBTWBME 7BME<>/(5ϥΠϒϥϦΛͬͨࢄϕΫτϧݕࡧΤϯδϯɻLTGSJFOEMZͰɺ )FMNͰҰܸͰσϓϩΠ͕Մೳɻ௨৴H31$Λ͍ͬͯΔɻ͔͠(PΧοέΣɻ ΫϥΠΞϯτϥΠϒϥϦఏڙ͞Ε͓ͯΓ1ZUIPO (P /PEFKTͳͲʹରԠ͍ͯ͠Δɻ
ͨͩ7BMEͩͱ/(5"0//(͔͠ରԠͯ͠ͳ͍͍͘͞ɻɻɻ ࠶ߏஙͱࢄΤϯδϯ͕ͦ͠͏ͩ͠ɻɻɻ OHUίϚϯυΤοδௐܥΞϧΰϦζϜ໌ࣔతʹ࠶ߏஙΛୟ͘ܗࣜʹͳ͍ͬͯΔɻ ϕϯνϚʔΫݟΔͱΤοδௐ͕ಈతʹͰ͖ͳ͍ͱ·ͩ)/48ܥʹ܉ഋ্͕͕Γͦ͏ɻ
ͻΌʔʔʔ
͓·͚ େ·͔ͳ੩తͳ࣍ௐํ๏ͷग़ॴ ͳͥ͜ͷΞΠσΞ͕ग़ͯ͘Δ͔ɻ
͓·͚ σʔληοτ͝ͱͷग़࣍ͷฏۉ
શͯΛաڈʹ͢Δ4DB//