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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½»úÆ÷ѧϰƽ̨¼Ü¹¹Éè¼Æ
 
×÷ÕߣºSanders
  2416  次浏览      29
 2021-6-25 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËȫջ»úÆ÷ѧϰƽ̨¡¢¹Ø¼ü¼Ü¹¹ÒòËØ¡¢¼Ü¹¹Éè¼Æ¡¢Hadoop¼¯³É¡¢ÌØÕ÷´¦ÀíPipelineµÈµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Óû§Êý¾Ý´ó¹æÄ£»ýÀÛ¡¢Óû§ÌåÑéÐèÇóÉý¼¶¡¢ËãÁ¦¸ïкͼÆËãÄ£Ð͵ÄÑݽøÕâÈý´óºËÐÄÒªËØ¼°ÆäÏ໥×÷ÓóÉΪÏÖÔÚºÍδÀ´»ùÓÚÍøÂ绥ÁªÓû§»î¶¯µÄÖ÷Òª×é³É²¿·Ö¡£»úÆ÷ѧϰƽ̨×÷ΪʹÊý¾Ý¡¢¼ÆËãºÍÓû§ÌåÑéÈýÕßÏ໥×÷ÓõĹؼü»ù´¡ÉèÊ©·¢»Ó×Å×÷Óá£

Êý¾Ý

Óû§ÔÚAPPÉÏÿ¸öµã»÷£¬»®¹ý£¬´ÓÒ»¸öAPPÇл»µ½ÁíÒ»APP£¬ÔÚÿ¸öÒ³ÃæµÄÍ£Áô£¬ÉõÖÁä¯ÀÀµÄ×¢ÒâÁ¦ºÍËÙ¶È£»ÆÁÄ»¡¢µç³Ø¡¢GPS¶¨Î»¡¢Ô˶¯´«¸ÐÆ÷......µÈÉ豸µÄÔËÐÐÊý¾Ý¡£ÈËÃǵĸ÷ÖÖÊý¾ÝÎÞʱ²»¿ÌµÄ±»¼Ç¼¡¢´æ´¢ºÍ¼ÆËã¡£

Êý¾ÝµÄÓÃ;Ҳ´ÓÊÂÎñ½»Òס¢Í³¼Æ·ÖÎöµ½ÌåÑéÓÅ»¯½øÐÐÁËÒ»¸öÍêÕûµÄÑݽøµü´ú¡£

ËãÁ¦&¼ÆËãÄ£ÐÍ

´Óµ¥ºËCPUµ½HPC£¬ÔÙµ½»ùÓÚ΢Äں˵ÄGPU£¬Íâ´æºÍÄÚ´æÈÝÁ¿ºÍËٶȵIJ»¶ÏÔö³¤£¬ÍòÕ×ÍøÂç¡¢InfiniBand¡¢RDMAÍøÂç¼¼ÊõµÄ·¢Õ¹ºÍÓ¦Óá£ÎÒÃÇ×ß¹ýµÄ¶Ì¶ÌÊýÊ®ÄêÖУ¬ËãÁ¦µÄ¸ïÐÂÒѾ­ÊÇÓкܴóµÄ±ä»¯£¬Í¬Ê±ÊÊÅäÓÚ¼ÆËãÓ²¼þµÄеļÆËãÄ£Ð͵ķ¢Õ¹£º´Ó·Ö²¼Ê½µÄRPC£¬µ½»ùÓÚµÍI/O³É±¾µÄMapReduce£¬·¢Õ¹µ½GPUµÄ¾ØÕóÔËËãµÈ£¬¼ÆËãÄ£ÐÍÒ²ÔÚÓ°Ïì×ÅÈí¼þ¿ª·¢µÄ±ä¸ï¡£

Data Computing Revolution

Óû§ÌåÑé

×ʼÓû§ÊÇÔÚ»ùÓÚÃüÁîÐÐ/×ÀÃæ½øÐÐÖ¸ÁîÐÔ½»»¥£¬ËæºóÃÅ»§Ê±´úÊÇ»ùÓÚÀàÄ¿×éÖ¯µÄÐÅÏ¢ä¯ÀÀ£¬ËÑË÷ÒýÇæ¸øÎÒÃÇ´øÀ´µÄÊÇÓû§Ö÷¶¯ÐÅÏ¢¼ìË÷ÌåÑ飬¶ø½ñ¸÷ÖÖFeed´óÐÐÆäµÀ¡£Óû§ÔÚ¡°ÀÁ¡±µÄµÀ·ÉÏһ·Ïòǰ£¬Óû§²ÎÓëÐÅÏ¢½»»¥¸ü¹ã¡¢¸üÉÐÅÏ¢»ñÈ¡¸ü¼Ó¼òµ¥¸ßЧ¡£

