大模型開發之算子 原創
“ 算子指的是神經網絡中完成特定功能的一些算法節點 ”
在學習人工智能技術的過程中,簡單學習了一些關于機器學習和神經網絡的基礎知識,以及大模型的訓練和微調過程。
然后就把大部分精力放到了大模型的應用之上,比如AIGC,知識庫,Agent等。
而今天,我們來了解一下大模型技術的實現之——算子。
算子
關于算子這個概念,也是最近幾天剛接觸到的,在此之前都沒聽過這個名詞。還是閑來無事瀏覽招聘網站的時候,看到有招聘算子開發的崗位,當時看到這個就有點蒙了,算子是什么玩意?
概念
看網上介紹說,算子是大模型中一種實現某個功能的算法節點,簡單來說就相當于一個編程概念中的函數,一個可以實現某種功能的代碼塊。
當然,算子要比函數更加高級,也更加復雜;原因就是因為,算子雖然從邏輯上與函數的功能差不多,但在實現上要比函數要復雜得多,也可能就是多個復雜函數的組合。
舉個例子,卷積網絡中每一個卷積節點都屬于一個算子;如果從更加抽象的角度來說,整個神經網絡也算是一種算子。
算子的原理
算子的實現原理其實就像前面說的編程里的函數一樣,算子就是對復雜算法的封裝;比如,我們在實現一個卷積網絡的過程中,一行代碼可能就實現了卷積層,但里面具體的實現邏輯,有幾個人知道?或者說你能說明白某個卷積層是怎么實現的嗎?
而這就是算子開發工程師需要做的事情,就是把一個神經網絡模型通過算子這個載體給具象化。
算子實現的重難點
我們知道,大模型技術是基于龐大的算力基礎之上的,而算力的主要提供則是計算核心GPU,說白了就是芯片。
但不同的芯片使用的是不同的架構方式以及實現理念,因此使用不同的芯片提供算力,就需要大模型在底層能夠屏蔽不同芯片之間的差異。
而且,從提升大模型的性能和節省成本的角度考慮,怎么發揮芯片的最大性能,也是一個值得思考的問題。
因此,算子主要解決兩個問題,第一,如果把大模型比作樂高,那么算子就是一塊一塊的積木,通過多種不同的積木來實現大模型的功能。第二,算子是發揮芯片性能的重要方式之一。
當然,算子根據不同的功能也區分不同的類型,比如負責提供計算的算子就需要結合具體的芯片;而負責更加高級功能的算子模塊,就可以使用使用計算算子作為底層,實現更加高級的通用功能。
總結
想做算子開發,需要有足夠的數學理論和硬件知識,否則做算子開發就是一個笑話,基本上無從下手。
大模型是一個黑盒,那么算子就是這個黑盒中的零件,沒有算子就沒有大模型。大模型之爭,也可以說是算子之爭。
學習大模型技術是一個系統性的工程,我們要知道不同的技術在大模型中扮演著什么角色,解決了什么問題,否則就會一直處在似懂非懂的狀態。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/ejySuasTO-MG4U9MtjSGnw??
