不自然言語の自然言語処理: コード補完を支える最新技術

6fe6b19f7204487ab25ceb3b3a70204e?s=47 takegue
October 09, 2020

不自然言語の自然言語処理: コード補完を支える最新技術

Sansan自然言語処理勉強会
https://sansan.connpass.com/event/190157/

6fe6b19f7204487ab25ceb3b3a70204e?s=128

takegue

October 09, 2020
Tweet

Transcript

  1. ஛໺फ़ี !UBLFHVF ෆࣗવݴޠͷࣗવݴޠॲཧٕज़: ίʔυิ׬Λࢧ͑Δ࠷৽ٕज़ Sansan ࣗવݴޠॲཧษڧձ (2020/10/09)

  2. ͳͥίʔυิ׬ʁ ʢ͜͜͸ࣗવݴޠॲཧษڧձͰ͸ʜʣ

  3. 5BC/JOF IUUQTXXXUBCOJOFDPN ΑΓχϡʔϥϧϞσϧΛར༻ͨ͠ίʔυิ׬

  4. ίϯςΩετͷ৘ใ ˠܥྻ༧ଌͷ໰୊ͱͯͦ͠ͷ··ఆࣜԽՄೳ 5BC/JOF IUUQTXXXUBCOJOFDPN ΑΓχϡʔϥϧϞσϧΛར༻ͨ͠ίʔυิ׬

  5. ͳͥίʔυิ׬ʁ z࣮༻తͳࣗવݴޠॲཧzͷ࢖͍ํΛίʔυิ׬ͰֶͿ w ։ൃऀͷͨΊͷ*.&ࣗવݴޠॲཧٕज़͕ͦͷ··స༻Մೳͷ෼໺ w ਫ਼౓͸΋ͪΖΜଈԠੑɺܰྔ͞ͱ͍ͬͨෳ਺ͷࢦඪͰ ߴ͍ਫ४Ͱͷୡ੒͕ٻΊΒΕΔ ˠτϐοΫࣗવݴޠॲཧͷਂ૚ֶशϞσϧͷ࣮༻ͷน ˠτϐοΫ3//ɺ$//ͦΕͱ΋5SBOTGPSNFSʁ w

    نଇੑ͕ߴ͍ιʔείʔυ͸֤छ੩తղੳπʔϧͷൃୡͷഎܠ͕͋Δ ˠτϐοΫ஌ࣝϕʔεͦΕͱ΋ࣄྫϕʔεʁ
  6. ۙ೥ʹ͓͚Δίʔυิ׬पΓͷݚڀ w ౷ܭϞσϧʹΑΔίʔυิ׬ #SVDIFUBM  w ϕΠδΞϯΞϓϩʔνʹΑΔίʔυิ׬ 1SPLTDIFUBM  ˠ&DMJQTF֦ுͱͯ͠૊ΈࠐΈ

    w ݴޠϞσϧʹΑΔΞϓϩʔν w OHSBNϞσϧʹΑΔίʔυิ׬<)JOEMFFUBM> w ΩϟογϡܕݴޠϞσϧʹΑΔίʔυͷہॴར༻<'SBOLTFUBM> w ߏจ΍ҙຯղੳ݁Ռͷར༻<3BZDIFWFUBM> ΑΓ޿͍ҙຯͰͷίʔυར༻ͷݚڀ͸<"MMBNBOJTFUBM>Λࢀর
  7. w .JDSPTPGUͷݚڀνʔϜʹΑΔ ίʔυิ׬ͷݚڀ 74$PEF֦ு7JTVBM4UVEJP*OUFMMJ$PEFͷதͷ࿩   w ਫ਼౓͚ͩͰͳ͘ଈԠੑ αΠζͷ ෳ਺ͷ؍఺Ͱෳ਺ͷχϡʔϥϧϞ

    σϧͷੑೳΛൺֱ w .#ͰNTͰ3FDBMM!Ͱ  ঺հ͢Δ࿦จ ֤छϞσϧͷৄࡉͳ࣮૷΍σϓϩΠϝϯτʹؔ͢ΔผγεςϜ࿦จͰ΋঺հ͞Ε͍ͯΔ 4WZBULPWTLJZFUBM ,%%Λࢀর ҎޙਤࣜͳͲ͸࿦จதΑΓҾ༻͠·͢
  8. ࣮Ԡ༻ͷࣗવݴޠॲཧٕज़ ΤϯυϢʔβ؀ڥͰಈࣗ͘વݴޠॲཧΞϓϦέʔγϣϯͷน w ίʔυิ׬͸ΤϯυϢʔβ؀ڥͰϦΞϧλΠϜͰಈ࡞͢Δ w ༷ʑͳ࣮ߦ؀ڥͰɺ༷ʑͳϓϩδΣΫτͰͷಈ࡞ཁ੥ w ݪଇ$16 (16͕͋Δ͜ͱ͸ظ଴Ͱ͖ͳ͍ 

    w ߴ͍ଈԠੑ w ௿ϝϞϦ w ϓϥΠϕʔτˍΦϑϥΠϯϓϩϓϥΤλϦ w ͜ΕΒͷ৚݅Λߴ͍ਫ४Ͱୡ੒͢Δ͜ͱ͕ٻΊΒΕΔɻ
  9. ࣮Ԡ༻ͷࣗવݴޠॲཧٕज़ͷน

  10. .# ࣮༻తͳϞσϧͷαΠζ

  11. ࣮Ԡ༻ͷࣗવݴޠॲཧٕज़ͷน ޠኮʹΑΔϞσϧαΠζ΁ͷӨڹ w Ϟσϧͷύϥϝʔλ਺ʹ͸ޠኮ਺ͷӨڹ΋େ͖͍ ޠኮ਺Y࣍ݩ਺  w Ұൠతͳ*1"%*$ͷγεςϜࣙॻͰ໿.# ສऑΤϯτϦ 

    w NFDBCJQBEJDOFPMPHEͰ໿.# ສΤϯτϦ೥ݱࡏ  w Ϟσϧબ୒΋ॏཁͰ͋Δ͕ɺͦ΋ͦ΋ޠኮαΠζΛௐ੔͢Δඞཁ͕͋Δ w ྔࢠԽɺৠཹͱ͍ͬͨϞσϧͷޙॲཧख๏΍ 'FBUVSF)BTIJOHͱ͍ͬͨѹॖख๏͕ଘࡏ͢Δ ࠓճ͸ׂѪ
  12. ࣮Ԡ༻ͷࣗવݴޠॲཧٕज़ͷน ˠޠኮ਺ΛݮΒ͢޻෉Λߟ͑Δ w 50,&/ۭന͗͘ΓͰͦͷ··ར༻ w 46#50,&/TOBLF@DBTF΍$BNFM$BTFͳͲ໋໊׳श͸෼ׂՄೳ w #ZUF1BJS&ODPEJOH #1& σʔλ͔ΒαϒτʔΫϯ΁ͷ෼ׂΛ֫ಘ

    ޠኮ਺ΛઃఆՄೳ JFBSSBZ@JOOFS@QSPEVDUˠBSSBZ @ JO OOFS QSPE VDU w $)"3จࣈɻτʔΫϯྻΛ࣍ݩͷը૾ͱߟ͑ͯ$//͕ద༻Ͱ͖Δ 
  13. NT Ԡ౴࣌ؒͷ໨҆

  14. ࣮Ԡ༻ͷࣗવݴޠॲཧٕज़ͷน ੑೳͱϞσϧͷαΠζͷτϨʔυΦϑ w ۙ೥ͷಈ޲σΧ͍΄Ͳ͍͍ެ։ࡁΈͷχϡʔϥϧݴޠϞσϧ w #&35 5SBOTGPSNFS ԯύϥϝʔλ ਺(#ʙ 

    w Ϟσϧ͕େ͖͍ˠܭࢉίετ΋ߴ͍ˠ஗͘ͳΔ w TPGUNBY͸ܭࢉ͕ॏ͍ w <:BPFUBM>ஈ֊తͳ༧ଌީิͷߋ৽ʹΑΓഒͷߴ଎Խ
  15. ͦ΋ͦ΋

  16. ͦ΋ͦ΋χϡʔϥϧϞσϧ͸ඞཁ͔ʁ

  17. ͦ΋ͦ΋χϡʔϥϧϞσϧ͸ඞཁ͔ʁ The right tools should be used for the right

    job.
  18. ͦ΋ͦ΋χϡʔϥϧϞσϧ͸ඞཁ͔ʁ ίʔυิ׬Ͱ͸OHSBNϞσϧ͸χϡʔϥϧϞσϧΑΓڧ͍ <)FMMFOEPPSOBOE%FWBOCV> Ϟσϧͷෳࡶ͞ ଈԠੑɺϞσϧͷαΠζ ͕ ૬ԠͷՁ஋͕͋Δͷ͔ΛΑۛ͘ຯ͠ͳ͚Ε͹ͳΒͳ͍ ˠ໰୊ઃఆͷ࡞Γํ࣍ୈ The right

    tools should be used for the right job.
  19. ໰୊ઃఆΛߟ͑Δ ஌ࣝϕʔε͔ͦΕͱ΋ࣄྫϕʔε͔ ஌ࣝϕʔεࣙॻ΍نଇ֫ಘʹΑΔԋ៷తΞϓϩʔν ࣄྫϕʔεσʔλʹΑΔؼೲతΞϓϩʔν

  20. ໰୊ઃఆΛߟ͑Δ ஌ࣝϕʔε͔ͦΕͱ΋ࣄྫϕʔε͔ ஌ࣝϕʔεࣙॻ΍نଇ֫ಘʹΑΔԋ៷తΞϓϩʔν ࣄྫϕʔεσʔλʹΑΔؼೲతΞϓϩʔν ˠ྆ํ૊Έ߹Θͤͯ࢖͑Δͷ͕ྑ͍ ίʔυิ׬ͷจ຺ͷ੩తղੳ 45"/ ͱ͍͏༗༻ͳ஌ࣝͷଘࡏ

  21. ໰୊ઃఆΛߟ͑Δ w &ODPEFSEFDPEFSͷΑ͏ͳग़ྗ͕Ϋϥε਺ʙޠኮ਺ͷ෼ྨ໰୊Λ΍ΊΔ w ग़ྗۭ͕ؒૄɻֶशޮ཰΋ѱ͘༧ଌͷܭࢉίετ΋ߴ͍ w ੩తղੳπʔϧͱ૊Έ߹ΘͤΔ͜ͱΛߟ͑ΔͱɺΧελϚΠζੑ΋௿͍ ˠฒͼସ͑໰୊ͱͯ͠ଊ͑௚͢ ੜ੒ܕΞϓϩʔν͔Βฒͼସ͑Ξϓϩʔν΁

  22. ੜ੒͔Βฒͼସ͑ͷͨΊͷֶश΁ ੩తղੳ 45"/ PSࣄྫϕʔε 70$"# χϡʔϥϧϞσϧ (36 $// 53"/4'03.&3 χϡʔϥϧϞσϧ͸ίϯςΩετͷຒΊࠐΈͱީิฒͼସ͑ͷΈ୲౰

    ˠੑೳ͚ͩͰͳ͘ɺଈԠੑ΍ϞσϧͷܰྔԽʹ΋ߩݙ ޙड़
  23. ࣮ݧઃఆ σʔληοτ (JUIVC্ͷελʔ਺ͷ1ZUIPOϓϩδΣΫτ͔Β lzʹΑΔิ׬ҐஔΛऔಘ͠σʔληοτͷߏங ධՁ ϞσϧαΠζ͸ύϥϝʔλ਺Y'-0"5Ͱܭࢉ ̏ͭͷࢦඪ3FDBMM! 3FDBMM! .33ͰධՁ จࣈྻͷ෼ׂํ๏

    & ɺީิϓϩόΠμ 1 ɺຒΊࠐΈํ๏ $  ͭͷ૊Έ߹ΘͤͰͦΕͧΕϋΠύϥύϥϝʔλΛ̎෦୳ࡧ ϕʔεϥΠϯ͸45"/ͷީิͷ࠷ස౓Λબ୒ 50,&/  45"/ʹ૬౰
  24. ࣮ݧ݁ՌϞσϧͷ֤छൺֱ

  25. ࣮ݧ݁ՌϞσϧͷ֤छൺֱ ੩తղੳ 45"/ ͸͔ͳΓڧ͍ ˠֶशࣄྫʹ͓͍ͯ΋45"/ͷͳ͍ͱ ੑೳ͕dQUམͪΔ ίϯςΩετ৘ใΛ࢖͏͜ͱͰ ੑೳ͕໿ʙQUͷվળ

  26. ࣮ݧ݁ՌϞσϧͷ֤छൺֱ #1&ʙ46#50,&/$)"350,&/ ෼ׂͷͨΊͷϝλσʔλͷอ࣋Λߟ͑Δͱɺ46#50,&/͕ແ೉

  27. ࣮ݧ݁ՌϞσϧͷ֤छൺֱ 3//WT$//WT53"/4'03.&3ʁ $)"3.#Ͱ͸༏ल .# .# #1& 46#50,&/ͷੑೳࠩ͸Θ͔ͣ

  28. ࣮ݧ݁ՌϞσϧͷ֤छൺֱ 3//WT$//WT53"/4'03.&3ʁ ΦʔιυοΫεͳ3// (36 ͕όϥϯε͕औΕ࠷΋༏ΕΔ݁Ռ

  29. ࣮ݧ݁ՌϞσϧͷ֤छൺֱ 3//WT$//WT53"/4'03.&3ʁ $// 53"/4'03.&3͸ϞσϧαΠζʹ൐ͬͯϨΠςϯγ͕ஶ͘͠ѱԽ

  30. ࣮ݧ݁Ռ൚༻ੑͷධՁ ੩తղੳ 45"/ ͕ॏཁͳ໾ׂΛ͠Ί͍ͯΔ ࣄྫϕʔε 17"$# ͚ͩͰ͸ద੾ͳิ׬ީิΛબͿ͜ͱ͸ࠔ೉Ͱ͋Δ

  31. ·ͱΊ w ࣮༻తͳࣗવݴޠॲཧͷ෼໺ͱͯ͠ίʔυิ׬ͰͷऔΓ૊ΈΛ঺հ w /-1ͱಉ༷ʹχϡʔϥϧݴޠϞσϧʹΑΔมԽ͕๚Ε͍ͯΔ w ੑೳ͚ͩͰ͸ͳ͘ଈԠੑ΍ϞσϧαΠζΛؑΈͨൺֱ࣮ݧ w ΦʔιυοΫεͳ3//͸5SBOTGPSNFS΍$//ΑΓ࣮༻త w

    ൚༻తͳѹॖख๏஌ࣝৠཹ΍ྔࢠԽΛར༻͢Δ͜ͱͰ͞ΒͳΔѹॖ͕Մೳ w ੩తղੳπʔϧͷॆ࣮ͷഎܠ͔Βࣗવݴޠॲཧ෼໺͔ΒΈͯ΋ࣔࠦత w ஌ࣝͱσʔλͷ૊Έ߹ΘͤΔͨΊͷ໰୊ઃఆ΍ΞʔΩςΫνϟ
  32. ࢀߟจݙ 5BC/JOF5FBN5BC/JOFIUUQTUBCOJOFDPN7JTJUFE.BS +JBMJ:BPFUBM &OBCMJOH3FBMUJNF/FVSBM*.&XJUI*ODSFNFOUBM7PDBCVMBSZ4FMFDUJPO /""$- 4WZBULPWTLJZFUBM 'BTUBOE.FNPSZ&⒏DJFOU/FVSBM$PEF$PNQMFUJPO BS9JW 4WZBULPWTLJZFUBM 1ZUIJB"*BTTJTUFE$PEF$PNQMFUJPO4ZTUFN

    ,%% "MMBNBOJTFUBM "4VSWFZPG.BDIJOF-FBSOJOHGPS#JH$PEFBOE/BUVSBMOFTT "$.$PNQVUJOH4VSWFZT $463  4FCBTUJBO1SPLTDI +PIBOOFT-FSDI BOE.JSB.F[JOJ*OUFMMJHFOUDPEFDPNQMFUJPOXJUI#BZFTJBOOFUXPSLT"$.5SBOTBDUJPOTPO4PGUXBSF &OHJOFFSJOHBOE.FUIPEPMPHZ 504&.  "CSBN)JOEMF &BSM5#BSS ;IFOEPOH4V .BSL(BCFM BOE1SFNLVNBS%FWBOCV0OUIFOBUVSBMOFTTPGTPGUXBSF*O1SPDFFEJOHTPGUIF *OUFSOBUJPOBM$POGFSFODFPO4PGUXBSF&OHJOFFSJOH *$4&  $ISJTUJOF'SBOLT ;IBPQFOH5V 1SFNLVNBS%FWBOCV BOE7JODFOU)FMMFOEPPSO$BDIFDB"DBDIFMBOHVBHFNPEFMCBTFEDPEF TVHHFTUJPOUPPM*O1SPDFFEJOHTPGUIF*OUFSOBUJPOBM$POGFSFODFPO4PGUXBSF&OHJOFFSJOH *$4&  7FTFMJO3BZDIFW .BSUJO7FDIFW BOE"OESFBT,SBVTF1SFEJDUJOH1SPHSBN1SPQFSUJFTGSPNl#JH$PEFz*O1SPDFFEJOHTPGUIF 4ZNQPTJVNPO1SJODJQMFTPG1SPHSBNNJOH-BOHVBHFT 101-  1BWPM#JFMJL 7FTFMJO3BZDIFW BOE.BSUJO7FDIFW1)0(1SPCBCJMJTUJD.PEFMGPS$PEF*O1SPDFFEJOHTPGUIF*OUFSOBUJPOBM$POGFSFODF PO.BDIJOF-FBSOJOH *$.-