中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

如何開始一個(gè)數(shù)據(jù)科學(xué)項(xiàng)目?

2019-01-17    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

 

數(shù)據(jù)科學(xué)對(duì)初創(chuàng)公司有多重要?在初創(chuàng)公司中,數(shù)據(jù)科學(xué)項(xiàng)目流程有什么說(shuō)道嗎?作為在數(shù)據(jù)科學(xué)領(lǐng)域身經(jīng)百戰(zhàn)的老將 Shay Palachy,日前接受了一家名為 BigPanda 的初創(chuàng)公司的邀請(qǐng),讓他就該公司的數(shù)據(jù)科學(xué)項(xiàng)目發(fā)表自己的看法。作者在這篇文章中為那些想打造一直屬于自己的數(shù)據(jù)科學(xué)團(tuán)隊(duì)的創(chuàng)始人提供了一些非常有價(jià)值的建議。

最近,一家名為 BigPanda 的初創(chuàng)公司邀請(qǐng)我對(duì)數(shù)據(jù)科學(xué)項(xiàng)目的結(jié)構(gòu)和流程發(fā)表自己的看法,這讓我思考是什么讓它們獨(dú)一無(wú)二。初創(chuàng)公司的經(jīng)理和不同團(tuán)隊(duì)可能會(huì)發(fā)現(xiàn),數(shù)據(jù)科學(xué)項(xiàng)目和軟件開發(fā)之間存在差異,這種差異并不那么直觀,而且令人困惑。如果沒(méi)有明確的說(shuō)明和解釋,這些根本差異可能會(huì)引起數(shù)據(jù)科學(xué)家和同事之間的誤解和沖突。

分別來(lái)說(shuō),來(lái)自學(xué)術(shù)界(或高度研究型的行業(yè)研究小組)的研究人員在進(jìn)入初創(chuàng)公司或小型公司時(shí),可能會(huì)面臨各自的挑戰(zhàn)。他們可能會(huì)發(fā)現(xiàn),將新類型的輸入(如產(chǎn)品和業(yè)務(wù)需求、更緊密的基礎(chǔ)設(shè)施和計(jì)算限制以及客戶反饋)納入他們的研究和開發(fā)過(guò)程中具有挑戰(zhàn)性。

因此,本文寫作目的就是介紹我和同事在近年來(lái)的工作中所發(fā)現(xiàn)的具有特色的項(xiàng)目流程。希望本文能夠幫助數(shù)據(jù)科學(xué)家與他們一起工作的人,以反映他們獨(dú)特性的方式來(lái)構(gòu)建數(shù)據(jù)科學(xué)項(xiàng)目。

這個(gè)流程是基于小型初創(chuàng)公司的想法建立起來(lái)的:一個(gè)由數(shù)據(jù)科學(xué)家(通常是一到四個(gè)人)組成的小團(tuán)隊(duì),一次只負(fù)責(zé)一個(gè)人領(lǐng)導(dǎo)的中小型項(xiàng)目。規(guī)模更大的團(tuán)隊(duì)或那些以機(jī)器學(xué)習(xí)為先的高科技初創(chuàng)公司的團(tuán)隊(duì),可能會(huì)仍然認(rèn)為這是一個(gè)有用的結(jié)構(gòu),但在許多情況下,流程會(huì)更長(zhǎng),結(jié)構(gòu)也會(huì)有所不同。

 

 

我將流程分為三個(gè)并行運(yùn)行的方面:產(chǎn)品、數(shù)據(jù)科學(xué)和數(shù)據(jù)工程。在許多情況下(包括我工作過(guò)的大多數(shù)地方),可能并沒(méi)有數(shù)據(jù)工程師來(lái)執(zhí)行這些職責(zé)。在這種情況下,數(shù)據(jù)科學(xué)家通常負(fù)責(zé)與開發(fā)人員合作,幫助他解決這些方面的問(wèn)題(如果他是全能大神:全棧數(shù)據(jù)科學(xué)家,那么他自己就可以憑一己之力解決所有的問(wèn)題??????)。因此,根據(jù)你的環(huán)境,每當(dāng)提到數(shù)據(jù)工程師時(shí),你都可以用數(shù)據(jù)科學(xué)家來(lái)取代之。

在時(shí)間軸上,我將這個(gè)流程分為四個(gè)不同的階段:

♦ 范圍界定

♦ 研究

♦ (模型)開發(fā)

♦ 部署

我試著按順序把每一個(gè)階段都講一遍。

1. 范圍界定階段

定義數(shù)據(jù)科學(xué)項(xiàng)目的范圍比任何其他類型的項(xiàng)目都重要。

1.1. 產(chǎn)品需求

項(xiàng)目應(yīng)始終從產(chǎn)品需求開始(即使最初想法是技術(shù)或理論上的),需要在某種程度上通過(guò)產(chǎn)品 / 業(yè)務(wù) / 客戶成功人士進(jìn)行驗(yàn)證。產(chǎn)品人員應(yīng)該知曉這個(gè)特征大致最終應(yīng)該是什么樣子的,并且現(xiàn)有或新客戶愿意為此付費(fèi)(或者防止客戶流失 / 推動(dòng)訂閱 / 推動(dòng)其他產(chǎn)品的銷售 / 等等)。

