0x01 廣告
經過一年多的努力,我的書 《分佈式機器學習——系統、工程與實戰》終於上架了,在這裏打個廣告。
詳細信息請參見:
https://item.jd.com/10079265638834.html
http://product.dangdang.com/29594628.html
接下來是一些碎碎念。
0x02 感謝
在此書(包括博客)的寫作過程之中,我參考了大量的論文,博客和視頻,在此,對這些作者再次表示深深的感謝。經常閱讀我博客的朋友應該知道,我在每篇文章之後都會列出大量參考鏈接。但是,出版社的規定是:書籍中不能出現任何的網址。因此我只能把這些參考鏈接提供給出版社,由出版社用網頁方式呈現。還請大家理解。
0x03 痛苦
寫書的難度和痛苦遠遠超過了我的預期。出版書是一個極其複雜的系統工程,沒有經歷的人很難體會。比如,爲了把文字從markdown遷移到word,並且依據編輯的要求進行排版,我專門寫了一個程序進行相關處理。又比如,技術人員和文字編輯可能對於同一段文字的理解會完全不同。技術人員會覺得這段文字很正常很通順,但是從文字編輯的角度看,則會有很大問題,而編輯的意見無疑是正確的。因此技術人員需要依據編輯的意見對文字進行整改。本書就前後經歷了很多次大修改,這對於作者和編輯(們)都是一項極其繁雜的工作,再次感謝我的責任編輯黃愛萍在本書出版過程中給我的幫助。
0x04 遺憾
關於本書,還有不少遺憾,比如:
本書沒能早點面世
因爲去年疫情的原因,編輯的工作受到很大影響,導致本書起碼推遲幾個月才能面世。
很多內容未能收錄
我一共寫了130多篇分佈式機器學習方面的博客。我把這130多篇博客都進行了整理,繪製了很多新圖,也添加了不少內容,很多行文、邏輯都做了調整和修改,一共整理了將近兩千頁word文檔。然而最終在和編輯討論之後,只從中選擇了600頁放入書中。這導致很多博客內容未能在書籍之中體現,比如數據加載,彈性訓練,通信優化,HugeCTR,Alink,深度學習和大數據結合等部分都沒有體現。
0x05 論文
我在書和博客之中會對一些論文進行翻譯解讀,爲什麼要這樣做?這是因爲面對一個新領域,個人的意見是按照“論文→文檔→用戶手冊→註釋→源碼”這個順序來學習。爲什麼按照這個順序?因爲這個順序的優勢是:
從抽象邏輯(或者說體系架構)到具體細節。
-
論文是作者的思想被提煉並進行邏輯化、體系化的結果,文檔次之,而且重讀經典論文,收穫是多維度的。
-
文檔和手冊會從使用或者注意點方面幫你完成對這個框架整體的認識。在深入理解框架功能的基礎上,再帶着實際問題在源碼中求解,纔會深刻理解框架的設計思路和理念。
-
註釋和源碼則呈現了大量的細節。因爲技術文檔往往不全,所以只能從源碼來逆向反推設計。
從人的思想到機器的思想。
-
註釋是作者給閱讀者看的,代碼是作者給機器看的。
-
註釋會告訴你爲什麼這樣實現(Why),代碼告訴你怎麼實現(How)。
對於我們來說,應該首先尋求一種思維的改變(使用另外一種不同的方式來思考問題),和已有知識體系的更新與整理(打破原有條條框框來建立一個更大的框架),然後纔是用代碼來分析驗證(畢竟紙上得來終覺淺)。當然,很多時候我們只有源碼,那麼就只能從源碼中根據細節來探尋,重建論文作者的思路,提煉其精華,爭取和作者達到一個跨越空間和時間的震盪和共鳴。共鳴越多,你就越接近論文作者。
0x06 方法
有的同學問我爲什麼可以研究這麼多內容,有什麼好的研究方法。其實我也沒有很好的學習方法,可能因爲我比較喜歡鑽研技術,如果某一個技術點沒有想明白,我就會圍繞這個點進行深入挖掘,而往往爲了弄明白一個知識點,就會研究其他相關知識點,這樣從一個點很容易延申到一條線,進而擴展到一個面,最後形成一張網,就構建了自己的一個小小的知識體系。
0x07 展望
過去的一年實在太忙了,換了新城市新公司,大家一起從無到有構建一個新產品,幾乎沒有自己的時間,而僅有的閒暇時間都用來整理書籍。導致有幾篇一年前寫的文稿都沒有整理。希望在接下來的日子中,能夠有時間把這些文稿整理出來發佈。也希望能夠有時間研究一些新東西,最重要的是,希望我們產品可以大賣。
好久沒有發佈博客,突然發現,這幾個網站的後臺都不會使用了......