Óû§¡¢Êý¾ÝºÍ¼ÆËãÕýÔÚÒÔǰËùδÓеij̶ȲÎÓë²¢¼ÓËÙÖØ¹¹ÈËÀàÉú»î·½Ê½¡£

ȫջ»úÆ÷ѧϰƽ̨

Ò»¸öÁ¼ºÃµÄ»úÆ÷ѧϰƽ̨²úÆ·ÐèÒªÂú×ãÕû¸öÊý¾Ý¿ÆÑ§µÄÍêÕûÉúÃüÖÜÆÚµÄ¸÷¸ö»·½Ú¡£ÔÚ²úÆ·Éè¼Æ·½ÃæÐèÒª¿¼Âǵ½£º

ȫջÓû§ÌåÑé

Óû§Êý¾Ý¿ÆÑ§µÄËùÓлÐèÒªÔÚÒ»¸ö²úÆ·ÖÐÎÞ·ìÇÒÎÞ²î±ðÌåÑ鵨Íê³É£¬ÕâÊǽâ·ÅÊý¾Ý¿ÆÑ§¼ÒÉú²úÁ¦£¬·þÎñÊý¾Ý¿ÆÑ§¼Ò¾Û½¹ÓÚÆäºËÐŤ×÷µÄ»ù´¡

¹¤³ÌÄÜÁ¦ºÍÊý¾Ý¿ÆÑ§½âñî

Íê³ÉÒ»¸öÍêÕûµÄÊý¾Ý½ÓÈë¡¢ÌØÕ÷´¦Àí¡¢Ä£ÐÍѵÁ·ÓÅ»¯¼°Ä£ÐÍÉÏÏß·þÎñµÄÕûÌ幤×÷£¬ÓÈÆäÔÚÃæÏò´ó¹æÄ£/³¬´ó¹æÄ£Êý¾ÝºÍÄ£Ð͵ÄÇé¿öÏ£¬Êý¾Ý´æ´¢¸ñʽ£¬¶à»ú¶à¿¨Ð­Í¬¼ÆË㣬×ÊÔ´µ÷¶È¹ÜÀí£¬Ä£Ð͵¯ÐÔÉìËõµÈ¹¤³Ì»¯¹¤×÷ÊDZز»¿ÉÉٵġ£ÈÃÓû§¶ÔÎÞ¸ÐÖª»òÕßÌṩÒ×ÓõÄ×Ô¶¨ÒåÍê³É¶Ô¸´ÔÓ¹¤³ÌµÄÓ¦ÓÃ

¿ª·ÅÐÔ

ͨ³£Ò»¸öÍŶÓÖеÄÊý¾Ý¿ÆÑ§¾ßÓв»Í¬µÄ¼¼Êõ±³¾°£¬²»Í¬µÄ¼ÆËã¿ò¼ÜÓÐÆäÌØ¶¨£¬Í¨ÓõĻúÆ÷Ñ§Ï°Æ½Ì¨ÃæÏòµÄ³¡¾°ºÍÈÎÎñ¾ßÓжàÑùÐÔ£»Æ½Ì¨Òª¶Ô±ä»¯¿ª·¢£¬ÒÔ¸ßЧµÄ·½Ê½Ö§³Ö²»Í¬Óû§µÄÐèÇó

Hidden Technical Debt in Machine Learning Systems

¹Ø¼ü¼Ü¹¹ÒòËØ

¹¹½¨»úÆ÷ѧϰƽ̨ÐèÒªµÄ¼¼Êõ°üÀ¨ÁË´æ´¢¡¢Í¨ÐÅ¡¢¼ÆËã¡¢·Ö²¼Ê½¡¢×ÊÔ´¹ÜÀíµÈ¼ÆËã»úÌåϵÖеĺܶ༼Êõ£¬ÔÚÏîÄ¿ÖÜÆÚ¼°³É±¾Ìõ¼þÏÂÉè¼ÆÒ»¸öÃæÏòÒµÎñÇÒ¾ßÓÐÉúÃüÁ¦µÄ»úÆ÷ѧϰƽ̨¼Ü¹¹£¬ÐèÒª¿¼ÂÇÖî¶àÒòËØ£º

ÒÅÁôϵͳ¼¯³É

ͨ³£ÔÚ×éÖ¯ÖÐÒѾ­´æÔÚÊý¾Ý´æ´¢¡¢×ÊÔ´µ÷¶ÈºÍÈÎÎñµ÷¶Èϵͳ£¬¼Ü¹¹Éè¼ÆÐèÒªÓµ±§ÕâЩÒÅÁôϵͳ¡£¶ÔÒÅÁôϵͳÁ¼ºÃµÄ¼¯³É²»½ö¿ÉÒÔÌáÉýÓû§ÌåÑ飬½µµÍϵͳ¸´Ôӳ̶ȣ¬»¹¿ÉÒÔËõ¶ÌʵÏÖÖÜÆÚ