產(chǎn)品需求并非完整的項(xiàng)目定義,而應(yīng)該作為一個(gè)問(wèn)題或挑戰(zhàn)。例如:“我們的客戶需要一種方法來(lái)了解如何使用他們的預(yù)算”或 “我們沒(méi)有設(shè)法讓老年客戶繼續(xù)服藥,這就增加了客戶的流失率” 或“客戶會(huì)為一種能夠預(yù)測(cè)他們運(yùn)營(yíng)的機(jī)場(chǎng)高峰時(shí)段的產(chǎn)品支付更多的費(fèi)用”。

1.2. 初步解決方案構(gòu)想

這就是數(shù)據(jù)科學(xué)家與產(chǎn)品負(fù)責(zé)人、數(shù)據(jù)工程師和任何其他涉眾一起,為可能的解決方案提出不同的草圖的地方。這意味著通用方法 (例如,無(wú)監(jiān)督聚類 vs 基于提升樹的分類 vs 概率推理)和要使用的數(shù)據(jù)(如,我們數(shù)據(jù)庫(kù)中的特定表,或者我們尚未監(jiān)控或保存的某些特定用戶行為,或外部數(shù)據(jù)源)。

這通常還涉及一定程度的數(shù)據(jù)探索。在這里你無(wú)法做到真正深入的研究,但是任何有前途的 “唾手可得的成果” 都可以幫助指導(dǎo)你的想法。

數(shù)據(jù)科學(xué)家應(yīng)該領(lǐng)導(dǎo)這一過(guò)程,通常負(fù)責(zé)提供大多數(shù)解決方案的想法,但是,我會(huì)建議你使用所有參與構(gòu)思解決方案過(guò)程的所有人。我有幸從后端開發(fā)人員、CTO 或產(chǎn)品負(fù)責(zé)人那兒得到了一個(gè)項(xiàng)目的最佳解決方案。不要認(rèn)為不同的、不太注重理論的背景會(huì)使人們無(wú)法參與這一階段,須知額外的想法和觀點(diǎn)總是有價(jià)值的。

1.3. 數(shù)據(jù)準(zhǔn)備和可訪問(wèn)性

團(tuán)隊(duì)現(xiàn)在應(yīng)該對(duì)希望用于探索可能的解決方案(或至少是第一個(gè)這樣的數(shù)據(jù)集或數(shù)據(jù)源)的數(shù)據(jù)有一個(gè)很好的了解。因此,在進(jìn)行下一階段的同時(shí),應(yīng)該已經(jīng)開始提供數(shù)據(jù)訪問(wèn)并為探索和使用做好準(zhǔn)備的過(guò)程。

如果在研究階段中,時(shí)間可用性不是很關(guān)鍵的話,那么這有時(shí)可能需要將大型數(shù)據(jù)及從生產(chǎn)數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)到臨時(shí) / 探索的對(duì)應(yīng)方,或者轉(zhuǎn)儲(chǔ)到較冷的存儲(chǔ)(如對(duì)象存儲(chǔ))中。相反,它可能意味著將大型數(shù)據(jù)轉(zhuǎn)儲(chǔ)從非常冷的存儲(chǔ)拉回到表或文檔形式,以實(shí)現(xiàn)快速查詢和復(fù)雜的計(jì)算。無(wú)論如何,這一階段都需要在研究階段開始,并且經(jīng)常會(huì)耗費(fèi)比預(yù)期更多的時(shí)間,因此,這是啟動(dòng)研究階段的最佳時(shí)機(jī)。

1.4. 范圍與 KPI

這一階段是關(guān)于共同決定項(xiàng)目的范圍和 KPI(Key Performance Indicators,關(guān)鍵績(jī)效指標(biāo))。

KPI 應(yīng)當(dāng)首先從產(chǎn)品的角度來(lái)定義,但要比之前更詳細(xì);例如,就上述三種產(chǎn)品需求而言,它們可能會(huì)變成 “客戶現(xiàn)在可以使用帶有 CTR 統(tǒng)計(jì)數(shù)據(jù)和每個(gè)類別圖像的儀表板”,或 “在未來(lái)兩個(gè)季度內(nèi),65 歲以上的用戶錯(cuò)過(guò)的服藥天數(shù)至少減少 10%”,或 “客戶都會(huì)收到每周的機(jī)場(chǎng)高峰時(shí)間的預(yù)測(cè),預(yù)測(cè)的力度至少為一個(gè)小時(shí),近似值至少為 ±50%”。

這些 KPI 應(yīng)該轉(zhuǎn)換為可衡量的模型指標(biāo)。運(yùn)氣好的話,這些將是非常困難的指標(biāo),如 “預(yù)測(cè)廣告的預(yù)期 CTR(點(diǎn)擊率),在至少 Y% 的情況下,對(duì)于任何運(yùn)行至少一周的廣告,以及對(duì)于任何擁有兩個(gè)月歷史數(shù)據(jù)的客戶來(lái)說(shuō),CTR 至少為 x%”。然而,在某些情況下,必須使用更柔和的指標(biāo),如 “與原始查詢相比,使用生成的擴(kuò)展查詢進(jìn)行主題探索所需的時(shí)間將縮短,和或與或結(jié)果的質(zhì)量將得到改善”。當(dāng)模型用于輔助某些復(fù)雜的人類功能時(shí),這點(diǎn)尤為正確。

