Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
DMLCÉîÃË·Ö²¼Ê½Éî¶È»úÆ÷ѧϰ¿ªÔ´Æ½Ì¨½âÎö
 
×÷Õß Àîãå ³ÂÌìÆæ ÍõÃô½Ý Óà¿­ ÕÅá¿ À´Ô´£º¡¶³ÌÐòÔ±¡·µç×Ó¿¯  ·¢²¼ÓÚ 2015-5-25
  2727  次浏览      30
 
ÕªÒª£º±¾ÎÄÓÉDMLC·Ö²¼Ê½Éî¶È»úÆ÷ѧϰ¿ªÔ´ÏîÄ¿£¨ÖÐÎÄÃûÉîÃË£©¿ª·¢ÕßÁªºÏ׫д£¬½«ÉîÈë½éÉÜDMLCÒÑÓеÄxgboost¡¢cxxnet¡¢MinervaºÍParameter ServerµÈ×é¼þÖ÷Òª½â¾öµÄÎÊÌ⡢ʵÏÖ·½Ê½¼°ÆäÐÔÄܱíÏÖ£¬²¢¼òҪ˵Ã÷ÏîÄ¿µÄ½üÆÚ¹æ»®¡£

¡¾±àÕß°´¡¿Ëã·¨ËÙ¶È¡¢ÏµÍ³ÐÔÄÜÒÔ¼°Ò×ÓÃÐÔµÄÆ¿¾±£¬ÖÆÔ¼×ÅĿǰ»úÆ÷ѧϰµÄÆÕ¼°Ó¦Óã¬DMLC·Ö²¼Ê½Éî¶È»úÆ÷ѧϰ¿ªÔ´ÏîÄ¿£¨ÖÐÎÄÃûÉîÃË£©µÄµ®Éú£¬ÕýÊÇÒª½µµÍ·Ö²¼Ê½»úÆ÷ѧϰµÄÃż÷¡£±¾ÎÄÓÉÉîÃËÏîÄ¿¿ª·¢ÕßÁªºÏ׫д£¬½«ÉîÈë½éÉÜÉîÃËÏîÄ¿µ±Ç°ÒÑÓеÄxgboost¡¢cxxnet¡¢MinervaºÍParameter ServerµÈ×é¼þÖ÷Òª½â¾öµÄÎÊÌ⡢ʵÏÖ·½Ê½¼°ÆäÐÔÄܱíÏÖ£¬²¢¼òҪ˵Ã÷ÏîÄ¿µÄ½üÆÚ¹æ»®¡£ÎÄÕ½«±»ÊÕ¼µ½¡¶³ÌÐòÔ±¡·µç×Ó¿¯£¨2015.06A£©È˹¤ÖÇÄÜʵ¼ùרÌ⣬ÒÔÏÂΪȫÎÄÄÚÈÝ£º

»úÆ÷ѧϰÄÜ´ÓÊý¾ÝÖÐѧϰ¡£Í¨³£Êý¾ÝÔ½¶à£¬ÄÜѧϰµ½µÄÄ£Ð;ÍÔ½ºÃ¡£ÔÚÊý¾Ý»ñµÃÔ½À´Ô½±ãÀûµÄ½ñÌ죬»úÆ÷ѧϰӦÓÃÎÞÂÛÔÚ¹ã¶ÈÉÏ»¹ÊÇÔÚÉî¶ÈÉ϶¼ÓÐÁËÏÔÖø½ø²½¡£ËäÈ»½üÄêÀ´¼ÆËãÄÜÁ¦µÃµ½ÁË´ó·ùÌá¸ß£¬µ«ËüÈÔȻԶԶ²»¼°Êý¾ÝµÄÔö³¤ºÍ»úÆ÷ѧϰģÐ͵ĸ´ÔÓ»¯¡£Òò´Ë£¬»úÆ÷ѧϰËã·¨ËٶȺÍϵͳÐÔÄÜÊÇĿǰ¹¤Òµ½çºÍѧÊõ½ç¹²Í¬¹ØÐĵÄÈȵ㡣

¸ßÐÔÄܺÍÒ×ÓÃÐԵĿªÔ´ÏµÍ³ÄܶԻúÆ÷ѧϰӦÓÃµÄÆä¼«´óµÄÍÆ¶¯×÷Óᣵ«ÎÒÃÇ·¢ÏÖĿǰ¼æ¾ßÕâÁ½¸öÌØµãµÄ¿ªÔ´ÏµÍ³²¢²»¶à£¬¶øÇÒ·ÖÉ¢ÔÚ¸÷´¦¡£Òò´ËÎÒÃÇÁªºÏÊý¸öÒÑÓÐÇÒ±»¹ã·ºÊ¹ÓõÄC++·Ö²¼Ê½»úÆ÷ѧϰϵͳµÄ¿ª·¢Õߣ¬Ï£Íûͨ¹ýÒ»¸öͳһµÄ×éÖ¯À´Íƶ¯¿ªÔ´ÏîÄ¿¡£ÎÒÃÇΪÕâ¸öÏîĿȡÃûDMLC: Deep Machine Learning in Common£¬Ò²¿ÉÒÔÈÏΪÊÇDistributed Machine Learning in C++¡£ÖÐÎÄÃûΪÉîÃË¡£´úÂ뽫ͳһ·¢²¼ÔÚ https://github.com/dmlc¡£

Õâ¸öÏîÄ¿½«À´×Ô¹¤Òµ½çºÍѧÊõ½çµÄ¼¸×鿪·¢ÈËÔ±À­µ½ÁËÒ»Æð£¬Ï£ÍûÄÜÌṩ¸üÓÅÖʺ͸üÈÝÒ×ʹÓõķֲ¼Ê½»úÆ÷ѧϰϵͳ£¬Í¬Ê±Ò²Ï£ÍûÎüÒý¸ü¶àµÄ¿ª·¢Õß²ÎÓë½øÀ´¡£±¾ÎĽ«½éÉÜÉîÃËÏîĿĿǰÒÑÓеö²¿¼þ£¬²¢¼òҪ˵Ã÷ÏîÄ¿µÄ½üÆÚ¹æ»®¡£

xgboost: ËÙ¶È¿ìЧ¹ûºÃµÄBoostingÄ£ÐÍ

ÔÚÊý¾Ý½¨Ä£ÖУ¬µ±ÎÒÃÇÓÐÊý¸öÁ¬ÐøÖµÌØÕ÷ʱ£¬Boosting·ÖÀàÆ÷ÊÇ×î³£ÓõķÇÏßÐÔ·ÖÀàÆ÷¡£Ëü½«³É°ÙÉÏǧ¸ö·ÖÀà׼ȷÂʽϵ͵ÄÊ÷Ä£ÐÍ×éºÏÆðÀ´£¬³ÉΪһ¸ö׼ȷÂʺܸߵÄÄ£ÐÍ¡£Õâ¸öÄ£Ðͻ᲻¶ÏµØµü´ú£¬Ã¿´Îµü´ú¾ÍÉú³ÉÒ»¿ÅеÄÊ÷¡£È»¶ø£¬ÔÚÊý¾Ý¼¯½Ï´ó½Ï¸´ÔÓµÄʱºò£¬ÎÒÃÇ¿ÉÄÜÐèÒª¼¸Ç§´Îµü´úÔËË㣬Õ⽫Ôì³É¾Þ´óµÄ¼ÆËãÆ¿¾±¡£