Êý¾ÝºÍÄ£Ð͹æÄ£

Êý¾ÝÁ¿¡¢Ä£Ð͵ĸ´Ôӳ̶Ⱥ͹æÄ£ÒÔ¼°Óû§¶ÔÄ£ÐÍѵÁ·ÖÜÆÚµÄÈÝÈ̶Ⱦö¶¨Á˼¼ÊõÑ¡ÐͺͺËÐÄÄÜÁ¦µÄÉè¼Æ·½Ê½

×ÊÔ´¹ÜÀíµ÷¶È

ÒÀÍÐÓÚKubernetes»òÕßYARNÉè¼Æ×ÊÔ´¶ÓÁУ¬½øÐÐÒì¹¹×ÊÔ´¹ÜÀíµ÷¶È£¬È·±£×ÊÔ´µÄºÏÀí¸ßЧÀûÓÃ

Pipeline

Ò»·½Ãæ¶ÔÊý¾Ý½ÓÈë¡¢ÌØÕ÷¹¤³Ì¡¢ÑµÁ·¼°ÉÏÏߵȻ·½Úͨ¹ýPipeline×éÖ¯£¬Çý¶¯Êý¾ÝÔÚ²»Í¬¼ÆËã×é¼þÖÐÔËתÆðÀ´£¬ºÏÀíÀûÓÃÄÚ´æ¹²Ïí£¬±ÜÃâµÍЧI/O£¬´Ó¶øÏµÍ³ÐÔ½µµÍÊý¾Ý´¦ÀíÖÜÆÚ

Servingϵͳ

ServingÊÇÒ»¸öÏà¶Ô¶ÀÁ¢µÄ×Óϵͳ£¬ÐèÒª¿¼ÂÇE2EÔ¤²âÑÓʱ£¬µ¯ÐÔÉìËõÄÜÁ¦£¬Ä£ÐͰ汾¹ÜÀí£¬¼à¿Ø£¬A/B·ÖÁ÷µÈÄÜÁ¦£¬Ò»°ãServing¶¼ÊÇÎÞ״̬µÄ£¬ÊʺÏÓÃ΢·þÎñµÄ¼Ü¹¹À´ÊµÏÖ

Êý¾Ý´æ´¢ºÍ±íʾ

ÔÚÊý¾ÝÔ´£¬ÌØÕ÷¹¤³Ì¼°Ä£ÐÍѵÁ·½×¶ÎÊý¾Ý¿ÉÄÜÒÔ²»Í¬ÐÎʽ´æ´¢ÔÚ²»Í¬µÄ½éÖÊÉÏ£»Í¬Ê±Êý¾ÝÓÐDense»òÕßSparse²»Í¬Ìص㣬ÒÔ¼°Êý¾Ý¿ÉÄÜ´æ´¢ÔÚµ¥»ú»òÕß·Ö²¼Ê½¶à½ÚµãÉÏ¡£ÐèÒª¿¼ÂÇÊý¾Ý´æ´¢¸ñʽ£¬´æ´¢½éÖÊ£¬·Ö²¼Ê½±íʾ·½Ê½

²¢Ðл¯

²¢Ðл¯²»½ö½ö´æÔÚÓÚѵÁ·½×¶Î£¬Í¬Ñù´æÔÚÓÚÊý¾Ý·ÃÎÊ£¬ÌØÕ÷´¦ÀíÉõÖÁÔÚServing½×¶Î

¼ÆËã¼ÓËÙ

³ýÁË»ùÓÚGPUµÄCUDA¼ÓËÙ£¬ÎÒÃÇͬÑù¿ÉÒÔÔÚIntel CPUÉÏÓúÏÊʵļÆËã¿âÀ´ÊµÏÖ¼ÓËÙ

ÍøÂçͨÐÅ

ÓÈÆäÔÚѵÁ·¸´ÔÓÍøÂçµÄÇé¿öÏ£¬Í¨ÐÅ¿ÉÄÜÊÇÖ÷ÒªµÄÐÔÄÜÆ¿¾±£»ºÏÀíµÄÍøÂçÍØÆËºÍÁ¬½Ó·½Ê½£¬ÒÔ¼°²ÉÓøßЧµÄͨÐÅЭÒé»á½µµÍ¼ÆËãµÈ´ý

¼Ü¹¹Éè¼Æ

´Ë´¦ÎÒÃÇÒÔÃæÏò£º