從技術(shù)上講,即使這些指標(biāo)也可以非常嚴(yán)格地定義(在學(xué)術(shù)研究中通常亦如此),但是根據(jù)資源和時(shí)間的限制,我們可能會(huì)通過(guò)人工反饋來(lái)近似地對(duì)它們進(jìn)行定義。在這種情況下,每次反饋迭代可能需要花費(fèi)更長(zhǎng)的時(shí)間,因此,我們通常會(huì)試圖尋找額外的硬指標(biāo)來(lái)指導(dǎo)我們完成大部分即將進(jìn)行的研究迭代,每隔幾次迭代或者發(fā)生重大變化才會(huì)得到一次成本更高的反饋。

最后需要強(qiáng)調(diào)的是,范圍在這里特別重要,因?yàn)檠芯宽?xiàng)目有一種拖延的趨勢(shì),當(dāng)研究過(guò)程中出現(xiàn)新的可能性時(shí),或者當(dāng)檢查的方法僅部分滿足需求時(shí),研究項(xiàng)目的規(guī)模和范圍會(huì)自然地?cái)U(kuò)大。

范圍限制 1:我發(fā)現(xiàn),明確限制范圍會(huì)更為有效;例如,如果你認(rèn)為基于 Multi-Armed Bandit 的模型是最有前途的方法,那么你可以從它開始,你可以將項(xiàng)目范圍定義為模型開發(fā)的單個(gè)兩 / 三周迭代,無(wú)論準(zhǔn)確性如何都進(jìn)行部署模型(如,只要它超過(guò) 60%)。然后,如果準(zhǔn)確性方面的改進(jìn)有價(jià)值(在某些情況下,結(jié)果可能不那么重要),那么開發(fā)第二個(gè)模型可能被認(rèn)為是一個(gè)獨(dú)立的項(xiàng)目。

范圍限制 2:范圍限制的另一個(gè)變體是使用越來(lái)越復(fù)雜的復(fù)雜性;例如,第一個(gè)項(xiàng)目的目標(biāo)可能就是部署一個(gè)模型,這個(gè)模型只需為你自己的客戶成功人士提供相當(dāng)多的候選廣告措辭和顏色變化,第二種方法可能會(huì)嘗試構(gòu)建一個(gè)模型,提供一組更少的建議,讓客戶能夠看到自己;最終的項(xiàng)目可能會(huì)嘗試突出顯示單個(gè)選項(xiàng)的模型,低于它的數(shù)量,并為每個(gè)變化增加 CTR 預(yù)測(cè)和人口覆蓋范圍。

這已經(jīng)與軟件工程有了很大的不同,在軟件工程中,組件通常是為了增加規(guī)模而不是增加復(fù)雜性而迭代的。

然而,metric-to-product-value 函數(shù)可能是一個(gè)階躍函數(shù),這意味著在某個(gè) X 值下執(zhí)行的任何模型對(duì)客戶都沒(méi)有用處;在這些情況下,我們寧愿選擇迭代,直到該閾值被抑制。然而,雖然這個(gè) X 在某些情況下可能非常高,但我認(rèn)為產(chǎn)品 / 業(yè)務(wù)人員和數(shù)據(jù)科學(xué)家都傾向于高估這一步驟的高度;很容易說(shuō)明,準(zhǔn)確率低于 95%(例如)的任何東西都沒(méi)有價(jià)值,不能出售。然而。在許多情況下,對(duì)產(chǎn)品假設(shè)的仔細(xì)檢查和挑戰(zhàn)可能會(huì)產(chǎn)生非常有價(jià)值的產(chǎn)品,這些產(chǎn)品在技術(shù)上可能沒(méi)有那么苛刻的要求(至少在產(chǎn)品的第一次迭代中是這樣)。

1.5. 范圍和 KPI 的批準(zhǔn)

最后,產(chǎn)品負(fù)責(zé)人需要批準(zhǔn)范圍并定義 KPI。數(shù)據(jù)科學(xué)家的工作就是確保每個(gè)人都了解范圍的含義:包含哪些內(nèi)容以及優(yōu)先級(jí),產(chǎn)品 KPI 和模型開發(fā)過(guò)程中指導(dǎo)他的更難指標(biāo)之間的關(guān)系,包括字母接近前者的程度。明確地說(shuō)明這一點(diǎn)可以防止出現(xiàn)模型的消費(fèi)者(產(chǎn)品和業(yè)務(wù)人員)在模型開發(fā)期間或者之后才知道優(yōu)化了錯(cuò)誤的指標(biāo)的局面。

關(guān)于范圍的總論

這個(gè)階段在很多地方都被忽略了,數(shù)據(jù)科學(xué)家急切地開始挖掘數(shù)據(jù)并探索關(guān)于可能解決方案的論文;然而根據(jù)我的經(jīng)驗(yàn),這幾乎總是最槽糕的。跳過(guò)這一階段可能會(huì)導(dǎo)致花費(fèi)數(shù)周或數(shù)月的時(shí)間來(lái)開發(fā)很酷的模型,而這些模型最終無(wú)法滿足實(shí)際需求;或者在一個(gè)非常特定的 KPI 中失敗,而這個(gè) KPI 本可以通過(guò)某些預(yù)先設(shè)想來(lái)明確定義。

2. 研究階段

2.1. 數(shù)據(jù)探索

這就是樂(lè)趣的開始!在確定范圍之后開始這一階段的主要優(yōu)勢(shì)是,我們的探索現(xiàn)在可以由我們決定的實(shí)際硬 KPI 和模型指標(biāo)來(lái)指導(dǎo)。

像往常一樣,在探索和開發(fā)之間要取得平衡;即時(shí)有明確的 KPI,在某種程度上探索一些看似無(wú)關(guān)的途徑也是有價(jià)值的。

到目前為止,數(shù)據(jù)工程應(yīng)該可以得到所需的初始數(shù)據(jù)集。但是,在這一階段中,經(jīng)常會(huì)發(fā)現(xiàn)探索數(shù)據(jù)中的一些缺陷,并且可能會(huì)將其他數(shù)據(jù)源添加到工作集中。數(shù)據(jù)工程師應(yīng)為此做好準(zhǔn)備。

最后,雖然此處與文獻(xiàn)和解決方案評(píng)審階段分開,但它們通常是并行完成的,或者是交替進(jìn)行。

2.2. 文獻(xiàn)與解決方案評(píng)審

在這一階段中,將回顧學(xué)術(shù)文獻(xiàn)以及現(xiàn)有的代碼和工具。平衡也很重要;在探索和開發(fā)之間,在深入研究錯(cuò)綜復(fù)雜的材料之間,在快速提取有用信息和可能的用途之間。

就學(xué)術(shù)文獻(xiàn)而言,選擇在形式化證明和之前的文獻(xiàn)等方面有多深入,在很大程度上取決于時(shí)間限制和項(xiàng)目背景:我們是在為公司的核心能力打下堅(jiān)實(shí)的基礎(chǔ),還是在為一次性問(wèn)題設(shè)計(jì)解決方案?我們打算在學(xué)術(shù)論文中發(fā)表關(guān)于這一主題的研究成果嗎?你打算成為這個(gè)主題的團(tuán)隊(duì)專家嗎?

例如,假設(shè)一個(gè)數(shù)據(jù)科學(xué)家著手一個(gè)項(xiàng)目,幫助銷售部門更好地預(yù)測(cè)潛在產(chǎn)量或客戶流失率,他覺(jué)得自己對(duì)隨機(jī)過(guò)程理論的理解很膚淺,而這些問(wèn)題的許多常見(jiàn)解決方案都是監(jiān)理在這個(gè)理論的基礎(chǔ)之上。對(duì)這種感覺(jué)的適當(dāng)反應(yīng)可能非常不同;如果他在一家算法交易公司工作,那么他肯定會(huì)深入研究這一理論,甚至可能會(huì)參加一門關(guān)于這個(gè)主題的在線課程,因?yàn)檫@與他的工作非常相關(guān);另一方面,如果他在一家醫(yī)學(xué)影像公司工作,該公司專注于肝臟 X 射線掃描中腫瘤自動(dòng)檢測(cè),我認(rèn)為他應(yīng)該會(huì)盡快找到一個(gè)可行的解決方案,然后繼續(xù)前進(jìn)。

在代碼和實(shí)現(xiàn)的情況下,要達(dá)到的理解深度取決于技術(shù)方面,其中一些可能在過(guò)程的后期才會(huì)被發(fā)現(xiàn),但是,其中也有許多是可以提前預(yù)測(cè)的。

例如,如果生產(chǎn)環(huán)境僅支持為后端使用部署 Java 和 Scala 代碼,那么解決方案預(yù)計(jì)會(huì)以 JVM 語(yǔ)言提供,即使在這個(gè)研究階段,數(shù)據(jù)科學(xué)家也必須深入研究基于 Python 的實(shí)現(xiàn),因?yàn)殡S著它們進(jìn)入模型的開發(fā)階段,需要將它們轉(zhuǎn)換為 JVM 語(yǔ)言。

最后,在回顧文獻(xiàn)時(shí),請(qǐng)記住,不僅要向團(tuán)隊(duì)的其他成員展示選定的研究方向(或幾個(gè)方向)。相反,應(yīng)在作出選擇的同時(shí),對(duì)該領(lǐng)域和所有經(jīng)過(guò)審查的解決辦法作一次簡(jiǎn)短的審查,解釋每一個(gè)方向的優(yōu)點(diǎn)和缺點(diǎn)以及選擇的理由。

2.3. 技術(shù)有效性檢查

對(duì)于可能的解決方案,數(shù)據(jù)工程師和任何相關(guān)的開發(fā)人員都需要在數(shù)據(jù)科學(xué)家的幫助下,評(píng)估該解決方案在生產(chǎn)中的形式和復(fù)雜性。產(chǎn)品需求以及建議解決方案的結(jié)構(gòu)和特征都應(yīng)有助于確定適當(dāng)?shù)臄?shù)據(jù)存儲(chǔ)、處理(流 vs 批處理)、擴(kuò)展能力(水平和垂直)以及成本的粗略估計(jì)。

這是在這一階段執(zhí)行的一個(gè)重要檢查,因?yàn)橐恍⿺?shù)據(jù)和軟件工程可以與模型開發(fā)的同時(shí)開始。此外,從工程角度來(lái)看,建議的解決方案可能存在不足或者成本太高,在這種情況下,應(yīng)盡快確定并處理。在模型開發(fā)開始之前考慮技術(shù)問(wèn)題時(shí),在研究階段獲得的只是可以用來(lái)建議更適合技術(shù)約束的替代解決方案。這也是為什么在研究階段還必須對(duì)解決方案前景進(jìn)行一些概述,而不僅僅是在單個(gè)解決方案方向的另一個(gè)原因。

2.4. 范圍和 KPI 的驗(yàn)證

同樣,產(chǎn)品經(jīng)理需要批準(zhǔn)建議的解決方案,現(xiàn)在用更技術(shù)性的術(shù)語(yǔ)來(lái)表述,符合范圍和定義的 KPI。通常具有容易檢測(cè)到的產(chǎn)品含義的可能技術(shù)標(biāo)準(zhǔn)是相應(yīng)時(shí)間(及其與計(jì)算時(shí)間的關(guān)系)、數(shù)據(jù)的新鮮度以及有時(shí)緩存的中間計(jì)算(與查詢和批處理計(jì)算頻率相關(guān))、針對(duì)特定領(lǐng)域模型(域通常是客戶,但也可以是行業(yè)、語(yǔ)言、國(guó)家等)和解決方案可組合型(如,數(shù)據(jù)和模型結(jié)構(gòu)是否允許容易地將國(guó)別模型分解成區(qū)域模型,或者將幾個(gè)這樣的模型組合成大陸模型)的難度和成本,盡管還存在很多其他模型。

3. 開發(fā)階段

3.1. 模型開發(fā)和實(shí)驗(yàn)框架的建立

開始模型開發(fā)所需設(shè)置的數(shù)量和復(fù)雜性,在很大程度上取決于數(shù)據(jù)科學(xué)家可用的基礎(chǔ)設(shè)置和技術(shù)支持的數(shù)量。在較小的地方,以及尚未用于支持?jǐn)?shù)據(jù)科學(xué)研究項(xiàng)目的地方,設(shè)置可能會(huì)為數(shù)據(jù)科學(xué)家打開一個(gè)新的代碼存儲(chǔ)庫(kù)并啟動(dòng)本地 Jupyter Notebook 服務(wù)器,或者請(qǐng)求更強(qiáng)大的云機(jī)器來(lái)運(yùn)行計(jì)算。

在其他情況下,可能需要為更復(fù)雜的功能編寫定制代碼(如數(shù)據(jù)和模型版本控制或?qū)嶒?yàn)跟蹤和管理)。當(dāng)這個(gè)功能被一些外部產(chǎn)品或服務(wù)替代時(shí)(現(xiàn)在這類產(chǎn)品或服務(wù)越來(lái)越多了),可能會(huì)出現(xiàn)以鏈接數(shù)據(jù)源、分配資源和設(shè)置自定義軟件包的形式進(jìn)行的一些設(shè)置。

3.2. 模型開發(fā)

有了所需的基礎(chǔ)設(shè)施,實(shí)際的模型開發(fā)就可以真正開始了。這里所要開發(fā)的模型的范圍因公司而異,取決于數(shù)據(jù)科學(xué)家要交付的模型與要部署在生產(chǎn)中的服務(wù)或特征之間的關(guān)系和差異。在某種程度上發(fā)現(xiàn)差異的各種方法,可以通過(guò)考慮范圍來(lái)獲得。

在這個(gè)范圍的一端是一切都是模型的情況:從數(shù)據(jù)聚合和預(yù)處理,到模型訓(xùn)練(可能是周期性的),模型部署,服務(wù)(可能具備擴(kuò)展性)和持續(xù)監(jiān)控。另一方面,只考慮模型類型和超參數(shù)的選擇,通常也考慮高級(jí)數(shù)據(jù)預(yù)處理和特征生成,才能被認(rèn)為是模型。

公司在這一范圍上的位置取決于很多因素:數(shù)據(jù)科學(xué)家的首選研究語(yǔ)言;相關(guān)庫(kù)和開源可用性,支持公司的生產(chǎn)語(yǔ)言;有專門負(fù)責(zé)數(shù)據(jù)科學(xué)相關(guān)代碼的數(shù)據(jù)工程師和開發(fā)人員;以及數(shù)據(jù)科學(xué)家的技術(shù)能力和工作方法。

如果公司有一個(gè)非常全棧的數(shù)據(jù)科學(xué)家,再加上專門的數(shù)據(jù)工程師和開發(fā)人員的足夠支持,或者,有足夠的現(xiàn)有技術(shù)設(shè)施,專門用于數(shù)據(jù)湖和聚合、模型服務(wù)、擴(kuò)展和監(jiān)控(以及可能還有版本控制)的操作和自動(dòng)化。可以對(duì)模型進(jìn)行更廣泛的定義,并且在模型開發(fā)的大部分迭代中都可以使用端到端解決方案。

這通常意味著首先構(gòu)建完整的管道,從數(shù)據(jù)源一直到可擴(kuò)展的服務(wù)模型,并為數(shù)據(jù)預(yù)處理、特征生成和模型本身提供簡(jiǎn)單的占位符。然后對(duì)數(shù)據(jù)科學(xué)部分進(jìn)行迭代,同時(shí)將范圍限制在現(xiàn)有基礎(chǔ)上可用和可部署的部分。

這種端到端方法可能需要更多的時(shí)間來(lái)設(shè)置,并且模型類型和參數(shù)的每次迭代都需要更長(zhǎng)的時(shí)間來(lái)進(jìn)行測(cè)試,但是它節(jié)省了以后在產(chǎn)品化階段所花費(fèi)的時(shí)間。

就我個(gè)人而言,我很喜歡它,但是它的實(shí)現(xiàn)和維護(hù)過(guò)于復(fù)雜,而且并不總是合適的。在這種情況下,管道開始和結(jié)束的某些部分會(huì)被留到產(chǎn)品化階段中。

3.3. 模型測(cè)試

在開發(fā)模型時(shí),應(yīng)該根據(jù)預(yù)先確定的硬指標(biāo)連續(xù)測(cè)試模型的不同版本(以及伴隨模型的數(shù)據(jù)處理管道)。這樣就得到了對(duì)進(jìn)展的粗略估計(jì),并允許數(shù)據(jù)科學(xué)家確定模型何時(shí)運(yùn)行良好,足以保證進(jìn)行全面的 KPI 檢查。請(qǐng)注意,這可能具有誤導(dǎo)性,例如,在許多情況下,準(zhǔn)確度從 50% 提到到 70%,要比從 70% 提到到 90% 容易得多。

 

 

當(dāng)測(cè)試表明模型不準(zhǔn)確時(shí),我們通常會(huì)研究它及其輸出以指導(dǎo)改進(jìn)。然而,有時(shí)候性能上的差距很大,所選的研究方向的不同變化都達(dá)不到預(yù)期的效果——這是一個(gè)接近失敗的結(jié)果。這就可能需要改變研究方向,將項(xiàng)目送回研究階段。這是數(shù)據(jù)科學(xué)項(xiàng)目最難以接受的方面:回溯的可能性。

接近失敗的另一個(gè)可能結(jié)果就是目標(biāo)的改變。幸運(yùn)的是,這可能是產(chǎn)品方面的小問(wèn)題,但在技術(shù)上以更簡(jiǎn)單的方式重申了這一目標(biāo)。

例如,與其試圖生成一篇文章的一句話摘要,不如選擇文章中最能概括文章的句子。

最終可能的結(jié)果當(dāng)然是項(xiàng)目取消;如果數(shù)據(jù)科學(xué)家確信已經(jīng)探索了所有的研究途徑,并且產(chǎn)品經(jīng)理確信無(wú)法圍繞現(xiàn)有績(jī)效構(gòu)建有效產(chǎn)品,那么可能是時(shí)候轉(zhuǎn)向另一個(gè)項(xiàng)目了。不要低估了確定一個(gè)無(wú)法挽救的項(xiàng)目的能力和做出結(jié)束項(xiàng)目的決定的勇氣;這是快速失敗方法論的關(guān)鍵部分。

3.4. KPI 檢查

如果預(yù)先確定的硬指標(biāo)是唯一的 KPI,并且準(zhǔn)確地補(bǔ)貨了所有的產(chǎn)品需求,那么,當(dāng)推出最終模型、宣告開發(fā)階段結(jié)束時(shí),這個(gè)階段可以更正式一些。通常情況并非如此。

在更常見(jiàn)的情況下,硬指標(biāo)很好地近似了實(shí)際的產(chǎn)品需求,但并不是完美的。因此,這一階段是確保無(wú)法自動(dòng)檢查的軟指標(biāo)也能得到滿足的機(jī)會(huì),這是與產(chǎn)品和客戶的成功一起完成的。如果你還可以直接檢查客戶的實(shí)際價(jià)值,例如,當(dāng)你與設(shè)計(jì)伙伴一起工作時(shí),這是你所能找到的迭代最佳指南。

例如,假設(shè)我們正在處理一項(xiàng)復(fù)雜的任務(wù),比如,給定一個(gè)查詢,從一個(gè)巨大的語(yǔ)料庫(kù)中提取相關(guān)的文檔。團(tuán)隊(duì)可能已經(jīng)決定嘗試提高結(jié)果集的質(zhì)量,重點(diǎn)關(guān)注返回文檔的內(nèi)容和主題的差異,因?yàn)榭蛻粽J(rèn)為系統(tǒng)傾向于在頂級(jí)結(jié)果中局級(jí)非常相似的文檔。

