網路城邦
上一篇 回創作列表 下一篇  字體:
我想破除資訊系統中的黑盒子迷思!
2023/09/27 05:45:15瀏覽1086|回應0|推薦4

我不是資訊科班出身,電腦專業都是自學的!大家都知道電腦知識多又複雜,要不經過系統化教學,完全從零開始自學是很難的!但這種不正規過程其實也有好處,就是我40歲轉行(海洋→資訊)開始認真學電腦時已經是常識極為豐富的中年人,不容易被資訊領域中很多約定成俗的不合理成見、陋習或陋規所洗腦約束!現在資訊領域的專家們年紀多半都比我小了,我當然不會預設他們甚麼都比我懂,我會更理性分析參考所有他們的意見,不會照單全收的!

大叔大媽們學電腦時比較卡,大家都會說那是老古板死腦筋,或直接判定他們是電腦白痴?這絕對不是因為40歲的人比20歲的人笨!初學的中年人腦中的「非電腦」領域常識多半沒有錯,但是需要整合電腦與非電腦兩類資訊的時間會比年輕人長。我就是這樣,幾十年來至今都還常被資訊科班出身的人嘲笑我根本是外行?但我常常是那個看出國王根本沒穿新衣的天真小孩!

一個18歲的聰明小孩讀資工系會很快全盤接受資訊領域的一切觀念與技術,我則是一個不受教,還囉哩囉嗦愛找碴的老頭子!一路上都對很多資訊領域的成見陋規很有意見。但是20多年後回顧這段歷程,我從外行到有今天成功的軟體事業,關鍵都是因為我對「常識」的尊重遠高於所謂的「資訊專業」觀點!

事後諸葛們會說我很有「創意」或「遠見」?但我自己的感覺不是這樣!每次我做了與眾不同的選擇,都是因為我覺得資訊領域既有的觀念做法違背了我從小建立培養的「常識」!我只是想選擇一個更符合自己和一般人常識的作法,而不是繼續迎合資訊領域大神們的旨意而已!而且每次都成功!消極來看,如果我處處都跟著資訊領域主流觀點拿香跟著拜,受過的訓練又沒他們豐富完整,我也不可能會有任何重大突破的!

今天的主題也是讓我困惑很多年,覺得完全違背常識的一個資訊領域怪事?就是大家都對不知內容的黑盒子特別尊崇?越不懂的黑盒子就信奉得越虔誠?AI模組黑盒子就是最近的亂象!資訊人都說他們知道那是甚麼,其實他們都不知道!如果知道,就自己寫出一樣功能的程式就好了,何必花錢買呢?反駁我吧!

觸發我寫這個題目的導火線,是昨天我想看某個教學影片,介紹使用某種CNN(YOLO)做的模組,可以計算公路上的車流量。那個模組本身是在Linux環境開發的,所以無法在一般的Windows作業系統執行,為了解決這個問題,就出現了一個稱為WSL的「子系統」可以安裝在Windows系統內執行Linux程式。

但是這些疊床架屋的「專業」程式,絕對不像我們一般人用的Office或PhotoShop那麼好安裝,你必須理解很多電腦環境的知識,手動安裝調整一大堆參數,甚至再安裝一些其他的附屬程式,才能讓他()開始運作?所以那個教學影片我看不到十分鐘,WSL還沒安裝好,我就撐不住睡著放棄了!好像看一個插入廣告太長的視訊。

我的RD是我一手帶出來的徒弟,她的資訊能力與觀念可以說是用我的模子塑造出來的!她去讀碩士班時也常抱怨,很多課大半時間都在教這種東西?就是安裝設定一些軟硬體的黑盒子了!她就說:如果該軟硬體一升級改版,所學的這些「技術」就通通沒用了!真正重要的核心技術,應該是黑盒子裡的神奇功能是怎麼作到的?該怎麼才能自己寫程式做出一樣的功能?這些演算法原理內容卻完全被排擠到沒時間教了?這算是甚麼研究所?比較像是職訓班吧?

這種事情在很多資訊科系都變成「日常」了!但是我的常識總提醒我這種學習根本沒有意義!我第一次對這種事情感冒,是我讀博士班時已經有很多海洋專業軟體必須在Linux系統運作,所以電腦都會裝Windows / Linux雙系統。Windows不是問題,但在那個時代(199X年)Linux完全不是商業系統,要正確安裝超麻煩的!即使是很熟悉細節的玩家專家也會搞上一整天!

我的常識直覺讓我一開始就不想「學習」如何安裝Linux,我連書都不想買!直接把應該買書的錢拿去聘請熟悉Linux的研究助理,假日時間打工幫我裝好!我學那個幹嘛?家裡馬桶壞掉我也不會學怎麼自己修理的!那種學習實際效益太低了嘛!我家馬桶一輩子都壞不到三次,我必須花三個月學會當修馬桶技師嗎?