- ´æ´¢ÔÚHDFSÉÏTB¼¶Óû§ºÍÎïÆ·Êý¾ÝѵÁ·

- ÃæÏòCTR³¡¾°µÄEmbedding+MLP½á¹¹µÄÄ£ÐÍ

- ÌṩÔÚÏßµÍÑÓʱÇҿɵ¯ÐÔÉìËõµÄÅÅÐò·þÎñ

ÕâÑùÒ»¸ö¾ßÓÐͨÓó¡¾°Õ¹¿ª»úÆ÷ѧϰƽ̨µÄ¼Ü¹¹Éè¼Æ

Hadoop¼¯³É

Êý¾ÝµÄ´«ÊäºÍ´æ´¢³É±¾ºÜ¸ß£¬ÀûÓÃÒÑÓÐHadoopÌåϵµÄÍê³É»úÆ÷ѧϰƽ̨ÖкÏÊʵÄ×é¼þ½«ÓÐЧ½µ´æ´¢ºÍ´«Êä³É±¾£¬Í¬Ê±Ò²ÔÚÒ»¶¨³Ì¶ÈÉÏÈÃÆ½Ì¨±äµÄÇáÁ¿¡£ÀûÓÃHadoop Kerberos°²È«»úÖÆ¿ÉÒÔ½«Êý¾ÝºÍ×ÊÔ´µ÷¶È»ùÓÚ×â»§¸ôÀ뿪¡£

ÔÚ¼ÆËã·½Ãæ¿ÉÒÔÓÃData LocalityÌØÐÔ½«¼ÆËãºÍÊý¾Ýµ÷¶Èµ½Í¬Ò»½áµãÉÏ£¬Òµ½çµÄTensorFlowOnSparkºÍAngel¶¼ÓÃÕâ¸ö˼·ʵÏÖHadoopÌåϵºÍ»úÆ÷ѧϰµÄ½áºÏ¡£¼òµ¥À´Ëµ¸Ã·½°¸ÊÇ£º

ͨ¹ýYARNµ÷¶ÈÌá½»Ò»¸öSpark×÷Òµ

ÔÚSparkÖе÷ÓÃforeachPartition£¬ÕâÑùÿ¸ö½áµãÉϽ«»áÔÚÄÚ´æÖгÖÓÐRDDµÄÒ»¸ö·ÖÇø

ÔÚÿ¸öWorkerÖÐͨ¹ýJNIµ÷ÓûòÕß±¾µØ½ø³ÌµÄ·½Ê½µ÷ÓÃTensorflow»òÕßTorch½øÐÐÄ£ÐͼÆËã

ÕâÑùÏ൱ÓÚSpark±ä³ÉContainer½øÐмÆËã×ÊÔ´µÄµ÷¶È£¬¶ø³ä·ÖÀûÓÃÁËÒÑÓеĴóÊý¾ÝÌåϵµÄÊý¾ÝºÍ¼ÆËãÌØÐÔ¡£

Ï¡ÊèÌØÕ÷ѹËõ&ÏòÁ¿/¾ØÕó·Ö²¼Ê½±íʾ

ÔÚ·Ö²¼Ê½»úÆ÷ѧϰ¼ÆËãÖжԷֲ¼Ê½ÏòÁ¿ºÍ¾ØÕóµÄ·Ö²¼Ê½±íʾÒÔ¼°¶ÔÏ¡ÊèÌØÕ÷µÄѹËõ´¦Àí¿ÉÒÔÌá¸ßÊý¾ÝµÄ²¢ÐмÆËã¶ÈºÍ´æ´¢Ñ¹Ëõ±È£¬SparkÖлá²ÉÓÃRowMatrix,CoordinateMatrixºÍBlockMatrixµÈ´æ´¢À´¶Ô²»Í¬ÐÎʽµÄÊý¾ÝÀàÐͽøÐоØÕó½ø±íʾ¡£

Òµ½çÒ²Óкܶà±ê×¼µÄÏ¡Êè¾ØÕóºÍ·Ö²¼Ê½¾ØÕó±íʾ·½·¨¡£

ÌØÕ÷´¦ÀíPipeline

ÔÚÌØÕ÷´¦Àí¹ý³ÌÖУ¬ÐèÒª¶ÔÀëÉ¢ºÍÁ¬ÐøµÄÌØÕ÷½øÐзÖͰ£¬±ê×¼»¯£¬Onehot±àÂëµÈÌØÕ÷´¦Àí¡£Berkeley Data Analytics StackÖеÄSparkÊǷdz£ÊÊÓÃÓÚÌØÕ÷´¦Àí£¬²ÉÓÃSpark½øÐÐÌØÕ÷´¦Àí¿ÉÒÔ°ïÎÒÃǽâ¾öÈý¸öÖ÷ÒªµÄÎÊÌ⣺