對(duì)于結(jié)果集中的內(nèi)容差異,模型開發(fā)可能已經(jīng)取得一些可衡量的指標(biāo),給定一組測(cè)試查詢,每個(gè)模型根據(jù)它返回的前 20 個(gè)文檔的變化程度來(lái)評(píng)分。也許你可以測(cè)量某些主題向量空間中文檔主題之間的總距離,或者僅僅測(cè)量唯一主題的數(shù)量或重要單詞分布的平整度。

即使數(shù)據(jù)科學(xué)家確定了一個(gè)能顯著改進(jìn)這一指標(biāo)的模型,產(chǎn)品和客戶的成功人士也一定要查看測(cè)試查詢的重要樣本的實(shí)際結(jié)果;他們可能會(huì)發(fā)現(xiàn)難以量化但有可能解決的問(wèn)題,例如推高一些反復(fù)出現(xiàn)的非相關(guān)主題來(lái)增加結(jié)果差異的模型,或者通過(guò)包括來(lái)自不同來(lái)源的類似主題的結(jié)果(如,新聞文章 vs 推文,它們使用了非常不同的語(yǔ)言)。

當(dāng)產(chǎn)品人員確信模型符合項(xiàng)目的既定目標(biāo)(達(dá)到令人滿意的程度)時(shí),團(tuán)隊(duì)就可以繼續(xù)將其進(jìn)行產(chǎn)品化。

4. 部署階段

4.1. 解決方案產(chǎn)品化和監(jiān)控設(shè)置

如前所述,這一階段取決于公司中數(shù)據(jù)科學(xué)研究和模型服務(wù)的方法,以及幾個(gè)關(guān)鍵的技術(shù)因素。

產(chǎn)品化:在研究語(yǔ)言可用于生產(chǎn)環(huán)境的情況下,這一階段可能需要調(diào)整模型代碼,使其以可擴(kuò)展的方式工作;這一過(guò)程有多簡(jiǎn)單或有多復(fù)雜,取決于模型語(yǔ)言的分布式計(jì)算支持,以及所使用的特定庫(kù)和自定義代碼。

當(dāng)研究語(yǔ)言和生產(chǎn)語(yǔ)言不同時(shí),這可能還涉及到將模型代碼包裝在生產(chǎn)語(yǔ)言包裝器中,將其編譯為低級(jí)二進(jìn)制文件或用生產(chǎn)語(yǔ)言實(shí)現(xiàn)相同的邏輯(或找到這樣的實(shí)現(xiàn))。

還需要設(shè)置可擴(kuò)展的數(shù)據(jù)接收和處理,在這種情況下(非常常見(jiàn)),這并非模型的一部分。這可能意味著,例如,將運(yùn)行在單個(gè)核心上的 Python 函數(shù)轉(zhuǎn)換為管道流數(shù)據(jù),或者轉(zhuǎn)換為周期性運(yùn)行的批處理作業(yè)。在重要數(shù)據(jù)重用的情況下,有時(shí)候還會(huì)設(shè)置緩存層。

監(jiān)控:最后,建立了一種持續(xù)監(jiān)控模型性能的方法;在極少數(shù)情況下,當(dāng)生產(chǎn)數(shù)據(jù)的源不變時(shí),也許可以安全地跳過(guò),但是我想說(shuō)的是,在大多數(shù)情況下,你并不能確定源數(shù)據(jù)分布的穩(wěn)定性。因此,設(shè)置這樣的性能檢查,不僅可以幫助我們發(fā)現(xiàn)模型中在開發(fā)和產(chǎn)品化過(guò)程中可能遺漏的問(wèn)題,更重要的是,還可以發(fā)現(xiàn)源數(shù)據(jù)分布的變化,通常稱為 “協(xié)變量變化”(covariate shift),可以及時(shí)降低完美模型的性能。

以我們的產(chǎn)品為例,我們的產(chǎn)品是一個(gè)檢測(cè)皮膚斑點(diǎn)的 App,它會(huì)評(píng)估是否推薦用戶去看皮膚科醫(yī)生。當(dāng)一款流行的新手機(jī)上市時(shí),我們的數(shù)據(jù)可能會(huì)發(fā)生寫向量變化,因?yàn)檫@款新手機(jī)配備的攝像頭與我們數(shù)據(jù)中的攝像頭有很大的不同。

4.2. 解決方案部署

如果一切設(shè)置都正確的話,那么這個(gè)階段可以總結(jié)為,希望按下一個(gè)按鈕,將新模型(以及為其服務(wù)的任何代碼)部署到公司的生產(chǎn)環(huán)境中。

部分部署:但是,為了測(cè)試該模型的有效性(例如,減少客戶流失或增加每個(gè)用戶的平均月支出),可能會(huì)將模型部署到只有部分用戶 / 客戶的環(huán)境中。這樣就可以能夠直接比較用戶群中的兩個(gè)(或更多)組之間的任何可測(cè)量的 KPI 的影響。

你可能不希望將模型部署到每個(gè)人的另一個(gè)原因是,它是為了滿足特定客戶或一群客戶的需求而開發(fā)的,或者它是高級(jí)功能或者特定計(jì)劃的一部分。或者,該模型可能具有針對(duì)每個(gè)用戶或客戶的個(gè)性化元素;這有時(shí)可以通過(guò)實(shí)際考慮客戶特征的單一模型來(lái)實(shí)現(xiàn),但有時(shí)需要為每個(gè)客戶實(shí)際訓(xùn)練和部署不同的模型。