xgboostÕýÊÇΪÁ˽â¾öÕâ¸öÆ¿¾±¶øÌá³ö¡£µ¥»úËü²ÉÓöàÏß³ÌÀ´¼ÓËÙÊ÷µÄ¹¹½¨£¬²¢ÒÀÀµÉîÃ˵ÄÁíÒ»¸ö²¿¼þrabbitÀ´½øÐзֲ¼Ê½¼ÆË㡣ΪÁË·½±ãʹÓã¬xgboostÌṩÁË PythonºÍRÓïÑÔ½Ó¿Ú¡£ÀýÈçÔÚRÖнøÐÐÍêÕûµÄѵÁ·ºÍ²âÊÔ£º

require(xgboost)
data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
train<- agaricus.train
test<- agaricus.test
bst<- xgboost(data = train$data, label = train$label,
max.depth = 2, eta = 1, nround = 100, objective = "binary:logistic")
pred<- predict(bst, test$data)

ÓÉÓÚÆä¸ßЧµÄC++ʵÏÖ£¬xgboostÔÚÐÔÄÜÉϳ¬¹ýÁË×î³£ÓÃʹÓõÄR°ügbmºÍPython°üsklearn¡£ÀýÈçÔÚKaggleµÄÏ£¸ñ˹×Ó¾ºÈüÊý¾ÝÉÏ£¬µ¥Ïß³Ìxgboost±ÈÆäËûÁ½¸ö°ü¾ùÒª¿ì³ö50%£¬ÔÚ¶àÏß³ÌÉÏxgboost¸üÊÇÓнӽüÏßÐÔµÄÐÔÄÜÌáÉý¡£ÓÉÓÚÆäÐÔÄܺÍʹÓñãÀûÐÔ£¬xgboostÒѾ­ÔÚKaggle¾ºÈüÖб»¹ã·ºÊ¹Ó㬲¢ÒѾ­ÓжÓÎé³É¹¦½èÖúÆäÄõ½Á˵ÚÒ»Ãû£¬Èçͼ1Ëùʾ¡£


ͼ1 xgboostºÍÁíÍâÁ½¸ö³£ÓðüµÄÐÔÄܶԱÈ

CXXNET£º¼«ÖµÄC++Éî¶Èѧϰ¿â

cxxnetÊÇÒ»¸ö²¢ÐеÄÉî¶ÈÉñ¾­ÍøÂç¼ÆËã¿â£¬Ëü¼Ì³ÐÁËxgboostµÄ¼ò½àºÍ¼«ËٵĻùÒò£¬²¢¿ªÊ¼±»Ô½À´Ô½¶àÈËʹÓá£ÀýÈçHappy Lantern FestivalÍŶӽèÖúCxxnetÔÚ½üÆÚµÄKaggleÊý¾Ý¿ÆÑ§¾ºÈüÖлñµÃÁ˵ڶþÃû¡£ÔÚ¼¼ÊõÉÏ£¬cxxnetÓÐÈçÏÂÁ½¸öÁÁµã¡£

Áé»îµÄ¹«Ê½Ö§³ÖºÍ¼«ÖµÄC++Ä£°å±à³Ì

×·ÇóËٶȼ«ÖµĿª·¢Õßͨ³£Ê¹ÓÃC++À´ÊµÏÖÉî¶ÈÉñ¾­ÍøÂç¡£µ«ÍùÍùÐèÒª¸øÃ¿¸öÉñ¾­ÍøÂçµÄ²ãºÍ¸üй«Ê½±àд¶ÀÁ¢µÄCUDA kernel¡£ºÜ¶àÒÔC++ΪºËÐĵĴúÂëÖ®ËùÒÔûÓÐÏòmatlab/numpyÄÇÑùÖ§³Ö·Ç³£Áé»îµÄÕÅÁ¿¼ÆË㣬ÊÇÒòΪÒòΪÔËËã·ûÖØÔØºÍÁÙʱ¿Õ¼äµÄ·ÖÅä»á´øÀ´Ð§ÂʵĽµµÍ¡£

È»¶ø£¬cxxnetÀûÓÃÉîÃ˵ÄmshadowÌṩÁËÀàËÆmatlab/numpyµÄ±à³ÌÌåÑ飬µ«Í¬Ê±±£ÁôÁËC++ÐÔÄܵĸßЧÐÔ¡£Æä±³ºóµÄºËÐÄ˼ÏëÊÇexpression template£¬Ëüͨ¹ýÄ£°å±à³Ì¼¼Êõ½«¿ª·¢ÕßдµÄ¹«Ê½×Ô¶¯Õ¹¿ª³ÉÓÅ»¯¹ýµÄ´úÂ룬±ÜÃâÖØÔØ²Ù×÷·ûµÈ´øÀ´µÄ¶îÍâÊý¾Ý¿½±´ºÍϵͳÏûºÄ¡£ÁíÍ⣬mshadowͨ¹ýÄ£°åʹµÃ·Ç³£·½±ãµÄ½²´úÂëÇл»µ½CPU»¹ÊÇGPUÔËÐС£

ͨÓõķֲ¼Ê½½â¾ö·½°¸

ÔÚ·Ö²¼Ê½Éî¶ÈÉñ¾­ÍøÂçÖУ¬ÎÒÃǼÈÒª´¦Àíһ̨»úÆ÷¶àGPU¿¨£¬ºÍ¶ą̀»úÆ÷¶àGPU¿¨µÄÇé¿ö¡£È»¶øºóÕßµÄÑӳٺʹø¿íÔ¶²îÓÚǰÕߣ¬Òò´ËÐèÒª¶ÔÕâÖÖÁ½¸öÇéÐÎ×ö²»Í¬µÄ¼¼Êõ¿¼ÂÇ¡£cxxnet²ÉÓÃmshadow-psÕâÑùÒ»¸öͳһµÄ²ÎÊý¹²Ïí½Ó¿Ú£¬²¢ÀûÓýÓÏÂÀ´½«Òª½éÉÜParameter ServerʵÏÖÁËÒ»¸öÒì²½µÄͨѶ½Ó¿Ú¡£Æäͨ¹ýµ¥»ú¶à¿¨ºÍ¶à»ú¶à¿¨²ÉÓò»Í¬µÄÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍÀ´´ïµ½Ëã·¨ËٶȺÍϵͳÐÔÄܵÄ×î¼Ñƽºâ¡£

ÎÒÃÇÔÚµ¥»ú4¿éGTX 980ÏÔ¿¨µÄ»·¾³Ï²âÊÔÁËÁ÷ÐеÄͼƬÎïÌåʶ±ðÊý¾Ý¼¯ImageNetºÍÉñ¾­ÍøÂçÅäÖÃAlexNet¡£ÔÚµ¥¿¨ÉÏ£¬cxxnetÄܹ»´¦Àí244ÕÅͼƬÿÃ룬¶øÔÚ4¿¨ÉÏ¿ÉÒÔÌṩ3.7±¶µÄ¼ÓËÙ¡£ÐÔÄܳ¬¹ýÁíÒ»¸öÁ÷ÐÐÉî¶Èѧϰ¼ÆËã¿âCaffe £¨¾ùʹÓÃCUDA 6.5£¬Î´Ê¹ÓÃcuDNN¼ÓËÙ£©¡£