ÄÚ´æ¼ÆË㣬¼ÓËÙÌØÕ÷´¦Àí

ÓÉÓÚÌØÕ÷´¦Àí¹ý³ÌÖд󲿷ÖÇé¿ö²»ÐèÒª½øÐÐÊý¾ÝShuffle£¬ÕâÑùÎÒÃÇ¿ÉÒԺܺõÄÀûÓÃSparkÄÚ´æ¼ÆË㣬½«¶à¸öÌØÕ÷´¦ÀíÓÃSpark ML Pipeline´®ÁªÆðÀ´£¬ÕâÑù¿ÉÒÔÔÚ·Ö²¼Ê½µÄ½«¶à¸öÌØÕ÷´¦Àí»·½ÚÔÚÒ»¸öJobÖÐÍê³É¡£

Feature MapÒ»ÖÂÐÔ

PipelineÖеÄÿ¸öËã×Ó¶¼ÊÇÒ»¸öEstimator£¬ÎÒÃÇÔÚfit½×¶Î¼ÆËãÌØÕ÷µÄFeature Map(ÀýÈçOnehot±àÂëÖÐÀëÉ¢Öµ¶ÔÓ¦Index)£¬È»ºóÔÚÄ£ÐÍsave½×¶Î¶ÔFeature Map½øÐÐÐòÁл¯´æ´¢£¬ÔÚtransform½×¶Î¶ÔÌØÕ÷½øÐбàÂë¡£fitʱ¿ÉÒÔ¾¡¿ÉÄܼÓÔØÈ«Á¿Êý¾Ý£¬ÕâÑùÔÚÌØÕ÷´¦Àíʱ¾Í½µµÍûÓгöÏÖ¹ýÑù±¾Öµ³öÏֵĻúÂÊ£¬¶ÔÓÚFeature MapµÄ¸üпÉÒÔ¸ù¾ÝʵʱÐÔÒªÇó½øÐÐStream¸üлòÕßBatchÈ«Á¿¸üС£

ÌØÕ÷´¦Àí½×¶ÎÉú³ÉµÄFeature MapÒ²»áÔÚOneline½×¶Î±»¼ÓÔØ¡£

ÌØÕ÷¸ñʽ

ÔÚ½øÐÐÄ£ÐÍѵÁ·½×¶Î£¬¿ÉÄÜCSR, TFRecord»òÕ߯äËûÊý¾Ý¸ñʽ£¬¿ÉÒÔʵÏÖ×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÈÃSparkÀ´¶Áд×Ô¶¨ÒåµÄÊý¾Ý¸ñʽ¡£

Ê×ÏÈʵÏÖ×Ô¶¨ÒåFileReaderºÍOutputWriter

ÔÚ×Ô¶¨ÒåÊý¾ÝÔ´ÖÐÓÃ×Ô¶¨ÒåFileReaderºÍOutputWriterʵÏÖreadºÍwrite

def write(kryo: Kryo, out: Output): Unit = {
}
def read(kryo: Kryo, in: Input): Unit = {
}

Ê×ÏÈÔÚorg.apache.spark.sql.sources.DataSourceRegisterÖÐÌí×¢²á×Ô¶¨ÒåÊý¾ÝÔ´ÀàÐÍ

È»ºó¾Í¿ÉÒÔÏñ´¦ÀíCSV¸ñʽÊý¾ÝÒ»Ñùspark.read.format("csv")£¬´¦Àí×Ô¶¨ÒåÊý¾Ý¸ñʽ

²¢ÐмÆËã

ÔÚ´ó¹æÄ£Êý¾ÝºÍÄ£ÐÍѵÁ·µÄ³¡¾°ÖУ¬ÓÉÓÚѵÁ·Ñù±¾¹æÄ£´ó»òÕßÍøÂç²ÎÊý´ó£¬Í¨³£µ¥¸ö½Úµã²»ÄÜÍê³É¶ÔÄ£Ð͵ÄѵÁ·£¬Õâʱ¾ÍÐèÒª¶à½ÚµãЭͬµÄ·½Ê½Íê³ÉÄ£Ð͵ÄѵÁ·£¬²ÉÓ÷ֶøÖÎÖ®µÄ˼Ïë¡£Ò»°ã»áÓÐÊý¾Ý²¢ÐкÍÄ£ÐͲ¢ÐÐÁ½ÖÖ˼·À´ÊµÏÖÈÎÎñµÄ·Ö½âºÍ²¢ÐÐѵÁ·¡£

Êý¾Ý²¢ÐÐ

