Python的10個“祕籍”,這些技術專家全都告訴你了


Python的10個“秘籍”,這些技術專家全都告訴你了

整理|琥珀出品|Python大本營(ID:pythonnews)

基於其特性帶來的種種優勢,Python在近年來的各大編程語言排行榜上也是“一路飈紅”,併成為越來越多開發者計劃學習的編程語言。如今,大家最迫切關心的是,該如何利用Python構建相應的技術體系以匹配到自己的實際業務中去?

4月13日,由中國IT技術社區CSDN舉辦的“2019 Python開發者日”在北京聯合大學隆重開啟。本次活動邀請10餘位身處一線的Python技術專家,聚焦Web開發、數據分析、人工智能等技術模塊,全方位探討他們對真實生產環境中使用Python應對IT挑戰的真知灼見,並與在座的數百位學生、開發者等業內同行進行了深入交流。接下來的第二天,大會還針對不同層次的開發者,安排了深度培訓實操環節,為開發者們帶來更多深度實戰的機會。

CSDN 總編輯谷磊在活動中致辭並表示:“CSDN是中國專業的IT技術社區,有2700萬註冊會員,我們每年會做一個大型調查問卷,今年調查結果顯示:近六成開發者最近想學習的語言是Python。CSDN社區上有很多Python學習資源,很多用戶反饋,學了這些資源以後更想看到的大型科技互聯網公司是怎樣應用Python做實踐應用案例的。這是我們做Python開發者日活動的初衷。”

下面我們就來一起回顧下這10位身處一線的技術專家在活動首日所做的精彩分享。

阿里巴巴技術專家 楊群:基於Python特性帶來的好處,數據分析是第一位的
Python的10個“秘籍”,這些技術專家全都告訴你了

楊群以《高併發場景下的Python的性能挑戰》主題做了演講。

首先楊群從”為什麼大家都說Python慢“問題開始講起,從GIL對性能影響、解釋器及Python語言本身特徵等方面解釋。

(1)最主要的原因是全局解釋器鎖,Python有垃圾回收機制;

(2)C、C++編輯完之後保證編碼是CPU可以理解的,所以很快。但像CPython首先要生成pcy自解碼序列之後才會快很多;

(3)Python是動態語言類型,因為讀取、寫入變量或者引用變量時會進行檢查,所以在做類型轉化、比較時就會比較耗時;此外,靜態類型語言沒有這麼高的靈活性。

隨後,他從服務選型、性能瓶頸分析等問題方面,給出了一些優化方法,如通過數據進行優化、IO密集型與CPU密集型的緩存方法、緩存的開發函數、懶加載等方法與技巧。

最後,楊群總結了三大關鍵問題:

首先,基於Python特性帶來的好處,數據分析是第一位的;

其次,需要合理的測試環境,不要因為性能調優而影響服務穩定性或者出現故障;

第三要有的放矢,有時服務拆分或微服務化是有用的方法,對架構有好處。

博世(中國)投資有限公司大數據分析師 王紅星:在實際業務中要看具體的業務需求再定模型
Python的10個“秘籍”,這些技術專家全都告訴你了

王紅星分享了《數據分析及大數據在製造業的應用》的主題演講。

他重點講到了數據分析的基本概念、工具及技術,以及應用案例方面的實際案例,特別是在製造業環境中的一些啟發。

什麼是數據分析呢?數據分析有時也叫“預測型數據分析”、“大數據分析”,有時說深度學習。從廣義角度來講,是指通過分析數據以達到輔助決策或知識抽取的目的;從狹義角度來講,區別之前在工業或者企業裡的可視化,所謂的高級分析都稱之為“數據分析”,包括數據挖掘、可視化分析、文本分析等。

那麼如何做數據分析呢?王紅星主要談到兩種手段:一是統計學,二是機器學習。他表示,機器學習是一種自動化分析模型的數據分析方法。利用算法在數據中迭代的學習,允許計算機在不顯式編程的情況下找到隱藏在數據中的模式。當然,在實際業務中要看具體的業務需求再定模型,模型訓練主要有三種方式:Pipline,Cross Validation,Grid Search。

王紅星總結了工業大數據的主要應用場景,包括:工業物聯網生產線、生產質量與控制、計劃與排程、供應鏈優化、產品的需求預測、故障預測、供應鏈的綠色發展等。最後,他分享了大唐集團項目中數據分析是如何進行實際應用的。

