作者 | 木东居士 来源 | Data_Engineering 最近看了 Milter 的《算法工程师究竟需要哪些工程能力》这篇文章,有所感想,因此也写一
ä½è | æ¨ä¸å± 士
æ¥æº | Data_Engineering
æè¿çäº Milter çãç®æ³å·¥ç¨å¸ç©¶ç«éè¦åªäºå·¥ç¨è½åãè¿ç¯æç« ï¼ææææ³ï¼å æ¤ä¹åä¸ç¯å ³äºç®æ³å·¥ç¨å¸çææ¯è½åçé®é¢ï¼å大家å享ä¸ä¸å± å£«å ³äºç®æ³å·¥ç¨å¸çææ¯è½åçè§ç¹ã
对äºä¸åä¼ç§çç®æ³å·¥ç¨å¸ï¼ä»ï¼å¥¹ï¼è¦å ·å¤çä¸ä» ä» æ¯åºè²çææ¯è½åï¼ä¹è¦æå¾æ·±çä¸å¡ç解è½åå对å¤æ²éè½åï¼æ»ä¹ï¼è¦æ±å¯ä»¥å¾é«ï¼
ä½æ¯ï¼ä»èè´£è½åçååä¸æ¥è®²ï¼ç®æ³å·¥ç¨å¸é¦å æ¯ä¸åå·¥ç¨å¸ï¼å æ¤æ¬æ主è¦ä»å·¥ç¨è½åè¦æ±ä¸è¿è¡ä¸äºæ¢è®¨ã
å¼å§ä¹åå æ¾ä¸ä»½æ维导å¾ï¼è¿å°æ¯è¿ç¯æç« è¦å享çæ ¸å¿å 容ï¼
å·¥ç¨è½åæ¦è§
ç®æ³å·¥ç¨å¸ï¼ä»ååä¸æ们就è½çåºï¼ä¸åç®æ³å·¥ç¨å¸é¦å åºè¯¥å ·å¤ç®æ³è½ååå·¥ç¨è½åï¼æ们å¯ä»¥è®¤ä¸ºè¿æ¯åºç¡çææ¯è½åãç±äºç°å¨å¼æºææ¯çæ®åï¼SklearnãTensorflow å Spark ML åºæ¬å·²ç»æ为大é¨åç®æ³å·¥ç¨å¸æ é çå·¥å ·åºäºï¼å æ¤ï¼çç»çè°å è½åä¹æ¯å³å®äºä¸åç®æ³å·¥ç¨å¸è½å¦å¿«éå®ç°éæ±ã
å ¶æ¬¡ï¼å¨çå®çç产ç¯å¢ä¸ï¼ç®æ³çè½å°ä¼éå°åç§åæ ·çä¸å¡åºæ¯åæ°æ®ç¯å¢ï¼è¿ä¹è¦æ±ç®æ³å·¥ç¨å¸éè¦å ·å¤Pipeline æ建è½åï¼å°æ´ä¸ªç产ç¯å¢ä¸çæ°æ®æµå模åæéãåæ¶ï¼å¨ç产ç¯å¢ä¸ï¼ä¼åºç°åç§âçé¾æçâçå¾ ä½ å»è§£éï¼æ¯å¦è¯´ä¸ºä»ä¹å®éªææç¹å«å·®ï¼ä¸ºä»ä¹æ¨¡åææä¸ç¨³å®ï¼è¿å°±è¦è¦æ±ç®æ³å·¥ç¨å¸éè¦å ·å¤ä¸å®çæ°æ®åæè½åã
å¾å¤æ¶åï¼ä½ ä¼åç°ï¼ä½ ç¨å¨æ°æ®åæåPipelineæ建ä¸çç²¾åå¯è½å æ®äºä½ 8æ以ä¸çå·¥ä½å 容ã
å½ä½ å ·å¤äºä¸é¢çè½åæ¶ï¼ä½ å·²ç»å¯ä»¥ç§°èªå·±æ¯ä¸åç®æ³å·¥ç¨å¸äºãæ¤æ¶ï¼ä½ å¯ä»¥å»å¯¹çæ°æ®åæå°å¾çä¸ä¸ï¼âä½ çï¼æè½æ建æ´ä¸ªæ¨¡åçPipelineï¼ä½ å´åªè½æ¿å°å«äººæä¾çæ°æ®åè°è°å å§ãâæè ï¼ä½ ä¹å¯ä»¥å»æ¾å¼åå¾çï¼âä½ çï¼ææäºå¾å¤ç®æ³å¦ï¼ä½ å°±åªä¼å代ç å§ãâ
å¾çå®ä¹åï¼æ们è¿æ¯åå½æ£é¢ï¼ç®æ³å·¥ç¨å¸åªå ·å¤è¿æ ·è½åæ¯å¦å·²ç»å¤äºï¼çæ¡å½ç¶æ¯ä¸å¤çãç±äºä¸åå ¬å¸çå¢éæç度ä¸åï¼å·¥å ·ååæµç¨çæç度é½ä¸åï¼è¿å°±ä¼å¯¹ç®æ³å·¥ç¨å¸æä¸åçè¦æ±ï¼æ¯å¦è¯´æ¨¡ååå¸è½ååæ¥è¡¨å¼åè½åï¼å½ç¶ä¹ä¼æä¸äºå ¶å®è½åï¼è½ç¶å¯è½ä¸æ¯ç¹å«éè¦ï¼ä½æ¯å½è¿äºå·¥ä½æ²¡äººå¸®ä½ åçæ¶åï¼ç®æ³å·¥ç¨å¸å¯è½ä¾ç¶è¦æ¿æ èµ·è¿äºå·¥ä½å 容ï¼æ¯å¦è¯´ç°åº¦æµè¯çè½åãè´è½½åè¡¡çè½åççã
å°ä¸é¢çå 容æ´çåï¼å°±æ¯è¿æ ·ä¸ä»½æ维导å¾äºï¼ä¸å¼ å¾å¤çå ç¯æ´è½å æ·±å°è±¡ï¼å æ¤æåè´´åºæ¥ä¸éï¼
å·¥ç¨è½å详解
ä¸ãåºç¡è½å
ç®æ³è½å
ç®æ³è½åå°±ä¸å¤è¯´äºï¼ç®æ³å·¥ç¨å¸çåºæ¬è½åè¦æ±ï¼ä¸æç®æ³å¯¹äºä¸åç®æ³å·¥ç¨å¸æ¥è®²æ¯ä¸å¤ªåççãè¿éå± å£«æç»è®¡å¦çå 容ä¹æ¾è¿æ¥äºã
ç¼ç¨è½å
ç¼ç¨è½å主è¦å为两é¨åï¼
PythonãC++ãJavaè¿ç±»ç¼ç¨è¯è¨ï¼è¿ä¸ç§ä¹æ¯ç®æ³å·¥ç¨å¸éè¦äºè§£ç主æµç¼ç¨è¯è¨ï¼ä¸è¬ææ¡å ¶ä¸å°±å¤ï¼çä¸åå ¬å¸ã Sqlå°±æ¯å¾éç¨çè½åäºï¼Sqlä¹æ¯ä¸é¨ç¼ç¨è¯è¨ï¼èæ¯æ¯æ°æ®å¤çæ常ç¨çè¯è¨ï¼ å¾å¥½ç¨ã 大æ°æ®åºæ¯ä¸ï¼è¦äºè§£Hive Sqlãè°å è½å
大家è½ç¶ä¼è°ä¾è°å ä¾ ï¼ä½æ¯è¯´å®è¯ï¼è½è°å è°çå¾æºç人ï¼ä¹æ¯ä¸å¤çï¼æ¯å¦è¯´ç°å¨è®©ä½ èªå·±ç¨tensorflowæ建ä¸ä¸ªå¤æç½ç»ï¼ä¸è½googleï¼ä½ è½ååºæ¥åï¼è½è®°æ¸ æ¥ç¨æ³åï¼
Sklearn Tensorflow Spark MLäºãæ ¸å¿è½å
Pipeline æ建è½å
Pipelineæ建è½åï¼è¿éæ³è¡¨è¾¾çæ´å¤çæ¯æ´ä¸ªæ°æ®æµçæ建è½åï¼æ°æ®ä»æ¥å¿->ç¹å¾->模åè®ç»->åé¦ï¼è¿ä¸ä¸ªé¾æ¡è½å¦å®æçè½åï¼è¿éé¢ä¼æå¾å¤é¾é¢éè¦å æãæ¯å¦è¯´ï¼
å®æ¶å离线模åä¸è´æ§é®é¢ï¼ 离线åå®æ¶ç¹å¾ä¸è´æ§é®é¢ï¼ å®æ¶ç¹å¾æ建çé®é¢ï¼ æ°æ®å»¶è¿çé®é¢ï¼å¾å¤æ¶åï¼æ¨¡ååå¸ä¹ç±»çå·¥ä½æ¯å¯ä»¥ç±å ¶ä»åå¦æ¯æå®æï¼ä½æ¯æ°æ®æµè¿ç§é®é¢æ´å¤çæ¯éè¦ç®æ³å·¥ç¨å¸æ¥è§£å³çã
æ°æ®åæè½å
è¿éçæ°æ®åæè½åä¸æ¯æåä¸åææè ä¸å¡åæï¼æ´å¤çæ¯æç¹å¾åæãç®æ³ææåæååç§å¼å¸¸é®é¢å®ä½åæçè½åã
å¾å¤æ¶åï¼ä¸¤ä¸ªç®æ³å·¥ç¨å¸è½åæ°´å¹³ç强弱ä»æ°æ®åæè½åä¸ä¹è½çª¥å¾ä¸äºã
ä¸ãè¾ å©ææ¯è½å
è¾ å©çææ¯è½åæ¯æï¼ä½ ä¼ä¸ä¼çå½±åä¸ä¼ç¹å«å¤§ï¼ä½æ¯ä¹é½æ¯æç¨çè½åï¼ç¹å«æ¯ä¸åå ¬å¸çåå±æ åµä¸åï¼å¾å¯è½ä¼åºç°ä¸ä¸ªç®æ³å·¥ç¨å¸æ¢è¦åæ°æ®æ¥å ¥ãåè¦åæ°æ®æ¸ æ´ãè¿è¦åç®æ³å¹³å°
ä¹è¦æå端ãè¿è¦è´è´£æ¨¡åä¸çº¿ãç³»ç»è¿ç»´ã
è¿éå°±ä¸åç»è®²äºã
æèä¸
èä¸ä¸å¯¹ææ¯è½åãå·¥ç¨è½ååæ°æ®åæçæèã
å± å£«ä¸ªäººçç解ï¼ææ¯è½åæ´å¤çæ¯ååäºä¸ä¸ªä¸ä¸ªçææ¯ç¹ï¼èå·¥ç¨è½åæ´å¤å°±æ¯å¨ä¸ä¸ªå¢éä¸å°é¡¹ç®å好çè½åãå¾å¤ç®æ³åºèº«çå·¥ç¨è½åä¸è¡ï¼é£ä¹ä»åçå纯çä¸ä¸ªæ¨¡åæ¯æ æ³åºç¨å°å®é ç产ä¸çï¼èå·¥ç¨å°±æ¯ææç论è½å°å®é ç产çè¿ç¨ãé£ä¹å·¥ç¨å å«äºä»ä¹ï¼å®å æ¬äºç³»ç»æ¶æ设计å模å设计ãæ°æ®æµæ建åå¹³å°æ建ãè°å æç®æ³å¼åãåå¸å¼ãä¸çº¿ä»¥ååç§è½å°ç代ç å¼åãæ¥è¡¨åçæ§ï¼å ¶å®æ¬è´¨ä¹æ¯åæ°æ®æµï¼è¾¹ç¼æ§çå¯è½è¦åäºåå°åå端çå¼åã
ç¶åæ°æ®åæè½åæ¯ä»ä¹ï¼æ°æ®åæï¼ä¸æ¯çº¯ç²¹çæ°æ®åæï¼é¤äºåææ¹æ³è®ºåå¥è·¯å¤ï¼æ¯ä¸ä¸ªå¾ç»¼åæ§ãç¸å¯¹å软ä¸ç¹çè½åï¼æ¯å¦è¯´ä½ éè¿åæåç°äºæ们çç³»ç»æåªäºå¯ä»¥ä¼åçç¹ï¼éè¿åæåç°äºé®é¢çåå æ¯ä»ä¹ï¼è¿äºé½æ¯åæè½åã
æèäº
é对åé¢çå 容ï¼å Cathy 讨论åï¼å¯¹æ´ä¸ªæè·¯åäºæ°ç梳çï¼å¤§å®¶ç´æ¥çå¾å°±å¥½ï¼å± 士ä¹è®¤ä¸ºè¿æ ·æè¿°å¯è½æ´ä¸ºåçã
æèä¸
è¿éåè¡¥å ä¸ä¸ªæ¨¡åå¤ç°çè½åï¼æ¯å¦ä½ çäºä¸ç¯è®ºæï¼åç°è¿ä¸ªæ¨¡åå¯è½å¾éåèªå·±çä¸å¡åºæ¯ï¼é£ä¹ä½ æ¯å¦è½åå°è®ºæéé¢ç模åå¿«éç¨å ¬å¸ç°æçå¹³å°åå·¥å ·æ¥å¤ç°ï¼
å± å£«è®¤ä¸ºï¼è¿ä¸ä¸ªæ¯ä¸ä¸ªé常éè¦çè½åï¼ä½æ¯æ²¡ææ³å¥½å ·ä½è¯¥ææ ·ååã