如果這樣疊床架屋的把黑盒子軟硬體經過很複雜的手續卡進我的系統是必須的,是確定可以達到最高效率的,我還會存有敬意!但是我的常識又說話了!不可能的嘛!一樣1+1=2的運算,在一樣的電腦硬體上,你用Linux系統做就會比Windows系統快嗎?剛好用Linux寫程式的工程師都很天才?用Windows的都比較笨?你信嗎?我就是一個不會用Linux的笨蛋!我整天用VB開發軟體,連C語言都不熟的!真的很像只會講台語的鄉下阿伯(老師)?

根據我的常識,程式會跑最慢的狀況應該是Windows明明可以自己做的事情,還要找Linux工程師大老遠跑到他家的電腦來工作!這個程序鐵定最慢,卻也正是目前大多數玩AI的人天天在做的事,他們稱之為「專業」?確實,別說一般人,連我和我的RD(有九年業界經驗)都玩不來這種複雜遊戲的!很專業難玩,但是根本沒太大效益。

還好,這些年我們公司一直在走另一條比較符合常識的捷徑,日子反而過得更好!譬如文章最前面展示的車牌辨識案例,你能想像完成一整個車牌辨識流程只需要12毫秒,就是幾乎只需百分之一嗎!如果回到幾年前,我也會以為這一定是裝了甚麼我無法理解的AI黑盒子,特殊的加速軟體或硬體?甚至是專為車牌辨識設計的IC晶片?

用正常的電腦,只花12毫秒就能辨識一張車牌?說是吹牛都嫌誇張了,但卻是我眼前的事實!這是我手上隨時都可以賣給你的單純Windows作業系統下的標準規格軟體!不需要任何黑盒子或黑科技!就是只用高中程度的物理與數學做出來的演算法程式

事實就是完全沒有黑盒子!完完全全在最基本也最單純的Windows作業系統之下,用資訊領域的人覺得很「低科技」的VB.NET程式寫的程式辦到的!如果我堅持用Python語言寫辨識程式,只會讓程式執行變慢好幾倍!完全無助於提升辨識能力。我們只是持續專心研究最有效率最省時間的演算法不讓電腦資源浪費在任何插入黑盒子的加蓋系統,或較低效率的程式語言(如Python)上,我們就做到這個程度了!我還需要甚麼黑盒子幫我做車牌辨識?

幾年前我只是隱隱然相信:同樣的電腦下,我只要精簡架構與演算次數之後一定會比那些黑盒子更快的!現在我已經完全證明了我的想法!我的常識是對的!如果我可以研究透徹演算法的原理,用Windows作業系統下可直通 .NET Lib的程式語言(VB、C#或C++)改寫那些Linux程式,我就會獲得最大的效益!

如果我還不能掌握那些深埋在Linux底層的演算法,或是想不出效能接近那些黑盒子的演算法呢?那就乾脆不要賣包含那些黑盒子的軟體比較好!因為買黑盒子就是要花錢的!處理安裝麻煩,客服工作就暴增了!我必須花錢請更多工程師,或許是製造就業機會?但如果賺不回那些錢我的公司就倒閉了!

更慘的是黑盒子的程序出了問題時,因為程式不是我寫的,我也無法處理,只能被動等待黑盒子有沒有更新版?甚至人家問我的軟體有沒有資安疑慮時,我也好難回答!好像請了一個陌生人執行公司最核心的業務,警察跑來問他有沒有詐騙客戶?很恐怖的!總之,引用黑盒子進入我的軟體產品,很像吸毒或吃禁藥參加比賽,短期好像很酷,但長遠來看是根本無法成功賺錢的!所以乾脆就不要用了吧?

我沒有厲害到可以破解所有黑盒子的演算法,但如果無法完全自製的軟體就不要賣!這樣比較合乎常識,也已經是我們公司明確的政策!我們只會賣完全自製的純軟體,也就是像一般人用的OfficePhotoShop一樣,完全只使用Windows作業系統下的常規資源,我們不會,也不必,去動用顯示卡裡面的GPU的!資安疑慮也絕對與我們的產品無關的!

談到這邊,或許就會有人跳出來說了:「鄉下老師陳義過高了!會用黑盒子,正是因為我們做不出來,不得不用的啊?」如果傲慢的資訊領域人士肯承認這一點就好一點!不要把這些來路不明的黑盒子當作大神來學習參拜!炒作成這是資訊領域「必須」走的「唯一」途徑?衍伸出一大堆「學習」這些黑盒子的「教學」產業鏈來賺錢;而不是致力於基礎核心技術,提升「研發生產」能力的健康產業鏈。

總之,回歸科學,回歸基礎演算法的研究才是真正軟體發展的康莊大道!我的存在就證明了,做基礎研發並沒有這麼困難距離遙遠,如果大多數的資訊領域專家學者不要浪費時間做太多職訓補習班做的事情,相信他們一定也可以做得跟我這個鄉下老師一樣好,甚至更好!台灣的矽谷根本就不在遠方,而是眼前!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=179914125