TrueMetrics合夥人 宋天龍:降低門檻,AutoML是機器學習的未來


Python的10個“秘籍”,這些技術專家全都告訴你了

宋天龍以《Python在Google BigQuery Machine Learning 中的應用》為題做了演講。

宋天龍表示,在數據前端實現廣告投放,需要採用數據庫裡的數據,通過算法和模型,把預算好的標籤或者關鍵指標回傳給業務系統,然後去做自動化投放或者定向投放。而Python在這個過程中,會連接各個不同業務系統的端口,包括實施庫內機器學習的過程,包括調參、調用和分配。

為什麼要在數據庫內做機器學習?首先是為了降低成本,只需要會SQL的數據分析師,不需要數據科學家,其次是簡單高效,Analytics 360 (& Firebase) 結構化數據就在BigQuery裡,不需要數據導入,能快速建模、評估和應用。

隨後,他講述了BigQuery ML的應用架構和具體工作流程,使用BigQuery ML首先需要獲取原始數據,之後做數據清洗和特徵工程、模型訓練和調優、模型部署和應用,結果以表的形式進行保存。

最後宋天龍指出,AutoML是做機器學習的未來,目的是為了降低大多數人入門的門檻,降低門檻後可以讓機器學習帶動用戶驅動,百度、谷歌、阿里巴巴等都有這樣的框架給開發者使用。

平安科技聯邦學習團隊資深算法研究員 王威


Python的10個“秘籍”,這些技術專家全都告訴你了

王威以《基於MXNet的圖像檢測開發案例》做了演講。

他首先講述了業務背景,存量文檔電子化、快速理賠、智能錄入、文字翻譯等方面都會用到圖像中文字位置的檢測以及文字內容的識別。業務的基本流程分為通用模型和專用模型。並不是對於所有的圖片都使用通用模型,專用模型的精度會更高,不過它的開發複雜程度也更大。

隨後他從專用模型角度講述了基於特定種類的票據位置檢測的開發實例,選取的框架是MXNET中的Gluon,因為它的接口簡單易上手,與計算機視覺配套的GluonCV庫包含常用的檢測網絡,而且文檔詳細,方便對照相似案例實現定製化目標。

如果開發者想用Gluon自己實現檢測目標,他還強調要注意損失函數的權重、學習率、多卡訓練、狀態監控、模型保存、停止訓練和數據清洗等方面的問題。

愛奇藝後端開發工程師 張佳圓


Python的10個“秘籍”,這些技術專家全都告訴你了

張佳圓的演講主題是《從零到一實現一個 Web Framework》。

簡單來講,Web框架能夠讓你更方便地編寫Web應用。張佳圓隨後介紹了Web框架及其核心基礎WSGI。Web框架會提供的一些功能,比如把Request & Response對象給封裝起來。它還提供路由管理,模板引擎功能以及對象關係映射等功能。隨後張佳圓在現場編寫代碼,實打實演示了一個從零到一編寫一個Web框架。

阿里巴巴技術專家 秦續業:Numpy已經變成了一個生態,很多Python數據包都依賴於Numpy。


Python的10個“秘籍”,這些技術專家全都告訴你了

秦續業帶來了以《用Mars並行和分佈式執行Numpy》為題的演講。

秦續業首先介紹了Numpy的最核心的概念ndarray,它非常強大,能表達多維數據,而真實數據不是隻有一維和二維這麼簡單。ndarray主要有以下三大特點:對整組數據快速運算的標準數學函數(無需編寫循環) ;讀寫磁盤數據的工具和操作內存映射文件的工具;提供線性代數、隨機數生成和傅里葉變換函數等高級方法。

他表示,Numpy已經變成了一個生態,很多Python數據包都依賴於Numpy。Numpy已經變成一種事實標準、一種協議,並且是生態裡最基礎的一環。

最後秦續業從阿里巴巴的Mars項目出發介紹了並行和分佈式執行Numpy的實例。

天雲融創數據科技(北京)有限公司高級工程師 譚可華:Java調Python的方式已經過去了,現在是Python調Java的時代。


Python的10個“秘籍”,這些技術專家全都告訴你了

譚可華髮表了《Spark with Python應用》的主題演講。

譚可華首先展示了當前社區編程語言的排名情況,毫無疑問,Python已經成為主流語言,並呈上升趨勢;儘管相對來講,Java語言使用的開發者是最多的。但現在有關Python的框架、工具越來越豐富,Java調用Python的方式已經過去了,現在是Python調Java的方式。例如,Python的數據處理實用工具numpy/scipy/matplotlib、Pandas庫、微軟的NLTK等。

