2月24日,字節跳動宣布,今年春季招聘為大學生開放超過6000個全職及實習生就業崗位。
據了解,字節跳動2020春招將持續近3個月。2月24日至4月30日為投遞和內推時間,3月中旬開展線上宣講會,3月上旬至5月中旬為筆試時間,3月上旬開始面試,並陸續發放offer。
字節跳動招聘負責人表示,2020年,字節跳動會繼續加大對人才的培養,傾注更多平臺資源,幫助社會創造更多的就業崗位。字節跳動將為應屆畢業生提供廣闊穩定的發展機會、完善的新人培養體系、平等開放的工作氛圍,以及有競爭力的回報和福利。
在字節跳動實習一種什麼樣的體驗?看看清華博士在字節跳動實習的故事。
3月的一天,蔣旻從字節跳動下班回到清華園,躺在宿舍床上興奮地睡不著覺。
他和mentor確定了接下來將參與主創的新項目,忍不住神神秘秘地給父母預告:「我最近可能要搞件大事。」
三個月後,字節跳動內部逐步推進落地一款名為BytePS的分布式深度學習訓練框架,性能方面超出現有「競爭對手」最高可達100%。拿某視頻分析任務舉例,本來訓練模型可能要10天,用BytePS後有望再加速20-30%。
很快,該項目在技術人愛逛的開原始碼平臺GitHub走紅,不僅一周內收穫上千贊,還登上了GitHub趨勢熱榜。
BytePS項目的主創,正是蔣旻和他的mentor易波、青陽,三人也引起了內部關注。「視頻、自然語言處理等很多組都找到我們,希望把它應用到他們的產品裡去,提升公司業務迭代效率。」
這是蔣旻第一次到業界實習,項目落地的成就感,也是他從未體會過的。
實習生也能挑大梁
蔣旻是清華計算機系博士三年級的學生,去年9月底,在導師推薦下加入了字節跳動AI Lab機器學習系統組。「接到offer時特別開心,來這邊可以嘗試些讓技術落地的事。組裡有我們領域的大牛,我剛讀博時就在看他的論文了,實習生也有專屬mentor。」
來之前,蔣旻就對實習充滿期待,來了後,仍然受到很大的震撼。「這裡有很多耳目一新的事,是我沒聽過或沒嘗試過的。」蔣旻沒有想到,實習生也能參與極具有挑戰性的項目,並且擔當項目的主要負責人。
開發BytePS的機會,不是突然來的。蔣旻入職時,AI Lab正在嘗試RDMA技術的性能優化,幫助視頻團隊提升機器學習訓練效率。「可以說,RDMA是BytePS的一個子集。BytePS在很多方面都做出了優化,而RDMA加速只是其中一塊。」
剛來不久,蔣旻接到了RDMA優化的任務。對他而言,這是個完全沒嘗試過的新技術。「最初幾周挺困難的,網上資料很少,得靠自己讀原始碼、跑實驗去摸索,和同事前輩多交流,一步步上手直到能獨當一面。」最終,蔣旻和同事將原本需要一周跑完的任務,縮短到了三四天。
雖然加速了三分之一,大家並不滿意。「這離我們希望的最優解還有一定距離。」
僅做RDMA加速還不夠,蔣旻與兩位mentor決定從更大的框架上做優化。「現在一些機器學習訓練仍要花費數天甚至數星期。我們發現已有的訓練框架都滿足不了需求,所以決定自己開發一套。」
三人找了間會議室,討論了一晚未來目標方向,合作開發BytePS的想法冒了頭。對已經工作幾年的易波與青陽而言,此時的實習生蔣旻,已經是可以並肩奮鬥的好搭檔了。「這是客觀的潛力和主觀的自我驅動疊加的結果。並不是他一開始就有多強,而是他抓住了機會,在實習做項目的過程中迅速成長到了足以挑大梁的水平,然後這件事就自然地發生了。」易波說。
不是誰都能走好「非主流」
也正是那天晚上,蔣旻失眠了。「我的兩位mentor對我的幫助很大,沒有他們的指導我自己肯定做不到今天這一步。」回首最關鍵的轉折時刻,他感慨說,那時才真正體會到公司為什麼經常鼓勵「在更大範圍尋求最優解」。
BytePS其實算是個「非主流」的項目。如果說開發一套訓練框架有兩條路可選,在過去三年,PS流派並不是行業內看好的那條。當蔣旻習慣性偏向選主流的AllReduce流派時,被更有經驗的易波點醒了,「他嗅覺很強,說我們應該先挖根到底把兩者的原理搞清楚,再去做對比。這對我來說可謂是靈光一閃,原來還可以這麼做!」
一番推理過後,蔣旻驚訝發現,從理論上而言,PS甚至比AllReduce可實現的效率提升高出一倍。「推導出這個數據的時候,我特別激動,晚上都睡不太安穩。覺得這個事如果真的搞出來,確實可以顛覆大家的認知。」
相信自己的理論推導是一回事兒,真正驗證又是另一回事兒。抱著對技術的極大熱情,蔣旻和兩位mentor說做就做。「不走尋常路當然有風險,字節跳動的技術氛圍就是包容試錯和創新,大家沒有雜念,單純希望從技術角度做個好東西出來,動力和執行力就會非常強。」
接下來的短短三個月,經歷的波折也是難以忘記的。蔣旻甚至經常會懷疑,自己是不是搞錯了,這條路其實走不通。
「我可能每周都要碰到覺得很難克服的困難,比平時做學校科研項目頻繁得多。」蔣旻說,BytePS是比較通用性的訓練框架,需要考慮性能,還要考慮是否方便使用和部署,如此種種加起來就意味著很多困難。何況項目進展越往後,代碼越複雜,找到錯誤並修正就越難。
「那個時候真的是焦頭爛額。」蔣旻回憶,在5月底項目快成功時,就遇到了一次大麻煩。代碼都寫完後,他認定能跑起來,結果就是不行,還怎麼也找不出問題在哪兒。
「挺痛苦的,基本每天無論做什麼都在想著這事兒,睡不了幾個小時就繼續爬起來去debug,一度感覺已經走不下去了,只能和mentor互相鼓勵。」花了整整一周時間,蔣旻才終於成功。而事實也證明,這個「不簡單」的麻煩,確實值得那麼多時間攻克。「是我們從沒想過的問題,這也給了我們後續更多啟發,編完代碼後,還是要跳出原有思維方式。」
BytePS在GitHub上的火熱度,超出了蔣旻的想像。起初,他只是晚上10點將其默默開源在了這個技術人都愛逛的平臺上,沒做任何宣傳。第二天一早,蔣旻發現項目收到了10個關注,而到了第三天,已經有兩百多個,再往後,點讚很快呈指數增長地破千。
「兩百多贊時非常激動,到後面越來越體會到項目的影響力。在大家都以為AllReduce已經夠好時,我們算是正式提出PS更好,並且把提升一倍效率做出來的第一人。」蔣旻覺得,這個「非主流」項目能最終做成,正是與公司這種開放、單純的技術氛圍脫不開關係。「再拿我們每周一次的技術分享會舉個例子,你甚至可以很輕易請到外組大牛來交流,很多talk是潛移默化的,雖然並不直接相關,但可能從某個idea上就啟發了我們。」
這裡有學校體驗不到的
實習近一年來,這也是蔣旻第一次經歷從自己開發、開源再到落地的完整項目過程。「我以前沒有實習過,不知道公司裡的工作是怎麼樣的,這次都提前感受到了。」
除了人才團隊的支持,硬體資源也帶來了不小震撼。「公司訓練平臺伺服器的這種數量規模,對於提高項目試驗說服力就非常有幫助,這都是學校裡做科研體驗不到的。」
此外,技術成果迅速落地的體驗,讓蔣旻對務實和極致有了更深理解。他發現,哪怕在開發過程中做得很好,實際還是會有疏忽之處。比如一個代碼接口,設計時覺得它已經足夠好用,真正落地時卻發現不完善,性能也不理想。「這就是可以快速習得的教訓,我們在開始設計前,應該把真實的工業界需求調研清楚,提前避坑。」蔣旻說,「以前在學校時,經常說差不多就行了,但到了公司,確實是精益求精。指標上本來能提高5%的事情,我們要嘗試提升到10%。」
回頭再看,作為在讀博士生,蔣旻從沒想過加入一家公司實習,會給自己帶來如此大的收穫。最初,他只是希望來字節跳動見見論文中常看到署名的大牛,做些偏研究性質的工作。但現在的情況,已經遠遠超出了預期。
「喜悅是雙重的。除了可以做學術研究,更讓我興奮的還是能把技術在公司落地,推廣給更多項目使用。」實習近一年,蔣旻想繼續待下去。「我們現在去公司各個組宣講,發現他們還有很多需求,有很多機會和問題等著我們去做。」
免責聲明:市場有風險,選擇需謹慎!此文僅供參考,不作買賣依據。