第一百九十八章 小明養鳥(第2/2頁)

所以向坤在實現幾個核心的功能模塊時,甚至在核心代碼區域,用內聯匯編的方式來寫。

CPU只能識別0和1的二進制指令,而匯編語言是最接近機器語言的低級語言。早期硬件性能比較差的時候,開發時用匯編語言的目的是為了提升程序的性能和反應速度,但如今硬件設備發展很快,編譯器的優化也已經很好了,手寫匯編未必更高效,反而因為難讀、復雜、量大,後續帶來的維護困難遠遠超出它帶來的那一丟丟不足道的性能提升。

實際上大多數情況下,如果追求性能,用C++就夠了,用C的情況都已經很少。除了嵌入式開發等少數場景,大多數開發人員並不需要直接用到匯編語言來搞開發。

但是向坤卻是主動地在給自己“找麻煩”,因為他做這個項目,目的是為了找到他的“AI助理計劃”的靈感。

而匯編既然最貼近機器語言,更容易為CPU理解,那麽向坤就想要通過這一小部分代碼的編寫和思考,來“代入”電腦的思維方式,想著有沒有什麽辦法,能夠突破現在人工智能的各種實現方式。

而且匯編在某些情況下,也比其他高級語言擁有更靈活的優勢。

他甚至在做完了那一小部分核心模塊ARM下的匯編代碼後,又自虐式地手寫了那部分代碼的X86版本。

但項目的進展飛快,向坤關於“AI助手”的靈感,卻依然還沒有任何頭緒。

向坤現在心有點野,有點貪,他實在是不想弄個簡單的“沙雕AI”,他想弄一個“超級AI”。

做個簡單的比喻:

小夥子小明養了一群鳥,這群鳥在他的馴養下十分地聽話。

王老板對鄰居楊小姐很不滿,於是找到養鳥的小夥子小明。

王老板:“幫我報復她。”——這是甲方爸爸提出需求。

小明:“我讓這群鳥在楊小姐家上空飛,一會擺成S,一會擺成B,怎麽樣?”——這是溝通方案。

王老板:“可以,就這麽幹。”

如果把這群鳥當成是“計算機”,那麽小明就是“程序員”或者說“開發者”。

這個訓練的過程,就是編程的過程。

鳥群明白的“機器語言”只有:給吃的、不給吃的。

至於其他的內容,都是在這個基礎上組合訓練出來的。

“讓這群鳥在楊小姐家上空飛,一會擺成S,一會擺成B。”——這是具體需求。

“小明思考:我先引導幾只頭鳥的位置,然後其他鳥自然就跟上了,如此重復,就能讓他們擺出我想要的圖形。”——這是算法。

“鳥不到正確的位置我就不給吃的,到了就給吃的。”——這是函數。

不論小明把這鳥訓得多好,多如臂使指,甚至依靠口令就能讓鳥做特定的事情,一聲呼嘯就能讓鳥飛上天一會擺成S,一會擺成B,看起來好像真的通人性,但實際上,它們本質能理解的,依然是:

給吃的,不給吃的。

所以超級AI這種存在,相當於要讓鳥群直接明白:“我要讓你們在楊小姐家上空飛,一會擺成S,一會擺成B。”

甚至更進一步,能直接理解:“幫我報復她。”

到那時候,王老板直接和鳥獸交流,小明就可以狗帶了,或者專心伺候鳥兒們吃喝拉撒,讓它們過舒坦。

現在向坤要做的事情,就是從孵化開始訓練一只鳥,賦予它鳥王的權力,然後讓它理解自己的話——真正的理解!

到時候,需要做什麽,直接告訴鳥王,鳥王便能帶領一群打工鳥自發地去完成任務,至於具體怎麽完成,向坤不需要關心也不需要知道。

如果訓練好了,別說是讓它們擺個S或者B了,就是讓鳥王帶著群鳥跳極樂凈土都行,它甚至還會揣摩上意,給你唱個威風堂堂。

你說:“我要報復楊小姐。”

它會主動回:“那我帶著小弟們去楊小姐家上空一起拉便便?不解氣?那我們半夜去啄她家窗戶?還是組隊飛她家頭上,一會擺個S一會擺個B?”

當然,更大的概率是它領了你給的鳥食跑去和其他打工鳥分了,然後躺著曬太陽,屁事不幹。甚至還會跑你頭頂上拉屎,並且表示這不是針對誰,你只是被隨機到了。