Ϊ²»Í¬µÄ¼ÆËã½Úµã±£Áôͬһ¸öÄ£Ð͵ĸ±±¾£¬Ã¿¸ö½Úµã·ÖÅäµ½²»Í¬µÄÊý¾Ý£¬Ã¿¸ö½ÚµãÔÚ±¾µØ¼ÆËã³ÖÓÐÊý¾ÝµÄÄ£ÐͲÎÊý£¬È»ºó½«ËùÓмÆËã½ÚµãµÄ¼ÆËã½á¹û°´ÕÕijÖÖ·½Ê½ºÏ²¢Éú³É×îÖÕµÄÄ£ÐÍ¡£

ÔÚÕâ¸ö¹ý³ÌÖÐÊý¾Ý²ð·ÖµÄ·½Ê½¿ÉÒÔÊÇËæ»úµÄ·½Ê½£¬Ò²¿ÉÒÔ²ÉÓÃshuffle»úÖÆ±£Ö¤Êý¾ÝÑù±¾µÄ¾ùºâ£»¶ø²ÎÊýͬ²½ºÍºÏ²¢·½Ê½Ö÷Á÷µÄÓÐParameter ServerºÍRing All-Reduce·½Ê½¡£

Parameter Server

ÔÚParameter Server¼Ü¹¹ÖУ¬¼¯ÈºÖеĽڵ㱻·ÖΪÁ½ÀࣺParameter ServerºÍWorker¡£ÆäÖÐParameter Server´æ·ÅÄ£Ð͵IJÎÊý£¬¶øWorker¸ºÔð¼ÆËã²ÎÊýµÄÌݶȡ£ÔÚÿ¸öµü´ú¹ý³Ì£¬Worker´ÓParameter SeverÖлñµÃ²ÎÊý£¬È»ºó½«¼ÆËãµÄÌݶȷµ»Ø¸øParameter Server£¬Parameter Server¾ÛºÏ´ÓWorker´«»ØµÄÌݶȣ¬È»ºó¸üвÎÊý£¬²¢½«ÐµIJÎÊý¹ã²¥¸øWorker¡£

ÆäÖвÎÊýÔÚParameter ServerºÍWorkerÖ®¼äµÄͬ²½¼È¿ÉÒÔÊÇͬ²½µÄ(Synchronous)£¬Ò²¿ÉÒÔÊÇÒì²½µÄ(Asynchronous)¡£

Ring AllReduce

ÔÚRing-Allreduce¼Ü¹¹ÖУ¬¸÷¸ö½Úµã¶¼ÊÇWorker£¬Ã»ÓÐÖÐÐĽڵãÀ´¾ÛºÏËùÓÐWorker¼ÆËãµÄÌݶȡ£ÔÚÒ»¸öµü´ú¹ý³Ì£¬Ã¿¸öWorkerÍê³É×Ô¼ºµÄmini-batchѵÁ·£¬¼ÆËã³öÌݶȣ¬²¢½«Ìݶȴ«µÝ¸ø»·ÖеÄÏÂÒ»¸öWorker£¬Í¬Ê±ËüÒ²½ÓÊÕ´ÓÉÏÒ»¸öWorkerµÄÌݶȡ£¶ÔÓÚÒ»¸ö°üº¬N¸öWorkerµÄ»·£¬¸÷¸öWorkerÐèÒªÊÕµ½ÆäËüN-1¸öworkerµÄÌݶȺó¾Í¿ÉÒÔ¸üÐÂÄ£ÐͲÎÊý¡£

Ä£ÐͲ¢ÐÐ

Èç¹ûѵÁ·Ä£Ð͵ĹæÄ£ºÜ´ó£¬²»ÄÜÔÚÿ¸ö¼ÆËã½ÚµãµÄ±¾µØÄÚ´æÖÐÍêÈ«´æ´¢£¬ÄÇô¾Í¿ÉÒÔ¶ÔÄ£ÐͽøÐл®·Ö£¬È»ºóÿ¸ö¼ÆËã½Úµã¸ºÔð¶Ô±¾µØ¾Ö²¿Ä£Ð͵IJÎÊý½øÐиüС£Í¨³£¶ÔÏßÐÔ¿É·ÖµÄÄ£ÐͺͷÇÏßÐÔÄ£ÐÍ£¨Éñ¾­ÍøÂ磩£¬Ä£ÐͲ¢Ðеķ½·¨Ò²»áÓÐËù²»Í¬¡£

ÏßÐÔÄ£ÐÍ