而調用Python函數,Spark框架有天然的優勢。Spark使用py4j來實現Python與Java的互操作,從而實現使用Python編寫Spark程序。Spark也同樣提供了pyspark,一個Spark的python shell,可以以交互式的方式使用Python編寫Spark程序。

隨後,譚可華總結了PySpark的運行原理,使用的優缺點等問題。

Pyspark中dataframe的優勢主要在於支持多種數據格式和數據源、能夠從單檯筆記本電腦上的千字節數據擴展到大型群集上的PB級數據等。同樣,Pandas與Pyspark中dataframe是有區別的。

IBM高級項目經理 魏貞原:數據科學家平均實踐經驗超過8年,Python和R為主要使用語言。


Python的10個“秘籍”,這些技術專家全都告訴你了

魏貞原分享了《Python在金融領域的應用——信用評分卡》的主題演講。他首先談到了2020年技術發展趨勢,以及在這個時代下數據科學家的典型特徵和必備技能。

首先,數據科學家要有數學、統計學的相關知識;編程管理經驗;行業知識和技能;在這個基礎之上,才可以把真正的客戶需求反饋到系統中去。從特徵上來看,目前大部分數據科學家都是男性,他們基本會雙語交流,多數為2到3年的該崗位經驗,平均實踐經驗是8年以上,主要使用的語言是Python和R。

隨後,他主要以業務實際案例的角度分享了Python機器學習在信用評分卡場景上的應用,並從項目流程的六個階段:數據獲取、數據預處理、探索性分析、變量選擇、評分系統、信用評分、模型評估、模型開發進行了詳細介紹。他指出,每個企業針對的業務方向是不一樣的,所以需要的數據源也是不一樣的。

英偉達資深深度學習架構工程師 張校捷:學術界對PyTorch框架的研究很多,對初學者非常友好。
Python的10個“秘籍”,這些技術專家全都告訴你了

張校捷分享了《PyTorch自然語言處理實戰》的主題演講。

Pytorch是基於動態圖的深度學習框架 ,相比於靜態圖的深度學習框架的特點是比較靈活 ,利用PyTorch構建自然語言處理模型的主要步驟包括:獲取文本語料庫 (通過爬蟲等方法收集訓練數據);文本數據的清洗 (刪除無用數據,冗餘數據和亂碼等等);文本預處理(正則化,分詞,去停詞);構建詞庫(給單詞賦予序號);文本轉化成對應序號,輸入自然語言處理模型進行訓練;模型的驗證,部署等後續步驟。

現場,他利用PyTorch構建一個基於注意力機制的seq2seq模型,對自然語言處理的數據預處理,深度學習模型的搭建以及部署進行了介紹。在他看來,通過PyTorch使用GPU對模型進行訓練是非常方便的。

他指出,相對來說,在工業界TensorFlow的應用範圍更廣泛,但實際上目前學術界對PyTorch框架的研究很多,這個框架用起來比較舒服,對於初學者是非常友好的,也希望藉此機會能夠讓更多的人瞭解到PyTorch 2.0公佈後的新特性。

即酷科技(北京)有限公司高級工程師 楊鈞凱:Python非常適於解決任務導向的問題


Python的10個“秘籍”,這些技術專家全都告訴你了

楊鈞凱帶來了《Python代碼智能推薦和語義搜索的應用》的主題演講。

楊鈞凱介紹了團隊用Python代碼智能推薦和語義搜索的原因、方式以及個人的案例分享。他表示,近些年尤其是在數據處理和科學計算方面,Python 有獨特的優勢。Python的特點在於非常適於解決任務導向的問題,具體這麼來理解:首先是設計,理解需求是什麼,然後根據已有的經驗和知識選擇解決方案;其次是實現,很多情況下並不需要構建底層完整的東西,可以利用原有庫和工具做想做的事情,把這些庫研究清楚,利用這些工具把問題解決掉。

精彩技術分享繼續

CSDN 將於 2019 年 5 月 25—27 日在杭州國際博覽中心主辦 CTA 核心技術與應用峰會,屆時將邀請來自學界與產業界機器學習、知識圖譜兩大技術領域的專家,共同探討落地應用成果與未來研究趨勢。此次活動還得到了杭州工信部人才交流中心的支持。敬請期待~


分享到:


相關文章: