【深度总结】聊聊为什么技术要先广后精,对技术新人的几点建议
文章來源于AI的那些事兒,作者黃鴻波
在我30歲生日那天的文章中,我在文末給技術新人的幾點建議中,第一點就提出來了“技術要先廣后精”這個想法,今天我想針對這一點來談談我的看法。
企業喜歡什么樣的人
我認為,IT行業實際上是一個兩極化非常嚴重的行業,有的人工資非常高,有的人卻找不到工作,這是為什么呢?要回答這個問題,我們首先要了解工資高的這一波人中,都有什么共同點。我從拉勾網上找了2個AI技術總監和技術專家的招聘要求:
?
?
我們可以著重來看一下上面用紅色圈起來的部分,我們先來看下第一個招聘JD,在職位描述中,這個JD很明確的指出了,需要做業務需求的理解和解決,問題的公關,創新探索和推動研發上線,而在下面的任職要求中,我們也可以看到,他所要求的不僅僅是你對CV這一個專業領域的積累,更重要的是你對深度學習的其他技術,如對抗生成、強化學習等技術的熟練程度,以及對Hadoop、分布式、實時流計算等有著扎實的基礎。
我們再來看下第二份JD,在第二份JD中職位描述的第一條很明確的說明了需要參與AI算法系統的建設,以及平臺的搭建,而在任職要求中,除了要求對深度學習和機器學習相關技術的掌握之外,還要對數據處理、web前后端以及自動化運維有著比較強的開發能力,甚至對平臺開發的能力也有一定的要求。
這兩份JD都是總監和技術專家級別的JD,我們不難發現,在這兩份JD中有一個非常明顯的技術點,那就是它們都不是要求你在某一個領域的技術非常牛,而是要你除了對CV或NLP比較熟悉之外,還需要對分布式計算、AI周邊領域甚至前后端及自動運維都比較熟,也就是說現在企業招人的時候,更注重的是一個人才的復合型。
這個時候有人可能會說,那如果我就是找NLP開發工程師,或者NLP高級工程師,那會不會就只會NLP技術就可以了呢?我們再來看另外一份JD。
?
在這份JD中,我們可以看到,工作經驗只要1~3年,但是卻仍然需要對分布式計算、數據挖掘等相關內容比較熟悉,那么這個時候,我們似乎就有些疑問了,為什么現在都是在這么要求,我只在我自己的專業領域中做的好不可以嗎?
AI產品從無到有的過程
實際上,掌握多種技術,不僅是對企業負責,也是對自己負責。我們先來說說在AI領域中,一個實際的產品從無到有的過程。
說到產品從無到有的過程,我不想按照一個正常的套路來講,我們現在假設這些都是1個人來完成,呃......假如我們就做一個簡單的文本審核平臺吧。
老板突然布置下來一個任務,做一個文本審核平臺,目標只有1個,那就是,如果有黃色內容和涉政內容進來,就統統給過濾掉。
這個需求看起來不難,那么我們來看看怎么實現以及都會用到什么技術吧。
用什么模型?
遇到這個問題,有經驗的同學首先就會想到2種解決思路,一種是用規則過濾,一種是做一個多分類的模型,假設我們就做一個多分類的模型吧,這個模型是3分類,涉黃、涉政和正常。我們現在假設選用textcnn模型作為我們目標的訓練模型。(這里就會用到了深度學習技術和機器學習技術)
爬取數據
那么我們要想訓練這個模型,第一步就是要弄到數據,一般來講,公司很難有這種大批量的涉黃和涉政數據,所以這里就需要我們掌握爬蟲相關的技術。
數據處理
假設我們的數據以及爬取到了,下一步該干嘛呢?沒錯,我們應該把這些數據給處理成我們模型可以接受的格式,然后喂到模型里進行訓練,那么這里,我們可能就會需要使用到數據處理、正則表達式、分詞技術以及其他的文本處理技術。
數據訓練
現在數據也有了,也處理成了我們想要的輸入形式了,那么接下來要做的就是把這些數據喂到模型里進行訓練,那么在這里就需要對深度學習的框架有一定的了解,可以是TensorFlow、pytorch和keras中的一種,那么這也是我們要學的知識點。
模型調參
現在模型訓練好了,但是我們在驗證的過程中發現總是有一類數據模型訓練的有問題,或者loss不收斂,那么這個時候我們就要做模型調參工作,不錯,這個時候你又化身成了一個調參工程師。
模型部署
現在模型終于調好了,準備給領導看效果了,可是你發現領導可能不懂AI,也不愿意看一片黑漆漆的控制臺,老板此時說了:“能不能讓我屬于一句話,就告訴我它是涉黃、還是涉政還是正常,最好是弄個接口之類的吧,我對http調用還是比較熟悉的”,好吧,這個時候你又需要把你訓練好的模型部署發布成一個接口,這時候,你會發現又有新的知識了,因為你只對python熟悉,所以你通過查找資料,發現可以使用flask框架來做相關的http接口,當你把接口搭建好了之后,發現你還沒有讓接口和模型聯系在一起,這個時候,你又需要去了解TensorFlow模型如何打包成Pb格式的數據,如何進行模型的調用,如何加載,ok,這個時候,你又不得不去學習python中的消息隊列,管道以及與TensorFlow相關的模型部署和搭建相關的知識。
模型上線
現在模型部署好了,老板也能夠通過接口快速的得到響應了,老板表示非常滿意。那么接下來就要把這個模型上線給到用戶去用了。這還不簡單,直接把http接口暴露給公網不就好了。
?
模型終于上線了,用戶終于可以用了,第一天訪問量30個人,沒問題,效果很好。這個口碑一傳十、十傳百的傳開了,終于有一天,并發量到了100了,然后你會發現,郵箱里收到了各種time out的報錯日志。好吧,這個時候又要學新的知識了,如何進行分布式部署,如何進行負載均衡,Nginx,uwsgi,這幾個新的知識又要開始學了,最終模型順利穩定的上線了。
經過了這一番折騰,你會發現你不知不覺的學會了如下內容:
1、模型的選型
2、爬蟲
3、數據處理和基礎NLP內容
4、深度學習框架
5、模型調參
6、http接口
7、Flask
8、TensorFlow工程化
9、Python管道和隊列
10、負載均衡
11、Nginx
12、Uwsgi
13、Linux操作系統 等等
如果這個時候老板讓你再做的好看點,說不定你還要去學習前臺界面開發相關的內容。
?
所以,我們再回到最初的問題上,為什么在各個企業的招聘JD上會有這么多的要求,實際上不是企業要求高,而是這些我們真的需要掌握。
?
技術要先廣后精
上面啰嗦了那么多,其實,我只是想跟大家說明一個道理,那就是,對于一個IT新人或者說是AI新人來講,我們一定要抱著技術要先廣后精這個心態去做事。
實際上,技術的積累是一個長期的過程,我們應該時時刻刻的注重技術的積累。而我認為,技術的積累應該從本科就開始,甚至說工程化的積累,我們就應該從本科開始。
在上大學的時候,我們實際上就已經可以做很多的項目了,大學的課程包含著Java、C#、jsp、asp.net等,一般來講,每門課程老師也都會布置一個大作業讓大家去完成,一個注重積累的人,會認真的對待老師的每一次大作業,并對大作業進行持續的改進,而這個過程實際上就是一個積累的過程。當你完成了對一個項目從0到1 的部署,你會發現你所掌握的知識點變得非常多,你就可以把所有的知識體系聯系到一起,形成一套自己完整的知識體系。
當你在走上工作崗位時、或者是面試的時候,你就會發現,你可以通過一個點來談及一個面,然后考慮問題就會從宏觀的角度去考慮,到這個時候,你就會發現,整個人的眼界都變了,看問題的角度也變了,很多事情你會想的非常的全面,老板也會越來越重視你。
?
所以,話又說回來,為什么我認為技術要先廣后精,因為只有站在全局來看待問題,你才能夠知道應該從那個點突破,來去深入的研究,只有這樣,我們才能使自己的職業道路走得越來越寬。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的【深度总结】聊聊为什么技术要先广后精,对技术新人的几点建议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下载量过百万的吴恩达机器学习和深度学习笔
- 下一篇: YOLOv4重磅发布,五大改进,二十多项