ÔÚ¶à»úÇé¿öÏ£¬ÎÒÃÇʹÓÃAmazon EC2µÄGPUʵÀýÀ´²âÊÔÐÔÄÜ¡£ÓÉÓÚÓÅÐãµÄÒ첽ͨÐÅ£¬cxxnet´òÂúÁË»úÆ÷µÄÎïÀí´ø¿í£¬²¢ÌṩÁ˼¸ºõÊÇÏßÐԵļÓËٱȣ¬Èçͼ2Ëùʾ¡£


ͼ2 cxxnetÔÚAmazon EC2ÉϵļÓËÙ±È

cxxnetµÄÁíÍâÒ»Ð©ÌØÐÔ£º

  1. ÇáÁ¿¶øÆëÈ«µÄ¿ò¼Ü£ºÍƼö»·¾³Ï½öÐèÒªCUDA¡¢OpenCV¡¢MKL»òBLAS¼´¿É±àÒë¡£
  2. cuDNNÖ§³Ö£ºNvidiaÔ­Éú¾í»ýÖ§³Ö£¬¿É¼ÓËÙ¼ÆËã30%¡£
  3. ¼°Ê±¸üеÄ×îм¼Êõ£º¼°Ê±¸ú½øÑ§Êõ½çµÄ¶¯Ì¬£¬ÀýÈçÏÖÔÚÒѾ­Ö§³ÖMSRAµÄParametricReluºÍGoogleµÄBatch Normalization¡£
  4. CaffeÄ£ÐÍת»»£ºÖ§³Ö½«ÑµÁ·ºÃµÄCaffeÄ£ÐÍÖ±½Óת»¯ÎªcxxnetÄ£ÐÍ¡£

Minerva: ¸ßЧÁé»îµÄ²¢ÐÐÉî¶ÈѧϰÒýÇæ

²»Í¬ÓÚcxxnet×·Çó¼«ÖÂËٶȺÍÒ×ÓÃÐÔ£¬MinervaÔòÌṩÁËÒ»¸ö¸ßЧÁé»îµÄƽ̨Èÿª·¢Õß¿ìËÙʵÏÖÒ»¸ö¸ß¶È¶¨ÖÆ»¯µÄÉî¶ÈÉñ¾­ÍøÂç¡£

MinervaÔÚϵͳÉè¼ÆÉÏʹÓ÷ֲãµÄÉè¼ÆÔ­Ôò£¬½«¡°ËãµÄ¿ì¡±ÕâÒ»¶ÔÓÚϵͳµ×²ãµÄÐèÇóºÍ¡°ºÃÓá±ÕâÒ»¶ÔÓÚϵͳ½Ó¿ÚµÄÐèÇó¸ôÀ뿪À´£¬Èçͼ3Ëùʾ¡£ÔÚ½Ó¿ÚÉÏ£¬ÎÒÃÇÌṩÀàËÆnumpyµÄÓû§½Ó¿Ú£¬Á¦Í¼×öµ½ÓѺò¢ÇÒÄܳä·ÖÀûÓÃPythonºÍnumpyÉçÇøÒÑÓеÄËã·¨¿â¡£ÔڵײãÉÏ£¬ÎÒÃDzÉÓÃÊý¾ÝÁ÷(Dataflow)¼ÆËãÒýÇæ¡£ÆäÌìÈ»µÄ²¢ÐÐÐÔÄܹ»¸ßЧµØÍ¬Ê±µØÀûÓöàGPU½øÐмÆËã¡£Minervaͨ¹ý¶èÐÔÇóÖµ(Lazy Evaluation)£¬½«Àànumpy½Ó¿ÚºÍÊý¾ÝÁ÷ÒýÇæ½áºÏÆðÀ´£¬Ê¹µÃMinervaÄܹ»¼È¡°ºÃÓá±ÓÖ¡°ËãµÃ¿ì¡±¡£


ͼ 3 MinervaµÄ·Ö²ãÉè¼Æ

¶èÐÔÇóÖµ

Minervaͨ¹ý×Ô¼ºÊµÏÖµÄndarrayÀàÐÍÀ´Ö§³Ö³£ÓõľØÕóºÍ¶àάÏòÁ¿²Ù×÷¡£ÔÚÃüÃûºÍ²ÎÊý¸ñʽÉ϶¼¾¡Á¿ºÍnumpy±£³ÖÒ»Ö¡£Minervaͬʱ֧³Ö¶ÁÈ¡CaffeµÄÅäÖÃÎļþ²¢½øÐÐÍêÕûµÄѵÁ·¡£MinervaÌṩÁËÁ½¸öº¯ÊýÓënumpy½øÐжԽӡ£from_numpyº¯ÊýºÍto_numpyº¯ÊýÄܹ»ÔÚnumpyµÄndarrayÓëMinervaµÄÀàÐÍÖ®¼ä»¥Ïàת»»¡£Òò´Ë£¬½«MinervaºÍnumpy»ìºÏʹÓý«±äµÃ·Ç³£·½±ã¡£

Êý¾ÝÁ÷ÒýÇæºÍ¶àGPU¼ÆËã

´ÓMapreduceµ½Sparkµ½Naiad£¬Êý¾ÝÁ÷ÒýÇæÒ»Ö±ÊÇ·Ö²¼Ê½ÏµÍ³ÁìÓòÑо¿µÄÈȵ㡣Êý¾ÝÁ÷ÒýÇæµÄÌØµãÊǼǼÈÎÎñºÍÈÎÎñÖ®¼äµÄÒÀÀµ¹ØÏµ£¬È»ºó¸ù¾ÝÒÀÀµ¹ØÏµ¶ÔÈÎÎñ½øÐе÷¶È¡£Ã»ÓÐÒÀÀµµÄÈÎÎñÔò¿ÉÒÔ²¢ÐÐÖ´ÐУ¬Òò´ËÊý¾ÝÁ÷ÒýÇæ¾ßÓÐÌìÈ»µÄ²¢ÐÐÐÔ¡£ÔÚMinervaÖУ¬ÎÒÃÇÀûÓÃÊý¾ÝÁ÷µÄ˼Ï뽫Éî¶ÈѧϰËã·¨·Ö²¼µ½¶àGPUÉϽøÐмÆË㡣ÿһ¸öndarrayÔËËãÔÚMinervaÖоÍÊÇÒ»¸öÈÎÎñ£¬Minerva×ÔÉíµÄµ÷¶ÈÆ÷»á¸ù¾ÝÒÀÀµ¹ØÏµ½øÐÐÖ´ÐС£Óû§¿ÉÒÔÖ¸¶¨Ã¿¸öÈÎÎñÔÚÄĿ鿨ÉϼÆËã¡£Òò´ËÈç¹ûÁ½¸öÈÎÎñÖ®¼äûÓÐÒÀÀµ²¢ÇÒ±»·ÖÅäµ½²»Í¬GPUÉÏ£¬ÄÇÕâÁ½¸öÈÎÎñ½«Äܹ»²¢ÐÐÖ´ÐС£Í¬Ê±£¬ÓÉÓÚÊý¾ÝÁ÷µ÷¶ÈÊÇÍêÈ«Òì²½µÄ£¬¶à¿¨¼äµÄÊý¾ÝͨÐÅÒ²¿ÉÒÔºÍÆäËûÈÎÎñ²¢ÐÐÖ´ÐС£ÓÉÓÚÕâÑùµÄÉè¼Æ£¬MinervaÔڶ࿨ÉÏÄܹ»×öµ½½Ó½üÏßÐÔ¼ÓËٱȡ£´ËÍ⣬ÀûÓÃÉîÃ˵ÄParameter Server£¬Minerva¿ÉÒÔÇáËɽ«Êý¾ÝÁ÷ÍØÕ¹µ½¶à»úÉÏ£¬´Ó¶øÊµÏֶ࿨¶à»úµÄ·Ö²¼Ê½ÑµÁ·¡£


