基于其特性帶來的種種優(yōu)勢,Python在近年來的各大編程語言排行榜上也是“一路飚紅”,并成為越來越多開發(fā)者計劃學(xué)習(xí)的編程語言。如今,大家最迫切關(guān)心的是,該如何利用Python構(gòu)建相應(yīng)的技術(shù)體系以匹配到自己的實際業(yè)務(wù)中去?
4月13日,由中國IT技術(shù)社區(qū)CSDN舉辦的“2019 Python開發(fā)者日”在北京聯(lián)合大學(xué)隆重開啟。本次活動邀請10余位身處一線的Python技術(shù)專家,聚焦Web開發(fā)、數(shù)據(jù)分析、人工智能等技術(shù)模塊,全方位探討他們對真實生產(chǎn)環(huán)境中使用Python應(yīng)對IT挑戰(zhàn)的真知灼見,并與在座的數(shù)百位學(xué)生、開發(fā)者等業(yè)內(nèi)同行進(jìn)行了深入交流。接下來的第二天,大會還針對不同層次的開發(fā)者,安排了深度培訓(xùn)實操環(huán)節(jié),為開發(fā)者們帶來更多深度實戰(zhàn)的機(jī)會。
CSDN 總編輯谷磊在活動中致辭并表示:“CSDN是中國專業(yè)的IT技術(shù)社區(qū),有2700萬注冊會員,我們每年會做一個大型調(diào)查問卷,今年調(diào)查結(jié)果顯示:近六成開發(fā)者最近想學(xué)習(xí)的語言是Python。CSDN社區(qū)上有很多Python學(xué)習(xí)資源,很多用戶反饋,學(xué)了這些資源以后更想看到的大型科技互聯(lián)網(wǎng)公司是怎樣應(yīng)用Python做實踐應(yīng)用案例的。這是我們做Python開發(fā)者日活動的初衷。”
下面我們就來一起回顧下這10位身處一線的技術(shù)專家在活動首日所做的精彩分享。
阿里巴巴技術(shù)專家 楊群:基于Python特性帶來的好處,數(shù)據(jù)分析是第一位的
楊群以《高并發(fā)場景下的Python的性能挑戰(zhàn)》主題做了演講。
首先楊群從”為什么大家都說Python慢“問題開始講起,從GIL對性能影響、解釋器及Python語言本身特征等方面解釋。
(1)最主要的原因是全局解釋器鎖,Python有垃圾回收機(jī)制;
(2)C、C++編輯完之后保證編碼是CPU可以理解的,所以很快。但像CPython首先要生成pcy自解碼序列之后才會快很多;
(3)Python是動態(tài)語言類型,因為讀取、寫入變量或者引用變量時會進(jìn)行檢查,所以在做類型轉(zhuǎn)化、比較時就會比較耗時;此外,靜態(tài)類型語言沒有這么高的靈活性。
隨后,他從服務(wù)選型、性能瓶頸分析等問題方面,給出了一些優(yōu)化方法,如通過數(shù)據(jù)進(jìn)行優(yōu)化、IO密集型與CPU密集型的緩存方法、緩存的開發(fā)函數(shù)、懶加載等方法與技巧。
最后,楊群總結(jié)了三大關(guān)鍵問題:
首先,基于Python特性帶來的好處,數(shù)據(jù)分析是第一位的;
其次,需要合理的測試環(huán)境,不要因為性能調(diào)優(yōu)而影響服務(wù)穩(wěn)定性或者出現(xiàn)故障;
第三要有的放矢,有時服務(wù)拆分或微服務(wù)化是有用的方法,對架構(gòu)有好處。
博世(中國)投資有限公司大數(shù)據(jù)分析師 王紅星:在實際業(yè)務(wù)中要看具體的業(yè)務(wù)需求再定模型
博世(中國)投資有限公司大數(shù)據(jù)分析師 王紅星
王紅星分享了《數(shù)據(jù)分析及大數(shù)據(jù)在制造業(yè)的應(yīng)用》的主題演講。
他重點講到了數(shù)據(jù)分析的基本概念、工具及技術(shù),以及應(yīng)用案例方面的實際案例,特別是在制造業(yè)環(huán)境中的一些啟發(fā)。
什么是數(shù)據(jù)分析呢?數(shù)據(jù)分析有時也叫“預(yù)測型數(shù)據(jù)分析”、“大數(shù)據(jù)分析”,有時說深度學(xué)習(xí)。從廣義角度來講,是指通過分析數(shù)據(jù)以達(dá)到輔助決策或知識抽取的目的;從狹義角度來講,區(qū)別之前在工業(yè)或者企業(yè)里的可視化,所謂的高級分析都稱之為“數(shù)據(jù)分析”,包括數(shù)據(jù)挖掘、可視化分析、文本分析等。
那么如何做數(shù)據(jù)分析呢?王紅星主要談到兩種手段:一是統(tǒng)計學(xué),二是機(jī)器學(xué)習(xí)。他表示,機(jī)器學(xué)習(xí)是一種自動化分析模型的數(shù)據(jù)分析方法。利用算法在數(shù)據(jù)中迭代的學(xué)習(xí),允許計算機(jī)在不顯式編程的情況下找到隱藏在數(shù)據(jù)中的模式。當(dāng)然,在實際業(yè)務(wù)中要看具體的業(yè)務(wù)需求再定模型,模型訓(xùn)練主要有三種方式:Pipline,Cross Validation,Grid Search。
王紅星總結(jié)了工業(yè)大數(shù)據(jù)的主要應(yīng)用場景,包括:工業(yè)物聯(lián)網(wǎng)生產(chǎn)線、生產(chǎn)質(zhì)量與控制、計劃與排程、供應(yīng)鏈優(yōu)化、產(chǎn)品的需求預(yù)測、故障預(yù)測、供應(yīng)鏈的綠色發(fā)展等。最后,他分享了大唐集團(tuán)項目中數(shù)據(jù)分析是如何進(jìn)行實際應(yīng)用的。
TrueMetrics合伙人 宋天龍:降低門檻,AutoML是機(jī)器學(xué)習(xí)的未來
TrueMetrics合伙人 宋天龍
宋天龍以《Python在Google BigQuery Machine Learning 中的應(yīng)用》為題做了演講。
宋天龍表示,在數(shù)據(jù)前端實現(xiàn)廣告投放,需要采用數(shù)據(jù)庫里的數(shù)據(jù),通過算法和模型,把預(yù)算好的標(biāo)簽或者關(guān)鍵指標(biāo)回傳給業(yè)務(wù)系統(tǒng),然后去做自動化投放或者定向投放。而Python在這個過程中,會連接各個不同業(yè)務(wù)系統(tǒng)的端口,包括實施庫內(nèi)機(jī)器學(xué)習(xí)的過程,包括調(diào)參、調(diào)用和分配。
為什么要在數(shù)據(jù)庫內(nèi)做機(jī)器學(xué)習(xí)?首先是為了降低成本,只需要會SQL的數(shù)據(jù)分析師,不需要數(shù)據(jù)科學(xué)家,其次是簡單高效,Analytics 360 (& Firebase) 結(jié)構(gòu)化數(shù)據(jù)就在BigQuery里,不需要數(shù)據(jù)導(dǎo)入,能快速建模、評估和應(yīng)用。
隨后,他講述了BigQuery ML的應(yīng)用架構(gòu)和具體工作流程,使用BigQuery ML首先需要獲取原始數(shù)據(jù),之后做數(shù)據(jù)清洗和特征工程、模型訓(xùn)練和調(diào)優(yōu)、模型部署和應(yīng)用,結(jié)果以表的形式進(jìn)行保存。
最后宋天龍指出,AutoML是做機(jī)器學(xué)習(xí)的未來,目的是為了降低大多數(shù)人入門的門檻,降低門檻后可以讓機(jī)器學(xué)習(xí)帶動用戶驅(qū)動,百度、谷歌、阿里巴巴等都有這樣的框架給開發(fā)者使用。
平安科技聯(lián)邦學(xué)習(xí)團(tuán)隊資深算法研究員 王威
王威以《基于MXNet的圖像檢測開發(fā)案例》做了演講。
他首先講述了業(yè)務(wù)背景,存量文檔電子化、快速理賠、智能錄入、文字翻譯等方面都會用到圖像中文字位置的檢測以及文字內(nèi)容的識別。業(yè)務(wù)的基本流程分為通用模型和專用模型。并不是對于所有的圖片都使用通用模型,專用模型的精度會更高,不過它的開發(fā)復(fù)雜程度也更大。
隨后他從專用模型角度講述了基于特定種類的票據(jù)位置檢測的開發(fā)實例,選取的框架是MXNET中的Gluon,因為它的接口簡單易上手,與計算機(jī)視覺配套的GluonCV庫包含常用的檢測網(wǎng)絡(luò),而且文檔詳細(xì),方便對照相似案例實現(xiàn)定制化目標(biāo)。
如果開發(fā)者想用Gluon自己實現(xiàn)檢測目標(biāo),他還強(qiáng)調(diào)要注意損失函數(shù)的權(quán)重、學(xué)習(xí)率、多卡訓(xùn)練、狀態(tài)監(jiān)控、模型保存、停止訓(xùn)練和數(shù)據(jù)清洗等方面的問題。
愛奇藝后端開發(fā)工程師 張佳圓
張佳圓的演講主題是《從零到一實現(xiàn)一個 Web Framework》。
簡單來講,Web框架能夠讓你更方便地編寫Web應(yīng)用。張佳圓隨后介紹了Web框架及其核心基礎(chǔ)WSGI。Web框架會提供的一些功能,比如把Request & Response對象給封裝起來。它還提供路由管理,模板引擎功能以及對象關(guān)系映射等功能。隨后張佳圓在現(xiàn)場編寫代碼,實打?qū)嵮菔玖艘粋€從零到一編寫一個Web框架。
阿里巴巴技術(shù)專家 秦續(xù)業(yè):Numpy已經(jīng)變成了一個生態(tài),很多Python數(shù)據(jù)包都依賴于Numpy
阿里巴巴技術(shù)專家 秦續(xù)業(yè)
秦續(xù)業(yè)帶來了以《用Mars并行和分布式執(zhí)行Numpy》為題的演講。
秦續(xù)業(yè)首先介紹了Numpy的最核心的概念ndarray,它非常強(qiáng)大,能表達(dá)多維數(shù)據(jù),而真實數(shù)據(jù)不是只有一維和二維這么簡單。ndarray主要有以下三大特點:對整組數(shù)據(jù)快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)(無需編寫循環(huán)) ;讀寫磁盤數(shù)據(jù)的工具和操作內(nèi)存映射文件的工具;提供線性代數(shù)、隨機(jī)數(shù)生成和傅里葉變換函數(shù)等高級方法。
他表示,Numpy已經(jīng)變成了一個生態(tài),很多Python數(shù)據(jù)包都依賴于Numpy。Numpy已經(jīng)變成一種事實標(biāo)準(zhǔn)、一種協(xié)議,并且是生態(tài)里最基礎(chǔ)的一環(huán)。
最后秦續(xù)業(yè)從阿里巴巴的Mars項目出發(fā)介紹了并行和分布式執(zhí)行Numpy的實例。
天云融創(chuàng)數(shù)據(jù)科技(北京)有限公司高級工程師 譚可華:Java調(diào)Python的方式已經(jīng)過去了,現(xiàn)在是Python調(diào)Java的時代
天云融創(chuàng)數(shù)據(jù)科技(北京)有限公司高級工程師 譚可華
譚可華發(fā)表了《Spark with Python應(yīng)用》的主題演講。
譚可華首先展示了當(dāng)前社區(qū)編程語言的排名情況,毫無疑問,Python已經(jīng)成為主流語言,并呈上升趨勢;盡管相對來講,Java語言使用的開發(fā)者是最多的。但現(xiàn)在有關(guān)Python的框架、工具越來越豐富,Java調(diào)用Python的方式已經(jīng)過去了,現(xiàn)在是Python調(diào)Java的方式。例如,Python的數(shù)據(jù)處理實用工具numpy/scipy/matplotlib、Pandas庫、微軟的NLTK等。
而調(diào)用Python函數(shù),Spark框架有天然的優(yōu)勢。Spark使用py4j來實現(xiàn)Python與Java的互操作,從而實現(xiàn)使用Python編寫Spark程序。Spark也同樣提供了pyspark,一個Spark的python shell,可以以交互式的方式使用Python編寫Spark程序。
隨后,譚可華總結(jié)了PySpark的運(yùn)行原理,使用的優(yōu)缺點等問題。
Pyspark中dataframe的優(yōu)勢主要在于支持多種數(shù)據(jù)格式和數(shù)據(jù)源、能夠從單臺筆記本電腦上的千字節(jié)數(shù)據(jù)擴(kuò)展到大型群集上的PB級數(shù)據(jù)等。同樣,Pandas與Pyspark中dataframe是有區(qū)別的。
IBM高級項目經(jīng)理 魏貞原:數(shù)據(jù)科學(xué)家平均實踐經(jīng)驗超過8年,Python和R為主要使用語言
IBM高級項目經(jīng)理 魏貞原
魏貞原分享了《Python在金融領(lǐng)域的應(yīng)用——信用評分卡》的主題演講。他首先談到了2020年技術(shù)發(fā)展趨勢,以及在這個時代下數(shù)據(jù)科學(xué)家的典型特征和必備技能。
首先,數(shù)據(jù)科學(xué)家要有數(shù)學(xué)、統(tǒng)計學(xué)的相關(guān)知識;編程管理經(jīng)驗;行業(yè)知識和技能;在這個基礎(chǔ)之上,才可以把真正的客戶需求反饋到系統(tǒng)中去。從特征上來看,目前大部分?jǐn)?shù)據(jù)科學(xué)家都是男性,他們基本會雙語交流,多數(shù)為2到3年的該崗位經(jīng)驗,平均實踐經(jīng)驗是8年以上,主要使用的語言是Python和R。
隨后,他主要以業(yè)務(wù)實際案例的角度分享了Python機(jī)器學(xué)習(xí)在信用評分卡場景上的應(yīng)用,并從項目流程的六個階段:數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、探索性分析、變量選擇、評分系統(tǒng)、信用評分、模型評估、模型開發(fā)進(jìn)行了詳細(xì)介紹。他指出,每個企業(yè)針對的業(yè)務(wù)方向是不一樣的,所以需要的數(shù)據(jù)源也是不一樣的。
英偉達(dá)資深深度學(xué)習(xí)架構(gòu)工程師 張校捷:學(xué)術(shù)界對PyTorch框架的研究很多,對初學(xué)者非常友好
英偉達(dá)資深深度學(xué)習(xí)架構(gòu)工程師 張校捷
張校捷分享了《PyTorch自然語言處理實戰(zhàn)》的主題演講。
Pytorch是基于動態(tài)圖的深度學(xué)習(xí)框架 ,相比于靜態(tài)圖的深度學(xué)習(xí)框架的特點是比較靈活 ,利用PyTorch構(gòu)建自然語言處理模型的主要步驟包括:獲取文本語料庫 (通過爬蟲等方法收集訓(xùn)練數(shù)據(jù));文本數(shù)據(jù)的清洗 (刪除無用數(shù)據(jù),冗余數(shù)據(jù)和亂碼等等);文本預(yù)處理(正則化,分詞,去停詞);構(gòu)建詞庫(給單詞賦予序號);文本轉(zhuǎn)化成對應(yīng)序號,輸入自然語言處理模型進(jìn)行訓(xùn)練;模型的驗證,部署等后續(xù)步驟。
現(xiàn)場,他利用PyTorch構(gòu)建一個基于注意力機(jī)制的seq2seq模型,對自然語言處理的數(shù)據(jù)預(yù)處理,深度學(xué)習(xí)模型的搭建以及部署進(jìn)行了介紹。在他看來,通過PyTorch使用GPU對模型進(jìn)行訓(xùn)練是非常方便的。
他指出,相對來說,在工業(yè)界TensorFlow的應(yīng)用范圍更廣泛,但實際上目前學(xué)術(shù)界對PyTorch框架的研究很多,這個框架用起來比較舒服,對于初學(xué)者是非常友好的,也希望借此機(jī)會能夠讓更多的人了解到PyTorch 2.0公布后的新特性。
即酷科技(北京)有限公司高級工程師 楊鈞凱:Python非常適于解決任務(wù)導(dǎo)向的問題
即酷科技(北京)有限公司高級工程師 楊鈞凱
楊鈞凱帶來了《Python代碼智能推薦和語義搜索的應(yīng)用》的主題演講。
楊鈞凱介紹了團(tuán)隊用Python代碼智能推薦和語義搜索的原因、方式以及個人的案例分享。他表示,近些年尤其是在數(shù)據(jù)處理和科學(xué)計算方面,Python 有獨(dú)特的優(yōu)勢。Python的特點在于非常適于解決任務(wù)導(dǎo)向的問題,具體這么來理解:首先是設(shè)計,理解需求是什么,然后根據(jù)已有的經(jīng)驗和知識選擇解決方案;其次是實現(xiàn),很多情況下并不需要構(gòu)建底層完整的東西,可以利用原有庫和工具做想做的事情,把這些庫研究清楚,利用這些工具把問題解決掉。
精彩技術(shù)分享繼續(xù)
CSDN 將于 2019 年 5 月 25—27 日在杭州國際博覽中心主辦 CTA 核心技術(shù)與應(yīng)用峰會,屆時將邀請來自學(xué)界與產(chǎn)業(yè)界機(jī)器學(xué)習(xí)、知識圖譜兩大技術(shù)領(lǐng)域的專家,共同探討落地應(yīng)用成果與未來研究趨勢。此次活動還得到了杭州工信部人才交流中心的支持。敬請期待~