°ÑÄ£ÐͺÍÊý¾Ý°´ÕÕÌØÕ÷ά¶È½øÐл®·Ö£¬·ÖÅäµ½²»Í¬µÄ¼ÆËã½ÚµãÉÏ£¬ÔÚÿ¸ö¼ÆËã½ÚµãÉϲÉÓÃÌݶÈϽµÓÅ»¯Ëã·¨½øÐÐÓÅ»¯£¬¾Ö²¿µÄÄ£ÐͲÎÊý¼ÆËã²»ÒÀÀµÓÚÆäËûά¶ÈµÄÌØÕ÷£¬Ïà¶Ô¶ÀÁ¢£¬ÄÇô¾Í²»ÐèÒªÓëÆäËû½Úµã½øÐвÎÊý½»»»¡£

ÔÚAngelµÄʵÏÖÖоÍÖ÷ҪʹÓÃÄ£ÐͲ¢Ðеķ½·¨Ê¹ÓÃModelPartitionerʵÏÖÄ£ÐÍ·Ö²¼Ê½¼ÆËã¡£

Éñ¾­ÍøÂç

Éñ¾­ÍøÂçÖÐÄ£Ð;ßÓкÜÇ¿µÄ·ÇÏßÐÔÐÔ£¬²ÎÊýÖ®¼äÓнÏÇ¿µÄ¹ØÁªÒÀÀµ£¬Í¨³£¿ÉÒÔºáÏò°´²ã»®·Ö»ò×ÝÏò¿ç²ã»®·Ö½øÐÐÍøÂç»®·Ö¡£Ã¿¸ö¼ÆËã½Úµã¼ÆËã¾Ö²¿²ÎÊýÈ»ºóͨ¹ýRPC½«²ÎÊý´«µÝµ½ÆäËû½ÚµãÉϽøÐвÎÊýµÄºÏ²¢£¬¸´ÔÓµÄÉñ¾­ÍøÂçÐèÒª½Ï¸ßµÄÍøÂç´ø¿íÀ´Íê³É½ÚµãÖ®¼äµÄͨÐÅ¡£

CTRÄ£ÐͲ¢ÐÐѵÁ·

ͨ³£µäÐÍÉî¶ÈCTRÄ£ÐÍÊÇEmbedding Layer + MLP½á¹¹£»¶ÔÓÚ10ÒÚÌØÕ÷£¬Embedding SizeΪ16µÄCTRÄ£ÐÍÀ´ËµEmbeddingÄ£Ð͵ĴóСΪ10^9 * 16 * 4B ¡Ö 60GB£¬¶øMLPµÄ´óСֻÓм¸¸öMB¡£ÑµÁ·EmbeddingÍøÂçµÄЧÂʽ«»áÊÇCTRÄ£ÐÍѵÁ·µÄÆ¿¾±ËùÔÚ¡£Èç¹ûÔÚÍøÂçÖд«ÊäEmbeddingÄ£ÐͲÎÊý£¬Õû¸öʱÑӺͳɱ¾½«ÊDz»¿É½ÓÊܵġ£ÈçºÎ½â¾öÄ£Ð͵Ĵ洢¼°¼õÉÙÍøÂ·´«ÊäÊǹؼü£¬»ªÎªMindsporeºÍNVIDIAHugeCTR·Ö±ð¸ø³öHost-DeviceºÍEmbedding HashtableµÄ·½°¸¡£

Host-Device

Ïêϸ½éÉܲο¼£¬¸ù¾ÝÄ£ÐÍ´óС£¬Ñ¡Ôñ½«Ä£ÐÍ·ÅÔÚDevice»òÕßHostÄÚ´æÖУ¬Device¼ÆËãÌݶȺó¸üÐÂEmbeddingÄ£ÐÍ£¬Èç¹ûÄ£ÐÍÔÚHostÄÚ´æÖУ¬Ö»ÐèÒªÔÚDeviceºÍHostÖ®¼ä½øÐÐÄڴ濽±´£¬Õâ¸öËÙ¶ÈÊÇÔ¶Ô¶´óÓÚÍøÂç´«ÊäµÄ¡£

Embedding Hash Table

HugeCTR½éÉÜÖÐÏêϸÃèÊöÆäÉè¼Æ·½°¸£ºÍ¨¹ýopen addressing hashËã·¨½«ËùÓеÄÌØÕ÷ƽ¾ùµØ·ÖÔÚËùÓÐDeviceÉÏ£¬Ã¿¸öDeviceÄÚ´æÖд洢EmbeddingµÄÒ»²¿·Ö£¬Í¨¹ýʵÏÖreduce_scatterËã×ÓʵÏÖÄ£ÐÍ´«Ê䣬all_gather½øÐÐÄ£Ðͺϲ¢¡£

ÔÚÏßServing

ÔÚʵ¼Ê³¡¾°ÖУ¬ÒµÎñ¶ÔÄ£Ð͵ÄÒªÇóÊǸ߸´ÔÓ£¬µÍÑÓʱ£¬´óÅúÁ¿£¬¸ßÍÌÍÂÁ¿ºÍµ¯ÐÔÉìËõ¡£