ͼ4 MinervaºÍCaffeÔÚµ¥¿¨ºÍ¶à¿¨ÉÏѵÁ·GoogLeNetµÄ±È½Ï


±í1 MinervaÔÚ²»Í¬ÍøÂçÄ£ÐͺͲ»Í¬GPUÊýÄ¿ÉϵÄѵÁ·ËÙ¶È

Êý¾ÝÁ÷ÒýÇæºÍ¶àGPU¼ÆËã

Minerva²ÉÓöèÐÔÇóÖµµÄ·½Ê½½«Àànumpy½Ó¿ÚºÍÊý¾ÝÁ÷ÒýÇæ½áºÏÆðÀ´¡£Ã¿´ÎÓû§µ÷ÓÃMinervaµÄndarrayÔËË㣬ϵͳ²¢²»Á¢¼´Ö´ÐÐÕâÒ»ÔËË㣬¶øÊǽ«ÕâÒ»ÔËËã×÷ΪÈÎÎñ£¬Òì²½µØ½»¸øµ×²ãÊý¾ÝÁ÷µ÷¶ÈÆ÷½øÐе÷¶È¡£Ö®ºó£¬Óû§µÄÏ߳̽«¼ÌÐø½øÐÐÖ´ÐУ¬²¢²»»á×èÈû¡£ÕâÒ»×ö·¨´øÀ´ÁËÐí¶àºÃ´¦£º

  • ÔÚÊý¾Ý¹æÄ£½Ï´óµÄ»úÆ÷ѧϰÈÎÎñÖУ¬ÎļþI/O×ÜÊDZȽϷ±Öصġ£¶ø¶èÐÔÇóֵʹµÃÓû§Ï߳̽øÐÐI/OµÄͬʱ£¬ÏµÍ³µ×²ãÄÜͬʱ½øÐмÆËã¡£
  • ÓÉÓÚÓû§Ï̷߳dz£ÇáÁ¿£¬Òò´ËÄܽ«¸ü¶àµÄÈÎÎñ½»¸øÏµÍ³µ×²ã¡£ÆäÖÐÏ໥ûÓÐÒÀÀµµÄÈÎÎñÔòÄܲ¢ÐÐÔËËã¡£
  • Óû§Äܹ»ÔÚ½Ó¿ÚÉϷdz£ÇáËɵØÖ¸¶¨Ã¿¸öGPUÉϵļÆËãÈÎÎñ¡£MinervaÌṩÁËset_device½Ó¿Ú£¬Æä×÷ÓÃÊÇÔÚÏÂÒ»´Îset_deviceµ÷ÓÃǰµÄÔËËã¶¼½«»áÔÚÖ¸¶¨µÄGPUÉϽøÐÐÖ´ÐС£ÓÉÓÚËùÓеÄÔËËã¶¼ÊǶèÐÔÇóÖµµÄ£¬Òò´ËÁ½´Îset_deviceºóµÄÔËËã¿ÉÒÔ¼¸ºõͬʱ½øÐе÷¶È£¬´Ó¶ø´ïµ½¶à¿¨µÄ²¢ÐС£
  • Parameter Server: һСʱѵÁ·600TÊý¾Ý

    ÉîÃ˵Ä×é¼þ²ÎÊý·þÎñÆ÷£¨Parameter Server£©¶ÔǰÊöµÄÓ¦ÓÃÌṩ·Ö²¼Ê½µÄϵͳ֧³Ö¡£ÔÚ´ó¹æÄ£»úÆ÷ѧϰӦÓÃÀѵÁ·Êý¾ÝºÍÄ£ÐͲÎÊý¾ù¿É´óµ½µ¥Ì¨»úÆ÷ÎÞ·¨´¦Àí¡£²ÎÊý·þÎñÆ÷µÄ¸ÅÄîÕýÊÇΪ½â¾ö´ËÀàÎÊÌâ¶øÌá³öµÄ¡£Èçͼ5Ëùʾ£¬²ÎÊýÒÔ·Ö²¼Ê½ÐÎʽ´æ´¢ÔÚÒ»×é·þÎñ½ÚµãÖУ¬ÑµÁ·Êý¾ÝÔò±»»®·Öµ½²»Í¬µÄ¼ÆËã½ÚµãÉÏ¡£ÕâÁ½×é½ÚµãÖ®¼äÊý¾ÝͨÐſɹéÄÉΪ·¢ËÍ£¨push£©ºÍ»ñÈ¡£¨pull£©Á½ÖÖ¡£ÀýÈ磬һ¸ö¼ÆËã½Úµã¼È¿ÉÒÔ°Ñ×Ô¼º¼ÆËãµÃµ½µÄ½á¹û·¢Ë͵½ËùÓзþÎñ½ÚµãÉÏ£¬Ò²¿ÉÒÔ´Ó·þÎñ½ÚµãÉÏ»ñÈ¡ÐÂÄ£ÐͲÎÊý¡£ÔÚʵ¼Ê²¿Êðʱ£¬Í¨³£Óжà×鼯Ëã½ÚµãÖ´Ðв»Í¬µÄÈÎÎñ£¬ÉõÖÁÊǸüÐÂͬÑùÒ»×éÄ£ÐͲÎÊý¡£


    ͼ5 ²ÎÊý·þÎñÆ÷¼Ü¹¹

    ÔÚ¼¼ÊõÉÏ£¬²ÎÊý·þÎñÆ÷Ö÷Òª½â¾öÈçÏÂÁ½¸ö·Ö²¼Ê½ÏµÍ³µÄ¼¼ÊõÄѵ㡣

    ½µµÍÍøÂçͨÐÅ¿ªÏú

    ÔÚ·Ö²¼Ê½ÏµÍ³ÖУ¬»úÆ÷ͨ¹ýÍøÂçͨÐÅÀ´¹²Í¬Íê³ÉÈÎÎñ¡£µ«²»ÂÛÊǰ´ÕÕÑÓʱ»¹Êǰ´ÕÕ´ø¿í£¬ÍøÂçͨÐÅËٶȶ¼ÊDZ¾µØÄÚ´æ¶ÁдµÄÊýÊ®»òÊý°Ù·ÖÖ®Ò»¡£½â¾öÍøÂçͨÐÅÆ¿¾±ÊÇÉè¼Æ·Ö²¼Ê½ÏµÍ³µÄ¹Ø¼ü¡£

    Òì²½Ö´ÐÐ

    ÔÚÒ»°ãµÄ»úÆ÷ѧϰËã·¨ÖУ¬¼ÆËã½ÚµãµÄÿһÂÖµü´ú¿ÉÒÔ»®·Ö³ÉCPU·±Ã¦ºÍÍøÂ緱æÕâÁ½¸ö½×¶Î¡£Ç°Õßͨ³£ÊÇÔÚ¼ÆËãÌݶȲ¿·Ö£¬ºóÕßÔòÊÇÔÚ´«ÊäÌݶÈÊý¾ÝºÍÄ£ÐͲÎÊý²¿·Ö¡£´®ÐÐÖ´ÐÐÕâÁ½¸ö½×¶Î½«µ¼ÖÂCPUºÍÍøÂç×ÜÓÐÒ»¸ö´¦ÓÚ¿ÕÏÐ״̬¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÒì²½Ö´ÐÐÀ´ÌáÉý×ÊÔ´ÀûÓÃÂÊ¡£ÀýÈ磬µ±Ç°Ò»ÂÖµü´úµÄCPU·±Ã¦½×¶ÎÍê³Éʱ£¬¿ÉÖ±½Ó¿ªÊ¼½øÐÐÏÂÒ»ÂÖµÄCPU·±Ã¦½×¶Î£¬¶ø²»Êǵȵ½Ç°Ò»ÂÖµÄÍøÂ緱æ½×¶ÎÍê³É¡£ÕâÀïÎÒÃÇÒþ²ØÁËÍøÂçͨÐÅ¿ªÏú£¬´Ó¶ø½«CPUµÄʹÓÃÂÊ×î´ó»¯¡£µ«ÓÉÓÚûÓеȴýǰһÂÖ¸üеÄÄ£Ðͱ»È¡»Ø£¬»áµ¼ÖÂÕâ¸ö¼ÆËã½ÚµãµÄÄ£ÐͲÎÊýÓë·þÎñ½Úµã´¦×îеIJÎÊý²»Ò»Ö£¬ÓÉ´Ë¿ÉÄÜ»áÓ°ÏìË㷨ЧÂÊ¡£

    Áé»îµÄÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍ

    Êý¾Ý²»Ò»ÖÂÐÔÐèÒª¿¼ÂÇÌá¸ßË㷨ЧÂʺͷ¢»ÓϵͳÐÔÄÜÖ®¼äµÄƽºâ¡£×îºÃµÄƽºâµãÈ¡¾öÓںܶàÒòËØ£¬ÀýÈçCPU¼ÆËãÄÜÁ¦¡¢ÍøÂç´ø¿íºÍËã·¨µÄÌØÐÔ¡£ÎÒÃÇ·¢ÏÖºÜÄÑÓÐij¸öÒ»ÖÂÐÔÄ£ÐÍÄÜÊʺÏËùÓеĻúÆ÷ѧϰÎÊÌ⡣Ϊ´Ë£¬²ÎÊý·þÎñÆ÷ÌṩÁËÒ»¸öÁé»îµÄ·½Ê½ÓÃÓÚ±í´ïÒ»ÖÂÐÔÄ£ÐÍ¡£

    Ê×ÏÈÖ´ÐгÌÐò±»»®·ÖΪ¶à¸öÈÎÎñ¡£Ò»¸öÈÎÎñÀàËÆÓÚÒ»¸öÔ¶³Ì¹ý³Ìµ÷Óã¨Remote Procedure Call, RPC£©£¬¿ÉÒÔÊÇÒ»¸ö·¢ËÍ»òÒ»¸ö»ñÈ¡£¬»òÕßÈÎÒâÒ»¸öÓû§¶¨ÒåµÄº¯Êý£¬ÀýÈçÒ»ÂÖµü´ú¡£ÈÎÎñÖ®¼ä¿ÉÒÔ²¢ÐÐÖ´ÐУ¬Ò²¿ÉÒÔ¼ÓÈëÒÀÀµ¹ØÏµµÄ¿ØÖÆÂß¼­£¬À´´®ÐÐÖ´ÐУ¬ÒÔÈ·±£Êý¾ÝµÄÒ»ÖÂÐÔ¡£ËùÓÐÕâЩÈÎÎñºÍÒÀÀµ¹ØÏµ×é³ÉÒ»¸öÓÐÏòÎÞ»·Í¼£¬´Ó¶ø¶¨ÒåÒ»¸öÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍ£¬Èçͼ6Ëùʾ¡£


    ͼ6 ʹÓÃÓÐÏòÎÞ»·Í¼À´¶¨ÒåÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍ

    Èçͼ7Ëùʾ£¬ÎÒÃÇ¿ÉÒÔÔÚÏàÁÚÈÎÎñÖ®¼ä¼ÓÈëÒÀÀµ¹ØÏµµÄ¿ØÖÆÂß¼­£¬µÃµ½Ë³ÐòÒ»ÖÂÐÔÄ£ÐÍ£¬»òÕß²»ÒýÈëÈκÎÒÀÀµ¹ØÏµµÄÂß¼­¿ØÖÆ£¬µÃµ½×îÖÕÒ»ÖÂÐÔÄ£ÐÍ¡£ÔÚÕâÁ½¸ö¼«¶ËÄ£ÐÍÖ®¼äÊÇÊÜÏÞÑÓʱģÐÍ¡£ÕâÀïÒ»¸öÈÎÎñ¿ÉÒÔºÍ×î½üµÄÊý¸öÈÎÎñ²¢ÐÐÖ´ÐУ¬µ«±ØÐëµÈ´ý³¬¹ý×î´óÑÓʱµÄδÍê³ÉÈÎÎñµÄÍê³É¡£ÎÒÃÇͨ¹ýʹÓÃ×î´óÔÊÐíµÄÑÓʱÀ´¿ØÖÆ»úÆ÷ÔÚ´Ë֮ǰµÄÊý¾Ý²»Ò»ÖÂÐÔ¡£


    ͼ7 ²»Í¬Êý¾ÝÒ»ÖÂÐÔÏÂÔËÐÐʱ¼ä

    ͼ8չʾÁËÔÚ¹ã¸æµã»÷Ô¤²âÖУ¨Ï¸½ÚÃèÊö¼ûºóÎÄ£©£¬²»Í¬µÄÒ»ÖÂÐÔÄ£ÐÍϵõ½Í¬Ñù¾«¶È²ÎÊýÄ£ÐÍËù»¨·ÑµÄʱ¼ä¡£µ±Ê¹ÓÃ˳ÐòÒ»ÖÂÐÔÄ£ÐÍʱ£¨0ÑÓʱ£©£¬Ò»°ëµÄÔËÐÐʱ¼ä»¨·ÑÔڵȴýÉÏ¡£µ±ÎÒÃÇÖð½¥·ÅËÉÊý¾ÝÒ»ÖÂÐÔÒªÇ󣬿ÉÒÔ¿´µ½¼ÆËãʱ¼äËæ×Å×î´óÔÊÐíµÄÑÓʱ»ºÂýÉÏÉý£¬ÕâÊÇÓÉÓÚÊý¾ÝÒ»ÖÂÐÔ¼õÂýÁËËã·¨µÄÊÕÁ²ËÙ¶È£¬µ«ÓÉÓÚÄÜÓÐЧµØÒþ²ØÍøÂçͨÐÅ¿ªÏú£¬´Ó¶øÃ÷ÏÔ½µµÍÁ˵ȴýʱ¼ä¡£ÔÚÕâ¸öʵÑéÀ×î¼ÑƽºâµãÊÇ×î´óÑÓʱΪ8¡£

    Ñ¡ÔñÐÔͨÐÅ

    ÈÎÎñÖ®¼äµÄÒÀÀµ¹ØÏµ¿ÉÒÔ¿ØÖÆÈÎÎñ¼äµÄÊý¾ÝÒ»ÖÂÐÔ¡£¶øÔÚÒ»¸öÈÎÎñÄÚ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý×Ô¶¨Òå¹ýÂËÆ÷À´Ï¸Á£¶ÈµØ¿ØÖÆÊý¾ÝÒ»ÖÂÐÔ¡£ÕâÊÇÒòΪһ¸ö½Úµãͨ³£ÔÚÒ»¸öÈÎÎñÄÚÓÐÊý°Ù»òÕ߸ü¶à¶ÔµÄ¹Ø¼ü×ÖºÍÖµ(key, value)ÐèҪͨÐÅ´«Ê䣬¹ýÂËÆ÷¶ÔÕâЩ¹Ø¼ü×ÖºÍÖµ½øÐÐÑ¡ÔñÐÔµÄͨÐÅ¡£ÀýÈçÎÒÃÇ¿ÉÒÔ½«½ÏÉÏ´Îͬ²½¸Ä±äֵСÓÚij¸öÌØ¶¨ãÐÖµµÄ¹Ø¼ü×ÖºÍÖµ¹ýÂ˵ô¡£ÔÙÈ磬ÎÒÃÇÉè¼ÆÁËÒ»¸ö»ùÓÚËã·¨×îÓÅÌõ¼þµÄKKT¹ýÂËÆ÷£¬Ëü¿É¹ýÂ˵ô¶Ô²ÎÊýÓ°ÏìÈõµÄÌݶȡ£ÎÒÃÇÔÚʵ¼ÊÖÐʹÓÃÁËÕâ¸ö¹ýÂËÆ÷£¬¿ÉÒÔ¹ýÂ˵ôÖÁÉÙ95%µÄÌݶÈÖµ£¬´Ó¶ø½ÚÔ¼ÁË´óÁ¿´ø¿í¡£

    »º³åÓëѹËõ

    ÎÒÃÇΪ²ÎÊý·þÎñÆ÷Éè¼ÆÁË»ùÓÚÇø¶ÎµÄ·¢ËͺͻñȡͨÐŽӿڣ¬¼ÈÄÜÁé»îµØÂú×ã»úÆ÷ѧϰËã·¨µÄͨÐÅÐèÇó£¬ÓÖ¾¡¿ÉÄܵؽøÐÐÅúÁ¿Í¨ÐÅ¡£ÔÚѵÁ·¹ý³ÌÖУ¬Í¨³£ÊÇÖµ·¢Éú±ä»¯£¬¶ø¹Ø¼ü×Ö²»±ä¡£Òò´Ë¿ÉÒÔÈ÷¢ËͺͽÓÊÕË«·½»º³å¹Ø¼ü×Ö£¬±ÜÃâÖØ¸´·¢ËÍ¡£´ËÍ⣬¿¼Âǵ½Ëã·¨»òÕß×Ô¶¨Òå¹ýÂËÆ÷µÄÌØÐÔ£¬ÕâЩͨÐÅËù´«ÊäµÄÊýÖµÀï¿ÉÄÜ´æÔÚ´óÁ¿¡°0¡±£¬Òò´Ë¿ÉÒÔÀûÓÃÊý¾ÝѹËõÓÐЧ¼õÉÙͨÐÅÁ¿¡£

    ÈÝÔÖ

    ´ó¹æÄ£»úÆ÷ѧϰÈÎÎñͨ³£ÐèÒª´óÁ¿»úÆ÷ÇÒºÄʱ³¤£¬ÔËÐйý³ÌÖÐÈÝÒ×·¢Éú»úÆ÷¹ÊÕÏ»ò±»ÆäËûÓÅÏȼ¶¸ßµÄÈÎÎñÇÀÕ¼×ÊÔ´¡£Îª´Ë£¬ÎÒÃÇÊÕ¼¯ÁËÒ»¸öÊý¾ÝÖÐÐÄÖÐ3¸öÔÂÄÚËùÓеĻúÆ÷ѧϰÈÎÎñ¡£¸ù¾Ý¡°»úÆ÷Êý¡ÁÓÃʱ¡±µÄÖµ£¬ÎÒÃǽ«ÈÎÎñ·Ö³É´óÖÐСÈýÀ࣬²¢·¢ÏÖСÈÎÎñ£¨100»úÆ÷ʱ£©µÄƽ¾ùʧ°ÜÂÊÊÇ6.5%£»ÖÐÈÎÎñ£¨1000»úÆ÷ʱ£©µÄʧ°ÜÂʳ¬¹ýÁË13%£»¶ø¶ÔÓÚ´óÈÎÎñ£¨1Íò»úÆ÷ʱ£©£¬Ã¿4¸öÖÐÖÁÉÙÓÐ1¸ö»áÖ´ÐÐʧ°Ü¡£Òò´Ë»úÆ÷ѧϰϵͳ±ØÐë¾ß±¸ÈÝÔÖ¹¦ÄÜ¡£

    ²ÎÊý·þÎñÆ÷ÖзþÎñ½ÚµãºÍ¼ÆËã½Úµã²ÉÓò»Í¬µÄÈÝÔÖ²ßÂÔ¡£¶ÔÓÚ¼ÆËã½Úµã£¬¿ÉÒÔ²ÉÓÃÖØÆôÈÎÎñ£¬¶ªÆúʧ°Ü½Úµã£¬»òÕ߯äËûÓëËã·¨Ïà¹ØµÄ²ßÂÔ¡£¶ø·þÎñ½Úµãά»¤µÄÊÇÈ«¾Ö²ÎÊý£¬ÈôÊý¾Ý¶ªÊ§ºÍÏÂÏß»áÑÏÖØÓ°ÏìÓ¦ÓõÄÔËÐУ¬Òò´Ë¶ÔÆäÊý¾ÝÒ»ÖÂÐԺͻָ´Ê±Ð§ÐÔÒªÇó¸ü¸ß¡£

    ²ÎÊý·þÎñÆ÷ÖзþÎñ½ÚµãµÄÈÝÔÖ²ÉÓõÄÊÇÒ»ÖÂÐÔ¹þÏ£ºÍÁ´±¸·Ý¡£·þÎñ½ÚµãÔڴ洢ģÐͲÎÊýʱ£¬Í¨¹ýÒ»ÖÂÐÔ¹þϣЭÒéά»¤Ò»¶Î»òÕßÊý¶Î²ÎÊý¡£Õâ¸öЭÒéÓÃÓÚÈ·±£µ±ÓзþÎñ½Úµã·¢Éú±ä»¯Ê±£¬Ö»ÓÐά»¤ÏàÁÚ²ÎÊý¶ÎµÄ·þÎñ½Úµã»áÊܵ½Ó°Ï졣ÿ¸ö·þÎñ½Úµãά»¤µÄ²ÎÊýͬʱ»áÔÚÊý¸öÆäËû·þÎñ½ÚµãÉϱ¸·Ý¡£µ±Ò»¸ö·þÎñ½ÚµãÊÕµ½À´×Ô¼ÆËã½ÚµãµÄÊý¾Ýʱ£¬Ëü»áÏȽ«´ËÊý¾Ý±¸·Ýµ½Æä±¸·Ý½ÚµãÉÏ£¬È»ºóÔÙ֪ͨ¼ÆËã½Úµã²Ù×÷Íê³É¡£ÖмäµÄÈκÎʧ°Ü¶¼»áµ¼ÖÂÕâ´Î·¢ËÍʧ°Ü£¬µ«²»»áÔì³ÉÊý¾ÝµÄ²»Ò»Ö¡£

    Á´±¸·ÝÊÊÓÃÓÚÈκλúÆ÷ѧϰËã·¨£¬µ«»áÊ¹ÍøÂçͨÐÅÁ¿³É±¶Ôö³¤£¬´Ó¶ø¿ÉÄÜÐγÉÐÔÄÜÆ¿¾±¡£¶ÔÓÚijЩËã·¨£¬ÎÒÃÇ¿ÉÒÔ²ÉÓÃÏȾۺÏÔÙ±¸·ÝµÄ²ßÂÔÀ´¼õÉÙͨÐÅ¡£ÀýÈ磬ÔÚÌݶÈϽµËã·¨Àÿ¸ö·þÎñ½ÚµãÏȾۺÏÀ´×ÔËùÓмÆËã½ÚµãµÄÌݶȣ¬Ö®ºóÔÙ¸üÐÂÄ£ÐͲÎÊý£¬Òò´Ë¿ÉÒÔÖ»±¸·Ý¾ÛºÏºóµÄÌݶȶø·ÇÀ´×Ôÿ¸ö¼ÆËã½ÚµãµÄÌݶȡ£¾ÛºÏ¿ÉÒÔÓÐЧ¼õÉÙ±¸·ÝËùÐèͨÐÅÁ¿£¬µ«¾ÛºÏ»áʹµÃͨÐŵÄÑÓ³ÙÔö¼Ó¡£²»¹ýÕâ¿ÉÒÔͨ¹ýÇ°ÃæÃèÊöµÄÒì²½Ö´ÐÐÀ´ÓÐЧµØÒþ²Ø¡£

    ÔÚʵÏÖ¾ÛºÏÁ´±¸·Ýʱ£¬ÎÒÃÇ¿ÉÒÔʹÓÃÏòÁ¿ÖÓ(vector clock)À´¼Ç¼ÊÕµ½ÁËÄÄЩ½ÚµãµÄÊý¾Ý¡£ÏòÁ¿ÖÓÔÊÐíÎÒÃÇ׼ȷ¶¨Î»Î´Íê³ÉµÄ½Úµã£¬´Ó¶ø¶Ô½Úµã±ä¸ü´øÀ´µÄÓ°Ïì½øÐÐ×îС»¯¡£ÓÉÓÚ²ÎÊý·þÎñÆ÷µÄͨÐŽӿÚÊÇ»ùÓÚÇø¶Î·¢Ë͵ģ¬ËùÓÐÇø¶ÎÄڵĹؼü×Ö¿ÉÒÔ¹²Ïíͬһ¸öÏòÁ¿ÖÓÀ´Ñ¹ËõÆä´æ´¢¿ªÏú¡£


    ͼ8 Èý¸öϵͳÔÚѵÁ·µÃµ½Í¬Ñù¾«¶ÈµÄÄ£ÐÍʱËù¸÷»¨·ÑµÄʱ¼ä

    ²ÎÊý·þÎñÆ÷²»½öΪÉîÃËÆäËû×é¼þÌṩ·Ö²¼Ê½Ö§³Ö£¬Ò²¿ÉÒÔÖ±½ÓÔÚÉÏÃæ¿ª·¢Ó¦Óá£ÀýÈ磬ÎÒÃÇʵÏÖÁËÒ»¸ö·Ö¿éµÄProximal GradientËã·¨À´½â¾öÏ¡ÊèµÄLogistic Regression£¬ÕâÊÇ×î³£ÓõÄÒ»¸öÏßÐÔÄ£ÐÍ£¬±»´óÁ¿µÄʹÓÃÔÚµã»÷Ô¤²âµÈ·ÖÀàÎÊÌâÖС£

    ΪÁ˲âÊÔËã·¨ÐÔÄÜ£¬ÎÒÃDzɼ¯ÁË636TBÕæÊµ¹ã¸æµã»÷Êý¾Ý£¬ÆäÖк¬ÓÐ1700ÒÚÑù±¾ºÍ650ÒÚÌØÕ÷£¬²¢Ê¹ÓÃ1000̨»úÆ÷¹²1.6ÍòºËÀ´½øÐÐѵÁ·¡£ÎÒÃÇʹÓÃÁ½¸ö·þÎñ²úÆ·µÄ˽ÓÐϵͳ£¨¾ù»ùÓÚ²ÎÊý·þÎñÆ÷¼Ü¹¹£©×÷Ϊ»ùÏß¡£Í¼8չʾµÄÊÇÕâ3¸öϵͳΪÁ˴ﵽͬÑù¾«¶ÈµÄÄ£ÐÍËù»¨·ÑµÄʱ¼ä¡£ÏµÍ³AʹÓÃÁËÀàÌݶÈϽµµÄËã·¨£¨L-BFGS£©£¬µ«ÓÉÓÚʹÓÃÁ¬ÐøÒ»ÖÂÐÔÄ£ÐÍ£¬ÓÐ30%µÄʱ¼ä»¨·ÑÔڵȴýÉÏ¡£ÏµÍ³BÔòʹÓÃÁË·Ö¿é×ø±êϽµËã·¨£¬ÓÉÓÚ±ÈϵͳAʹÓõÄËã·¨¸ü¼ÓÓÐЧ£¬Òò´ËÓÃʱ±ÈϵͳAÉÙ¡£µ«ÏµÍ³BҲʹÓÃÁ¬ÐøÒ»ÖÂÐÔÄ£ÐÍ£¬²¢ÇÒËùÐèÈ«¾Öͬ²½´ÎÊýÒª±ÈϵͳA¸ü¶à£¬ËùÒÔϵͳBµÄµÈ´ýʱ¼äÔö¼Óµ½ÁË50%ÒÔÉÏ¡£ÎÒÃÇÔÚ²ÎÊý·þÎñÆ÷ʵÏÖÁËÓëϵͳBͬÑùµÄËã·¨£¬µ«½«Ò»ÖÂÐÔÄ£ÐÍ·ÅËÉÖÁÊÜÏÞÑÓʱһÖÂÐÔÄ£ÐͲ¢Ó¦ÓÃÁËKKT¹ýÂË¡£ÓëϵͳBÏà±È£¬²ÎÊý·þÎñÆ÷ÐèÒªÂÔ¶àµÄ¼ÆËãʱ¼ä£¬µ«ÆäµÈ´ýʱ¼ä´ó·ù½µµÍ¡£ÓÉÓÚÍøÂ翪ÏúÊÇÕâ¸öËã·¨µÄÖ÷Ҫƿ¾±£¬·ÅËɵÄÒ»ÖÂÐÔÄ£ÐÍʹµÃ²ÎÊý·þÎñÆ÷µÄ×ÜÌåÓÃʱֻÊÇϵͳBµÄÒ»°ë¡£

    δÀ´¹æ»®

    ÉîÃËĿǰÒÑÓеÄ×é¼þ¸²¸ÇÈýÀà×î³£ÓõĻúÆ÷ѧϰËã·¨£¬°üÀ¨±»¹ã·ºÓÃÓÚÅÅÐòµÄGBDT£¬ÓÃÓÚµã»÷Ô¤²âµÄÏ¡ÊèÏßÐÔÄ£ÐÍ£¬ÒÔ¼°Ä¿Ç°µÄÑо¿ÈȵãÉî¶Èѧϰ¡£Î´À´ÉîÃ˽«ÖÂÁ¦ÓÚ½«ÊµÏֺͲâÊÔ¸ü¶à³£ÓõĻúÆ÷ѧϰËã·¨£¬Ä¿Ç°ÓÐÊý¸öËã·¨ÕýÔÚ¿ª·¢ÖС£ÁíÒ»·½Ã棬ÎÒÃǽ«¸üºÃµÄÈÚºÏĿǰµÄ×é¼þ£¬Ìṩ¸ü¼ÓÒ»ÖÂÐÔµÄÓû§ÌåÑé¡£ÀýÈçÎÒÃǽ«¶ÔcxxnetºÍMinerva½áºÏʹµÃÆä¼ÈÂú×ã¶ÔÐÔÄܵĿÁ¿ÌÒªÇó£¬ÓÖÄÜÌṩÁé»îµÄ¿ª·¢»·¾³¡£

    ÉîÃËÁíÒ»¸öÕýÔÚ¿ª·¢ÖеÄ×é¼þ½Ð×ö³æ¶´£¬Ëü½«´ó·ù½µµÍ°²×°ºÍ²¿Êð·Ö²¼Ê½»úÆ÷ѧϰӦÓõÄÃż÷¡£¾ßÌåÀ´Ëµ£¬³æ¶´½«¶ÔËùÓÐ×é¼þÌṩһÖµÄÊý¾ÝÁ÷Ö§³Ö£¬ÎÞÂÛÊý¾ÝÊÇÒÔÈκθñʽ´æÔÚÍøÂç¹²Ïí´ÅÅÌ£¬ÎÞÂÛHDFS»¹ÊÇAmazon S3¡£´ËÍ⣬Ëü»¹Ìṩͳһ½Å±¾À´±àÒëºÍÔËÐÐËùÓÐ×é¼þ¡£Ê¹µÃÓû§¼È¿ÉÒÔÔÚ·½±ãµÄ±¾µØ¼¯ÈºÔËÐÐÉîÃ˵ÄÈκÎÒ»¸ö·Ö²¼Ê½×é¼þ£¬ÓÖ¿ÉÒÔ½«ÈÎÎñÌá½»µ½ÈκÎÒ»¸ö°üÀ¨Amazon EC2¡¢Microsfot AzureºÍGoogle Compute EngineÔÚÄÚµÄÔÆ¼ÆËãÆ½Ì¨£¬²¢Ìṩ×Ô¶¯µÄÈÝÔÖ¹ÜÀí¡£

    Õâ¸öÏîÄ¿×î´óµÄÔ¸Íû¾ÍÊÇÄܽ«·Ö²¼Ê½»úÆ÷ѧϰµÄÃż÷½µµÍ£¬Ê¹µÃ¸ü¶à¸öÈ˺ͻú¹¹Äܹ»ÏíÊÜ´óÊý¾Ý´øÀ´µÄ±ãÀû¡£Í¬Ê±Ò²Ï£ÍûÄܶàµÄ¿ª·¢ÕßÄܼÓÈ룬ÁªºÏ´ó¼ÒµÄÁ¦Á¿Ò»Æð°ÑÕâ¸öÊÂÇé×öºÃ¡£

    ²Î¿¼ÎÄÏ×

    [1] M. Li, D. G. Andersen, J. Park, A. J. Smola, A. Amhed, V. Josi- fovski, J. Long, E. Shekita, and B. Y. Su, Scaling distributed machine learning with the parameter server, in USENIX Symposium on Operating System Design and Implementation, 2014.

    [2] M. Li, D. G. Andersen, and A. J. Smola.Communication Efficient DistributedMachine Learning with the Parameter Server.In Neural Information Processing Systems, 2014.

    [3] M. Li, ´óÊý¾Ý£ºÏµÍ³ÓöÉÏ»úÆ÷ѧϰÖйú¼ÆËã»úѧ»áͨѶ 2014 Äê 12 ÔÂ

    [4]Tianqichen, cxxnetºÍ´ó¹æÄ£Éî¶Èѧϰhttp://www.weibo.com/p/1001603821399843149639

    [5] Tianqi Chen, Tong He, Higgs Boson Discovery with Boosted Trees, Tech Report.

    [6] ºÎͨ, xgboost: ËÙ¶È¿ìЧ¹ûºÃµÄboostingÄ£ÐÍ, ͳ¼ÆÖ®¶¼http://cos.name/2015/03/xgboost/

    [7] Minjie Wang, Tianjun Xiao, Jianpeng Li, Jiaxing Zhang, Chuntao Hong, Zheng Zhang, Minerva: A Scalable and Highly Efficient Training Platform for Deep Learning, Workshop, NIPS 14

    ×÷Õß±³¾°

    Àîãå °Ù¶ÈIDLÉî¶ÈѧϰʵÑéÊÒ£¬¿¨ÄÚ»ù÷¡´óѧ

    ³ÂÌìÆæ »ªÊ¢¶Ù´óѧ

    ÍõÃô½Ý ŦԼ´óѧ

    Óà¿­ °Ù¶ÈIDLÉî¶ÈѧϰʵÑéÊÒ

    ÕÅá¿ ÉϺ£Å¦Ô¼´óѧ

       
    2727 ´Îä¯ÀÀ       30
     
    Ïà¹ØÎÄÕÂ

    ÔÆ¼ÆËãµÄ¼Ü¹¹
    ¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
    ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
    Á˽âÔÆ¼ÆËãµÄ©¶´
     
    Ïà¹ØÎĵµ

    ÔÆ¼ÆËã¼ò½é
    ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
    ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
    ÈídzÎöÔÆ¼ÆËã
     
    Ïà¹Ø¿Î³Ì

    ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
    ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
    CMMIÌåϵÓëʵ¼ù
    »ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
    ×îл¼Æ»®
    DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
    È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
    »ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
    ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
    Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
    ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

    ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
    Èí¼þ¼Ü¹¹Éè¼Æ
    ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
    ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
    ¼Ü¹¹¸¯»¯Ö®ÃÕ
    ̸ƽ̨¼´·þÎñPaaS
    Ïà¹ØÅàѵ¿Î³Ì

    ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
    Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

    ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
    ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
    ijÑз¢ÖÐÐÄ Openstackʵ¼ù
    ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
    ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
    ÔÆ¼ÆËãÓëWindows AzureÅàѵ
    ±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