天天看點

AI技術真的能取代軟體工程師麼?

作者:從程式員到架構師
AI技術真的能取代軟體工程師麼?

“AI技術是否會取代軟體工程師?”,這是在AI大模型技術火爆之後,衆多的程式員都在關心的問題?下面我們就來一起讨論一下這個問題?

AI到底會不會代替軟體?

從2023年一月份,ChatGPT以其無所不能的能力,讓很多人都開始了自我懷疑,是不是以後就不需要這麼多人來去做這些事情了。作為軟體開發人員來講,如何去看待這問題呢?

首先來講AI技術它的本質也是由代碼構成,但是在通俗的意義上來講大家并沒有把AI當做一種軟體。這是為什麼呢?因為在傳統意義上,我們對軟體的定義應該是一段有邏輯的代碼,其第一個特點就是确定性,我們是知道這個軟體是用來幹嘛的?但是對于AI技術來講,雖然是用代碼開發的,但是它本身作為軟體來講,是沒有程式的邏輯的,有的隻是一些不斷的訓練的内容,而不是通過邏輯判斷來去實作某些特定的功能。

AI技術真的能取代軟體工程師麼?

通過不斷的訓練,産生一種機率性的判斷,也就是說,AI是帶着機率性的存在,也就是說它可以有結果A,也是存在結果B的,隻不過結果A的機率更大一些。是以與軟體程式本身的确定性還是有一定的差別的。

用過ChatGPT的都知道,它是通過與人類的互相互動來完成,例如你可以在輸入框中輸入一些内容,然後通過AI的處理,來得到一個你想要的結果。前提是你需要與AI進行互動。是想讓AI去幫助你去解決問題?雖然AI有時候确實給不出你想要的結果,這是因為上面我們提到的,它是一個機率問題,是以肯定會存在錯誤的機率,這是毋庸置疑的。

從互動去觸發結果這個模式上來看,AI是可以存在很多方式的互動模式,例如一些翻譯軟體、一些AI圖檔生成軟體、一些聊天軟體,都是通過不同的互動方式來解決使用者的實際問題。

AI技術真的能取代軟體工程師麼?

作為人類來講,傳遞資訊的手段其實有很多,通過語言的方式隻是其中的一種。還可以通過手勢、眼神等傳遞資訊,當然這些資訊就是需要使用到AI視覺方面的能力去解決了。例如我們可以訓練AI去學習了解什麼樣的眼神代表什麼樣的意思、什麼樣的手勢代表什麼意思等等。這些都是通過大量的圖像處理、資料分析、模型訓練等實作。

我們可以将AI大模型看做人類的大腦,把模型的訓練看做一個學習的過程,當我們還是嬰兒的時候,很難去接受一些資訊,需要大人不斷的去教,不斷的學習。随着接受到的知識越來越多,我們開始對事物有了自己認識。模型訓練,就是一個大腦發育的過程。

當然在現實世界中,有聰明人,也有不太聰明的人,這也就很好解釋為啥AI會出現錯誤的地方。既然是模拟人腦,是以人腦的缺點也會在AI上展現出來,由于上面我們也介紹了,AI是具有機率性的,而對于人腦來講,我們也是随機的去存取資訊的,是以說,相比較于傳統軟體的邏輯計算能力,這是AI與人腦都無法比拟的。

程式=算法+資料結構

相信上面這個公式大家應該陌生,算法是用來處理資料的邏輯,資料結構是用來存儲資料内容。因為在很多場景中我們并不需要AI去進行機率性的處理,是以會存在一些具有邏輯性的軟體,例如資訊管理系統、銀行核心系統,這些資訊都是确定的結果,确定的存儲,是以不需要AI去告訴你,大概是是什麼樣的結果。

假設AI系統在銀行系統中,有一天你告訴他你銀行賬戶上大概有10W,大概我要取5W那麼這個時候,AI會如何處理呢?

是以說軟體與模型最大的差別就是:确定的結果交給程式來處理,不确定的動态交給模型來處理。

雖然現在AI可以生成圖檔,生成代碼,但是它需要與人的互動才可以完成。也是因為有了這樣的技術出現,很多人會産生危機感,因為AI可以根據人的需求來去生成對應的内容,看上去不再需要那麼多人了。但其實,就如上面提到的,既然是模拟人的操作,就必然會出現失誤,雖然模型可以繼續更新,但是還是離不開人的參與。

AI會取代程式員的開發工作麼?

首先我們要搞清楚AI技術的發展帶來的實惠是什麼?我們知道在曆史的長河中出現過很多具有劃時代意義的發明,例如鐵器出現之後的鐵器時代、工業革命之後的工業化時代,鐵器和機器出現在一定程度上确實提升了生産力,原來十個人可以完成的工作,現在三個人就可以完成,剩餘的七個人就被取代了。

AI技術真的能取代軟體工程師麼?

按照這個思路AI生成代碼,原來10個人開發的内容現在5個人就能搞定了。從這個思路上來講,确實AI的出現确實代替了很多程式員的工作機會。

但是從另外一個角度上來講,在工業革命之後,為什麼工廠中還會存在三個人呢?是因為有些工作是機器所無法替代的。如果機器可以完全替代人,那就意味着這個機器本身就是以一個生産力的形式存在的,那就可以大面積的解放人作為生産力了。雖然現在出現了更加進階的自動化的機器,但是還是沒有能完全解放人的生産力。也就是說,自動化的機器,對于生産力的支援隻是一個輔助作用,而不是驅動作用。

什麼意思呢?就是說機器本身代替的隻是人類工作的一部分,而不是人類工作的全部,它隻是輔助人類完成了一些體力上的工作,而不是代替人類去做一些決策。

AI技術真的能取代軟體工程師麼?

也就是說AI技術的發展,隻是輔助了開發者的代碼開發,而不是代替開發者去開發軟體,是以不是還有5個人沒有被代替麼?市面上的很多AI産品,都是以輔助産品的方式出現,而不是以明确的手段去讓AI完成某種創造性的工作。

這裡有人說了!不是有很多的可以生成軟體的AI産品麼?但是那些産品也是由人的描述生成的,而不是AI自己生成的。是以說AI能完成的隻是輔助性的操作。

現階段,大部分的産品設計還是以人為中心進行創造的,而不是AI。另外,上面在介紹軟體時候也提到了,軟體是一個解決确定性問題的産品,而AI是需要進行互動去得到一個回報的。這也導緻了AI無法主動去操作現有軟體來完成某些工作。

是以說,AI的出現會代替的隻是一部分存在輔助功能的開發者,而對于核心功能的開發者還是無法被取代的,這也就對新時代背景下的開發者提出了更高的要求。

繼續閱讀