無(wú)論如何,所有這些場(chǎng)景都增加了部署模型的復(fù)雜性,并且取決于公司現(xiàn)有的基礎(chǔ)設(shè)施(例如,如果你已經(jīng)將某些產(chǎn)品功能部署到客戶子集中),那么就可能需要你的后端團(tuán)隊(duì)進(jìn)行大量的額外開發(fā)。

當(dāng)模型要部署在終端產(chǎn)品上時(shí),如用戶電話或可穿戴設(shè)備,這個(gè)階段會(huì)變得更加復(fù)雜,在這種情況下,模型部署可能只會(huì)作為部署的下一個(gè) App 或固件更新的一部分來(lái)進(jìn)行。

產(chǎn)生偏差:最后,由于另一個(gè)原因,對(duì)于數(shù)據(jù)科學(xué)團(tuán)隊(duì)來(lái)說(shuō),所有部分部署的案例實(shí)際都是一個(gè)緊迫問(wèn)題。這自然會(huì)在模型將開始積累的未來(lái)數(shù)據(jù)中引入偏差,模型將開始由具有可能獨(dú)特特征的用戶自己對(duì)數(shù)據(jù)進(jìn)行操作。根據(jù)產(chǎn)品和特定的偏差特征,這可能會(huì)對(duì)模型在野外的性能產(chǎn)生很大的影響,也可能對(duì)未來(lái)模型在此期間積累的數(shù)據(jù)進(jìn)行訓(xùn)練產(chǎn)生很大的影響。

例如,在設(shè)備更新方面上,較早更新 App / 固件的用戶往往屬于特定的人群(更年輕、更精通技術(shù)、更高收入等等)。

4.3. KPI 檢查

我在此添加了另一個(gè) KPI 檢查,因?yàn)槲艺J(rèn)為在部署和實(shí)際使用后驗(yàn)證了解決方案的性能和對(duì)產(chǎn)品和客戶需求的成功相應(yīng)之前,不能將其標(biāo)記為已交付。

這可能意味著在部署之后的幾周內(nèi),對(duì)結(jié)果數(shù)據(jù)進(jìn)行篩選和分析。然而,當(dāng)真正客戶實(shí)際參與進(jìn)來(lái)時(shí),這還必須涉及到產(chǎn)品或客戶成功人士,與客戶一起試圖了解模型對(duì)他們使用產(chǎn)品的實(shí)際影響。

4.4. 解決方案交付

用戶和客戶皆大歡喜。產(chǎn)品人員已經(jīng)成功圍繞模型構(gòu)建或調(diào)整了他們想要的產(chǎn)品。我們完成了目標(biāo),舉杯慶賀,雀躍歡呼,結(jié)局圓滿。

解決方案已經(jīng)交付,我認(rèn)為此時(shí)項(xiàng)目已經(jīng)完成。然而,它確實(shí)以一種特殊的方式存在著——那就是 “維護(hù)”。

維護(hù)

在為模型設(shè)置健康檢查和持續(xù)的性能監(jiān)控之后,這些可以觸發(fā)項(xiàng)目工作的短暫爆發(fā)。

當(dāng)某些東西似乎看上去很可疑的時(shí)候,我們通常會(huì)首先查看數(shù)據(jù)(如協(xié)變量變化),并且還可能會(huì)模擬模型對(duì)我們懷疑引起問(wèn)題的各種情況的反應(yīng)。這些檢查的結(jié)果可以讓我們?cè)趲讉(gè)小時(shí)的少量代碼改動(dòng)、模型的重新訓(xùn)練和完整的模型開發(fā)迭代之間做任何事情(如本文開頭圖中所示),嚴(yán)重的情況下,有時(shí)還需要回到研究階段嘗試完全不同的方向。

最后的話

這是對(duì)數(shù)據(jù)科學(xué)項(xiàng)目流程的建議。它也是非常具體的,為了簡(jiǎn)單起見(jiàn),它的范圍也是有限的,顯然并不能涵蓋實(shí)踐中存在的這個(gè)流程的許多變化。這也是我的經(jīng)驗(yàn)所得。

關(guān)于這一主題還有另一個(gè)卓越的觀點(diǎn),我建議讀者閱讀我朋友 Ori 撰寫的關(guān)于數(shù)據(jù)科學(xué)的敏捷軟件開發(fā)的文章!

作者:Shay Palachy 譯者:劉志勇

請(qǐng)參閱:

https://towardsdatascience.com/data-science-agile-cycles-my-method-for-managing-data-science-projects-in-the-hi-tech-industry-b289e8a72818

原文鏈接:

https://towardsdatascience.com/data-science-project-flow-for-startups-282a93d4508d

標(biāo)簽: 安全 代碼 服務(wù)器 數(shù)據(jù)庫(kù)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:YouTube 深度學(xué)習(xí)推薦系統(tǒng)的十大工程問(wèn)題

下一篇: 7個(gè)新手?jǐn)?shù)據(jù)講述者犯下的致命錯(cuò)誤