¶ÔÓÚ¸ßÍÌÍÂÁ¿ºÍµ¯ÐÔÉìËõµÄ´¦ÀíÎÒÃÇ¿ÉÒÔ½»¸økubernetesÀ´ÊµÏÖ£¬ÔÚÈÝÆ÷»ù´¡ÉèÊ©¾ß±¸µÄǰÌáϲ¢²»»á³ÉΪƿ¾±£¬¶ø¶ÔÓÚ¸´ÔÓÄ£ÐÍÔÚ´óbatchµÄÇëÇóºÍµÍÑÓʱµÄì¶ÜÖл¹ÊÇÐèҪͨ¹ýÉè¼ÆºÍÓÅ»¯À´ÊµÏÖ¡£

¶øÔÚ¸ü½øÒ»²½µÄÄ£ÐÍÔÚÏßÓÅ»¯ÖпÉÒÔ¿¼ÂÇͨ¹ýÄ£ÐÍÁ¿»¯ºÍÓ²¼þ¼ÓËٵIJßÂÔÌáÉýÄ£ÐÍServingÐÔÄÜ¡£

ºÏÀíʹÓûº´æºÍ¶à¼¶»º´æ½áºÏµÄÉè¼Æ·½·¨½«ÓÐЧ½µµÍ¸ßÑÓʱÇëÇó´¦Àí£¬´Ó¶øÌáÉýϵͳµÄÕûÌåÑÓʱ±íÏÖ¡£»º´æµÄÉè¼ÆÖ÷Òª¿¼ÂÇ»º´æ½éÖʵijɱ¾¡¢ÈÝÁ¿¡¢¶ÁдËÙ¶ÈÒÔ¼°»º´æ¸üвßÂÔ ¡£

 

   
2416 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

»ùÓÚͼ¾í»ýÍøÂçµÄͼÉî¶Èѧϰ
×Ô¶¯¼ÝÊ»ÖеÄ3DÄ¿±ê¼ì²â
¹¤Òµ»úÆ÷ÈË¿ØÖÆÏµÍ³¼Ü¹¹½éÉÜ
ÏîĿʵս£ºÈçºÎ¹¹½¨ÖªÊ¶Í¼Æ×
 
Ïà¹ØÎĵµ

5GÈ˹¤ÖÇÄÜÎïÁªÍøµÄµäÐÍÓ¦ÓÃ
Éî¶ÈѧϰÔÚ×Ô¶¯¼ÝÊ»ÖеÄÓ¦ÓÃ
ͼÉñ¾­ÍøÂçÔÚ½»²æÑ§¿ÆÁìÓòµÄÓ¦ÓÃÑо¿
ÎÞÈË»úϵͳԭÀí
Ïà¹Ø¿Î³Ì

È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ&TensorFlow
»úÆ÷ÈËÈí¼þ¿ª·¢¼¼Êõ
È˹¤ÖÇÄÜ£¬»úÆ÷ѧϰºÍÉî¶Èѧϰ
ͼÏñ´¦ÀíËã·¨·½·¨Óëʵ¼ù
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
¶àÄ¿±ê¸ú×Ù£ºAI²úÆ·¾­ÀíÐèÒªÁ˽âµÄCVͨʶ
Éî¶Èѧϰ¼Ü¹¹
¾í»ýÉñ¾­ÍøÂç֮ǰÏò´«²¥Ëã·¨
´Ó0µ½1´î½¨AIÖÐ̨
¹¤Òµ»úÆ÷ÈË¿ØÖÆÏµÍ³¼Ü¹¹½éÉÜ
×îпγÌ
È˹¤ÖÇÄÜ£¬»úÆ÷ѧϰºÍÉî¶Èѧϰ
È˹¤ÖÇÄÜÓë»úÆ÷ѧϰӦÓÃʵս
È˹¤ÖÇÄÜ-ͼÏñ´¦ÀíºÍʶ±ð
È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ& TensorFlow+Keras¿ò¼Üʵ¼ù
È˹¤ÖÇÄÜ+Python£«´óÊý¾Ý
³É¹¦°¸Àý
ij×ÛºÏÐÔ¿ÆÑлú¹¹ È˹¤ÖÇÄÜÓë»úÆ÷ѧϰӦÓÃ
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ& TensorFlow¿ò¼Üʵ¼ù
ijÁìÏÈÊý×ÖµØÍ¼ÌṩÉÌ PythonÊý¾Ý·ÖÎöÓë»úÆ÷ѧϰ
ÖйúÒÆ¶¯ È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰºÍÉî¶Èѧϰ