1. 生成式AI如何在智能家居中落地?
原文:https://mp.weixin.qq.com/s/hW7z0GFYe3SMKRiBizSb0A
作為一種通過各種機(jī)器學(xué)習(xí)方法從數(shù)據(jù)中學(xué)習(xí)對(duì)象的組件,進(jìn)而生成全新的、完全原創(chuàng)的內(nèi)容(如文字、圖片、視頻)的AI。生成式AI近年來發(fā)展非常迅速,它可以實(shí)現(xiàn)新的應(yīng)用和用途,創(chuàng)造新內(nèi)容的能力為新的應(yīng)用開辟了許多可能性,尤其在智能家居中,生成式AI更是大有可為。
通過生成式AI,智能家居可以學(xué)習(xí)家庭成員的行為模式,了解他們的喜好和需求,并根據(jù)這些信息來自主地控制家庭設(shè)備和環(huán)境,讓智能家居更好地為用戶服務(wù)。例如,生成式AI可以用于智能音箱、家庭陪護(hù)機(jī)器人等為代表的智能家居產(chǎn)品。
生成式AI如何賦能智能家居
盡管從2022年底的ChatGPT爆火以后,人們對(duì)于生成式AI已經(jīng)不陌生,但大多數(shù)應(yīng)用依然聚焦在文字應(yīng)用或圖片創(chuàng)作上,想要將這種AI進(jìn)行實(shí)際應(yīng)用,業(yè)內(nèi)還在探索中。為此,電子發(fā)燒友網(wǎng)采訪到了思必馳IoT產(chǎn)品總監(jiān)任毫亮,探討如何讓生成式AI賦能智能家居。
生成式AI必然會(huì)對(duì)智能家居行業(yè)帶來不小的影響,任毫亮表示,思必馳正在從多方面設(shè)計(jì)和思考它在行業(yè)內(nèi)的應(yīng)用,目前主要集中在兩個(gè)方面。
一個(gè)是智能語音交互,生成式AI能夠更加智能地理解和回應(yīng)用戶的語音指令,以更加智能和自然的方式與智能家居進(jìn)行交互,實(shí)現(xiàn)更高效、便捷的控制和操作,在語音交互上會(huì)有顯著的提升。
另一個(gè)則是針對(duì)方案設(shè)計(jì)、產(chǎn)品設(shè)計(jì),生成式AI能夠?yàn)橛脩籼峁┩暾茖W(xué)的智能家居方案,依據(jù)不同場(chǎng)景、不同設(shè)備以及用戶個(gè)性化偏好進(jìn)行方案和產(chǎn)品設(shè)計(jì),提升家居設(shè)計(jì)師的工作效率,精準(zhǔn)匹配用戶需求,為用戶提供更加智能、便捷、安全和個(gè)性化的智能家居體驗(yàn)。
7月12日,思必馳推出了自研對(duì)話式大模型DFM-2(Dialogue Foundation Model),中文直譯為“通用對(duì)話基礎(chǔ)模型”。未來將圍繞“云+芯”戰(zhàn)略,以對(duì)話式AI為核心,將DFM-2大模型技術(shù)與綜合全鏈路技術(shù)進(jìn)行結(jié)合,不斷提升AI軟硬件產(chǎn)品的標(biāo)準(zhǔn)化能力和DUI平臺(tái)的規(guī)?;ㄖ颇芰?,快速滿足智能汽車、智能家居、消費(fèi)電子,以及金融、軌交、政務(wù)等數(shù)字政企行業(yè)場(chǎng)景客戶的復(fù)雜個(gè)性化需求,打造行業(yè)語言大模型,賦能產(chǎn)業(yè)升級(jí)。
為進(jìn)一步滿足市場(chǎng)的個(gè)性化需求,思必馳將DUI平臺(tái)與DFM-2大模型相結(jié)合,推出DUI 2.0,完成對(duì)話式AI全鏈路技術(shù)的升級(jí),推進(jìn)深度產(chǎn)業(yè)應(yīng)用,未來也將繼續(xù)深入到智能家居等應(yīng)用場(chǎng)景,解決行業(yè)問題。
解決智能家居智能化與個(gè)性化難題
想要將生成式AI徹底融入進(jìn)智能家居體系當(dāng)中,廠商們也做了許多思考。任毫亮認(rèn)為,生成式AI主要可以解決智能家居中智能化與個(gè)性化難題。
在智能交互上,生成式AI能夠更加智能地理解用戶的內(nèi)容,同時(shí)結(jié)合用戶的設(shè)備、場(chǎng)景、習(xí)慣等內(nèi)容綜合分析判斷,給出更準(zhǔn)確和個(gè)性化的回復(fù);用戶可以輸入更長(zhǎng)的文本、更個(gè)性化的內(nèi)容,針對(duì)不同用戶、不同時(shí)間、不同內(nèi)容,生成式AI會(huì)給出不同的回答、不同的音色;同時(shí)AI具有更強(qiáng)的學(xué)習(xí)能力,在使用中會(huì)感受到越來越懂你的AI管家。
任毫亮表示生成式AI會(huì)是更加智能更加專屬的AI管家;思必馳的DFM-2也給DUI帶來了2.0的升級(jí),基于深度認(rèn)知的泛化語義理解、外部資源增強(qiáng)的推理問答、基于文檔的知識(shí)問答、個(gè)性化的多人設(shè)交互、模糊語義自學(xué)習(xí),會(huì)將以上特性應(yīng)用在智能家居、智能家電、智能車載等解決方案中。
在智能識(shí)別場(chǎng)景中,生成式AI通過學(xué)習(xí)和分析大量數(shù)據(jù),并根據(jù)識(shí)別結(jié)果進(jìn)行自動(dòng)化調(diào)節(jié)和控制,提供更加個(gè)性化和智能化的服務(wù)。同時(shí),生成式AI還可以幫助智能家居系統(tǒng)進(jìn)行能源消耗的優(yōu)化管理,通過對(duì)居住者行為的學(xué)習(xí)和分析,系統(tǒng)可以自動(dòng)調(diào)整能源使用模式,減少不必要的能源浪費(fèi),實(shí)現(xiàn)智能節(jié)能管理。
而在這些場(chǎng)景中,都是依靠AI的學(xué)習(xí)能力、理解能力以及越來越多傳感器數(shù)據(jù)的輸入與分析,來實(shí)現(xiàn)自動(dòng)化的設(shè)備控制和場(chǎng)景控制,同時(shí)基于用戶的反饋機(jī)制,不斷提升主動(dòng)智能的體驗(yàn),達(dá)到真正的全屋智能化。
小結(jié)
隨著未來Matter等通用協(xié)議將智能家居體系完全打通,生成式AI將為智能家居的體驗(yàn)帶來飛躍式提升,包括在智能語音交互、智能化、個(gè)性化等方面。隨著AI技術(shù)的進(jìn)一步增強(qiáng),生成式AI也將成為智能家居未來重要的一環(huán)。
2. 高通:未來幾個(gè)月有望在終端側(cè)運(yùn)行超100億參數(shù)的模型
原文:https://mp.weixin.qq.com/s/63Pm51oisGr03fl2bSoJ0w
日前,在2023世界半導(dǎo)體大會(huì)暨南京國(guó)際半導(dǎo)體博覽會(huì)上,高通全球副總裁孫剛發(fā)表演講時(shí)談到,目前高通能夠支持參數(shù)超過10億的模型在終端上運(yùn)行,未來幾個(gè)月內(nèi)超過100億參數(shù)的模型將有望在終端側(cè)運(yùn)行。
大模型在終端側(cè)運(yùn)行的重要性
生成式AI正在快速發(fā)展,數(shù)據(jù)顯示,2020年至2022年,生成式AI相關(guān)的投資增長(zhǎng)425%,初步預(yù)估生成式AI市場(chǎng)規(guī)模將達(dá)到1萬億美元。
然而孫剛指出,云經(jīng)濟(jì)難以支持生成式AI規(guī)模化拓展,為實(shí)現(xiàn)規(guī)模化拓展,AI處理的中心正在向邊緣轉(zhuǎn)移。比如XR、汽車、手機(jī)、PC、物聯(lián)網(wǎng),生成式AI將影響各類終端上的應(yīng)用。
高通在這方面展示出了領(lǐng)先的優(yōu)勢(shì),高通AI引擎由多個(gè)硬件和軟件組件組成,用于在驍龍移動(dòng)平臺(tái)上為終端側(cè)AI推理加速。它采用異構(gòu)計(jì)算架構(gòu),包括高通Hexagon處理器、Adreno GPU、Kryo CPU和傳感器中樞,共同支持在終端上運(yùn)行AI應(yīng)用程序。
在7月初的2023年世界人工智能大會(huì)上,高通就已經(jīng)展示了全球首個(gè)在終端側(cè)運(yùn)行生成式AI(AIGC)模型Stable Diffusion的技術(shù)演示,和全球最快的終端側(cè)語言-視覺模型(LVM)ControlNet運(yùn)行演示。這兩款模型的參數(shù)量已經(jīng)達(dá)到10億-15億,僅在十幾秒內(nèi)就能夠完成一系列推理,根據(jù)輸入的文字或圖片生成全新的AI圖像。
今年7月18日,Meta官宣將發(fā)布其開源大模型LLaMA的商用版本,為初創(chuàng)企業(yè)和其他企業(yè)提供了一個(gè)強(qiáng)大的免費(fèi)選擇,以取代OpenAI和谷歌出售的昂貴的專有模型。隨后,高通發(fā)布公告稱,從2024年起,Llama 2將能在旗艦智能手機(jī)和PC上運(yùn)行。
高通技術(shù)公司高級(jí)副總裁兼邊緣云計(jì)算解決方案業(yè)務(wù)總經(jīng)理Durga Malladi表示,為了有效地將生成式人工智能推廣到主流市場(chǎng),人工智能將需要同時(shí)在云端和邊緣終端(如智能手機(jī)、筆記本電腦、汽車和物聯(lián)網(wǎng)終端)上運(yùn)行。
在高通看來,和基于云端的大語言模型相比,在智能手機(jī)等設(shè)備上運(yùn)行Llama 2 等大型語言模型的邊緣云計(jì)算具有許多優(yōu)勢(shì),不僅成本更低、性能更好,還可以在斷網(wǎng)的情況下工作,而且可以提供更個(gè)性化、更安全的AI服務(wù)。
如何讓大模型在終端規(guī)?;瘮U(kuò)展
生成式AI進(jìn)入未來生活的趨勢(shì)已經(jīng)不可阻擋,為了讓生成式AI規(guī)?;瘮U(kuò)展到更多終端設(shè)備中,高通提出了混合AI架構(gòu)的運(yùn)行方式,即在云端和設(shè)備終端的邊緣側(cè)之間分配算力,協(xié)同處理AI工作負(fù)載。
所謂混合AI,是指充分利用邊緣側(cè)終端算力支持生成式AI應(yīng)用的方式,相比僅在云端運(yùn)行的AI,前者能夠帶來高性能、個(gè)性化且更安全的體驗(yàn)。
比如,如果模型、提示或生成內(nèi)容的長(zhǎng)度小于某個(gè)限定值,且精度足夠,推理就可以完全在終端側(cè)進(jìn)行;如果任務(wù)相對(duì)復(fù)雜,則可以部分依靠云端模型;如果需要更多實(shí)時(shí)內(nèi)容,模型也可以接入互聯(lián)網(wǎng)獲取信息。
在未來,不同的生成式AI用不同分流方式的混合AI架構(gòu),AI也能在此基礎(chǔ)上持續(xù)演進(jìn):?大量生成式AI的應(yīng)用,比如圖像生成或文本創(chuàng)作,需求AI能夠進(jìn)行實(shí)時(shí)響應(yīng)。在這種任務(wù)上,終端可通過運(yùn)行不太復(fù)雜的推理完成大部分任務(wù)。
在AI計(jì)算的實(shí)現(xiàn)上,軟件和硬件同樣重要,因?yàn)楸仨氃诙藗?cè)做到運(yùn)算更快,效率更高,并推動(dòng)AI應(yīng)用在廣泛終端上的部署和普及。
高通在2022年6月推出AI軟件棧(Qualcomm AI Stack),其支持包括TensorFlow、Pytorch和ONNX在內(nèi)的所有主流開發(fā)框架,所有runtimes(運(yùn)行時(shí),即某門編程語言的運(yùn)行環(huán)境)和操作系統(tǒng)。借助高通AI軟件棧,開發(fā)者在智能手機(jī)領(lǐng)域開發(fā)的軟件可以快速擴(kuò)展至汽車、XR、可穿戴設(shè)備等其他產(chǎn)品線進(jìn)行使用。
高通技術(shù)公司產(chǎn)品管理高級(jí)副總裁兼AI負(fù)責(zé)人Ziad Asghar表示,未來公司需要加大終端側(cè)技術(shù)上的研發(fā),尤其是進(jìn)一步提升量化的算法。例如服務(wù)器上訓(xùn)練的模型一般采用32位浮點(diǎn)運(yùn)算(FP32),而我們?cè)谑謾C(jī)端現(xiàn)在能夠支持INT4計(jì)算,這能大大提高端側(cè)的處理能力。
小結(jié)
不僅僅是大模型的訓(xùn)練需要極大的算力和功耗,部署也同樣如此。如果要讓大模型在更多的領(lǐng)域?qū)崿F(xiàn)落地應(yīng)用,除了在云端部署之后,在終端側(cè)部署也很關(guān)鍵。目前已經(jīng)有諸多廠商在該領(lǐng)域進(jìn)行探索,包括高通,期待未來大模型能夠走進(jìn)人們生活的方方面面。
3. AI大模型在醫(yī)療領(lǐng)域起飛
原文:https://mp.weixin.qq.com/s/yNRpRIVntYv2cmU9GOCLzg
ChatGPT等大型語言模型在語言理解、生成、知識(shí)推理等方面正展現(xiàn)出令人驚艷的能力。近段時(shí)間,各企業(yè)開始探索大模型在不同行業(yè)中的應(yīng)用落地,并針對(duì)不同領(lǐng)域推出相對(duì)應(yīng)的行業(yè)大模型,包括在醫(yī)療領(lǐng)域。
眾多企業(yè)宣布推出醫(yī)療大模型
日前,京東發(fā)布了京東言犀大模型、言犀AI開發(fā)計(jì)算平臺(tái),同時(shí)基于京東言犀通用大模型,京東健康發(fā)布了“京醫(yī)千詢”醫(yī)療大模型,可快速完成在醫(yī)療健康領(lǐng)域各個(gè)場(chǎng)景的遷移和學(xué)習(xí),實(shí)現(xiàn)產(chǎn)品和解決方案的全面AI化部署。
與通用大模型相比,京東言犀大模型融合70%通用數(shù)據(jù)與30% 數(shù)智供應(yīng)鏈原生數(shù)據(jù),具有“更高產(chǎn)業(yè)屬性、更強(qiáng)泛化能力、更多安全保障”的優(yōu)勢(shì)。在醫(yī)療服務(wù)領(lǐng)域,京東言犀AI開發(fā)計(jì)算平臺(tái)為客戶的大模型開發(fā)和行業(yè)應(yīng)用提供了定制化解決方案。
在2023京東全球科技探索者大會(huì)暨京東云峰會(huì)現(xiàn)場(chǎng),京東演示了將通用大模型轉(zhuǎn)化為健康產(chǎn)業(yè)大模型的操作。通常來說,從數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練到模型部署,客戶完成這套流程需要10余名科學(xué)家花費(fèi)一周時(shí)間,而利用言犀AI開發(fā)計(jì)算平臺(tái),只需要1-2名算法人員在數(shù)分鐘就能完成;通過平臺(tái)模型加速工具的優(yōu)化,還能節(jié)省90%的推理成本。
在前不久的2023世界人工智能大會(huì)健康高峰論壇上,聯(lián)影智能聯(lián)席CEO周翔表示,醫(yī)療領(lǐng)域不同于其他垂直領(lǐng)域,目前通用的語言大模型還不能完全滿足醫(yī)療場(chǎng)景的精準(zhǔn)需求。聯(lián)影智能正與復(fù)旦大學(xué)附屬中山醫(yī)院共同攜手開發(fā)多模態(tài)、多病種的“全病程智醫(yī)診療大模型”。
該款A(yù)I大模型匯聚中山醫(yī)院優(yōu)質(zhì)診療經(jīng)驗(yàn),是覆蓋患者入院到出院的全生命周期的智能化輔助系統(tǒng)。在患者入院階段,該模型可基于醫(yī)生與患者的溝通對(duì)話、體格檢查及病史等信息,輔助生成醫(yī)療級(jí)結(jié)構(gòu)化入院記錄,智能推薦術(shù)前檢查,并作出鑒別診斷建議及手術(shù)計(jì)劃初稿;在術(shù)中通過多模態(tài)信息整合完成手術(shù)記錄稿;在患者出院階段,可以起草出院記錄及術(shù)后隨訪計(jì)劃。目前該款大模型已完成第一階段的站點(diǎn)試用。
東軟也于近日表示面向醫(yī)療領(lǐng)域推出多款A(yù)I+醫(yī)療行業(yè)應(yīng)用,包括添翼醫(yī)療領(lǐng)域大模型、飛標(biāo)醫(yī)學(xué)影像標(biāo)注平臺(tái)4.0、基于WEB的虛擬內(nèi)窺鏡等。
添翼醫(yī)療領(lǐng)域大模型是東軟基于30多年的醫(yī)療行業(yè)積累,構(gòu)建的醫(yī)療垂直領(lǐng)域大模型,全面融入醫(yī)療行業(yè)解決方案、產(chǎn)品與服務(wù),賦能醫(yī)院高質(zhì)量發(fā)展,引領(lǐng)醫(yī)療智能化轉(zhuǎn)型。面向醫(yī)生,添翼讓診療更高效。醫(yī)生通過自然語言與添翼交互,快速、精準(zhǔn)地完成醫(yī)療報(bào)告與病歷、醫(yī)囑開立;面向患者,添翼讓問診更便捷,成為患者全天私人專屬醫(yī)生,提供全面的診后健康飲食、營(yíng)養(yǎng)與運(yùn)動(dòng)建議等服務(wù)。添翼的多模態(tài)數(shù)據(jù)融合能力,也將為醫(yī)院管理者提供對(duì)話式交互與數(shù)據(jù)洞察,簡(jiǎn)化數(shù)據(jù)利用,讓醫(yī)院管理更精細(xì)。
大模型在醫(yī)療領(lǐng)域的優(yōu)勢(shì)和不足
大模型在醫(yī)療領(lǐng)域可以有很好的表現(xiàn),此前,谷歌和DeepMind的科研人員在《自然》雜志上發(fā)表了一項(xiàng)研究,根據(jù)其研究結(jié)果,一組臨床醫(yī)生對(duì)谷歌和DeepMind團(tuán)隊(duì)的醫(yī)療大模型Med-PaLM回答的評(píng)分高達(dá)92.6%,與現(xiàn)實(shí)中人類臨床醫(yī)生的水平(92.9%)相當(dāng)。
此外谷歌醫(yī)療大模型Med- PaLM僅5.9%的答案被評(píng)為可能導(dǎo)致“有害”結(jié)果,與臨床醫(yī)生生成的答案(5.7%)的結(jié)果相似。
不過相較于其他領(lǐng)域,大模型在醫(yī)療領(lǐng)域的落地會(huì)面臨更加復(fù)雜的挑戰(zhàn)。比如,醫(yī)療行業(yè)的專業(yè)性更高,醫(yī)療場(chǎng)景對(duì)問題的容錯(cuò)率較低,這對(duì)大語言模型有更高的要求,需要更專業(yè)的語料來給出更專業(yè)、更精準(zhǔn)的醫(yī)療建議;不同模態(tài)的醫(yī)療數(shù)據(jù)之間,成像模式、圖像特征都有較大差異,醫(yī)療長(zhǎng)尾問題紛繁復(fù)雜;醫(yī)療數(shù)據(jù)私密性、安全性要求高,滿足醫(yī)療機(jī)構(gòu)本地環(huán)境部署要求也是大模型落地的重要考慮因素等。
針對(duì)各種問題,不少企業(yè)已經(jīng)做了很多工作,比如商湯借助商湯大裝置的超大算力和醫(yī)療基礎(chǔ)模型群的堅(jiān)實(shí)基礎(chǔ),打造了醫(yī)療大模型工廠,基于醫(yī)療機(jī)構(gòu)的特定需求幫助其針對(duì)下游臨床長(zhǎng)尾問題高效訓(xùn)練模型,輔助機(jī)構(gòu)實(shí)現(xiàn)模型自主訓(xùn)練。
商湯科技副總裁、智慧醫(yī)療業(yè)務(wù)負(fù)責(zé)人張少霆表示,該模式突破了醫(yī)療長(zhǎng)尾問題數(shù)據(jù)樣本少、標(biāo)注難度高的瓶頸,實(shí)現(xiàn)了針對(duì)不同任務(wù)的小數(shù)據(jù)、弱標(biāo)注、高效率的訓(xùn)練,同時(shí)顯著降低了大模型部署成本,滿足不同醫(yī)療機(jī)構(gòu)個(gè)性化、多樣化的臨床診療需求。
小結(jié)
可以看到,當(dāng)前大模型應(yīng)用落地是業(yè)界探索的重點(diǎn),而醫(yī)療行業(yè)成了眾多企業(yè)關(guān)注的垂直領(lǐng)域之一。研究顯示,大模型在醫(yī)療領(lǐng)域?qū)?huì)有著非常優(yōu)秀的表現(xiàn)。同時(shí)醫(yī)療領(lǐng)域也不同于其他行業(yè),它具有更強(qiáng)的專業(yè)性、安全性要求,這也是醫(yī)療大模型落地需要解決的問題。
4. GPT-4里套娃LLaMA 2!OpenAI創(chuàng)始成員周末爆改「羊駝寶寶」,GitHub一日千星
原文:https://mp.weixin.qq.com/s/Tp4q8VflEZ7o8FgpZfrNgQ
大神僅花一個(gè)周末訓(xùn)練微型LLaMA 2,并移植到C語言。
推理代碼只有500行,在蘋果M1筆記本上做到每秒輸出98個(gè)token。
作者是OpenAI創(chuàng)始成員Andrej Karpathy,他把這個(gè)項(xiàng)目叫做Baby LLaMA 2(羊駝寶寶)。
雖然它只有1500萬參數(shù),下載下來也只有58MB,但是已經(jīng)能流暢講故事。
所有推理代碼可以放在C語言單文件上,沒有任何依賴,除了能在筆記本CPU上跑,還迅速被網(wǎng)友接力開發(fā)出了各種玩法。
llama.cpp的作者Georgi Gerganov搞出了直接在瀏覽器里運(yùn)行的版本。
提示工程師Alex Volkov甚至做到了在GPT-4代碼解釋器里跑Baby LLaMA 2。
羊駝寶寶誕生記
據(jù)Karpathy分享,做這個(gè)項(xiàng)目的靈感正是來自llama.cpp。
訓(xùn)練代碼來自之前他自己開發(fā)的nanoGPT,并修改成LLaMA 2架構(gòu)。
推理代碼直接開源在GitHub上了,不到24小時(shí)就狂攬1500+星。
訓(xùn)練數(shù)據(jù)集TinyStories則來自微軟前一陣的研究。
2023新視野數(shù)學(xué)獎(jiǎng)得主Ronen Eldan、2023斯隆研究獎(jiǎng)得主李遠(yuǎn)志聯(lián)手,驗(yàn)證了**1000萬參數(shù)以下的小模型,在垂直數(shù)據(jù)上訓(xùn)練也可以學(xué)會(huì)正確的語法、生成流暢的故事、甚至獲得推理能力。**
此外,開發(fā)過程中還有一個(gè)插曲。
Karpathy很久不寫C語言已經(jīng)生疏了,但是在GPT-4的幫助下,還是只用一個(gè)周末就完成了全部工作。
對(duì)此,英偉達(dá)科學(xué)家Jim Fan評(píng)價(jià)為:現(xiàn)象級(jí)。
最初,在CPU單線程運(yùn)行、fp32推理精度下,Baby LLaMA 2每秒只能生成18個(gè)token。
在編譯上使用一些優(yōu)化技巧以后,直接提升到每秒98個(gè)token。
優(yōu)化之路還未停止。
有人提出,可以通過GCC編譯器的-funsafe-math-optimizations模式再次提速6倍。
除了編譯方面外,也有人提議下一步增加LoRA、Flash Attention等模型層面流行的優(yōu)化方法。
Baby LLaMA 2一路火到Hacker News社區(qū),也引發(fā)了更多的討論。
有人提出,現(xiàn)在雖然只是一個(gè)概念驗(yàn)證,但本地運(yùn)行的語言模型真的很令人興奮。
雖然無法達(dá)到在云端GPU集群上托管的大模型的相同功能,但可以實(shí)現(xiàn)的玩法太多了。
在各種優(yōu)化方法加持下,karpathy也透露已經(jīng)開始嘗試訓(xùn)練更大的模型,并表示:
70億參數(shù)也許觸手可及。
GitHub:https://github.com/karpathy/llama2.c
在瀏覽器運(yùn)行Baby LLaMA 2:https://ggerganov.com/llama2.c
參考鏈接:[1]https://twitter.com/karpathy/status/1683143097604243456[2]https://twitter.com/ggerganov/status/1683174252990660610[3]https://twitter.com/altryne/status/1683222517719384065[4]https://news.ycombinator.com/item?id=36838051
6. 對(duì)標(biāo)Llama 2,OpenAI開源模型G3PO已在路上
原文:https://mp.weixin.qq.com/s/hXsKm1M_2utRmj_y9MOBzw
這一次,OpenAI 成了跟進(jìn)者。
上個(gè)星期,Meta 在微軟大會(huì)上發(fā)布的 Llama 2 被認(rèn)為改變了大模型的格局,由于開源、免費(fèi)且可商用,新版羊駝大模型立刻吸引了眾多創(chuàng)業(yè)公司、研究機(jī)構(gòu)和開發(fā)者的目光,Meta 開放合作的態(tài)度也獲得了業(yè)內(nèi)的一致好評(píng),OpenAI 面臨著回應(yīng) Meta 開源人工智能技術(shù)戰(zhàn)略的壓力。
GPT-4 雖然被一致認(rèn)為能力領(lǐng)先,但 OpenAI 卻并不是唯一一個(gè)引領(lǐng)方向的公司。在大模型領(lǐng)域,開源預(yù)訓(xùn)練模型一直被認(rèn)為是重要的方向。
GPT-4 因?yàn)椴惶峁╅_源版本而時(shí)常受到人們?cè)嵅?,?OpenAI 并不一定會(huì)堅(jiān)持封閉的道路,其正在關(guān)注開源的影響。兩個(gè)月前,有消息稱該公司打算發(fā)布自己的開源模型以應(yīng)對(duì)競(jìng)爭(zhēng)。近日,據(jù)外媒 Information 報(bào)道,OpenAI 內(nèi)部已有具體計(jì)劃,未來即將開源的大模型代號(hào)為「G3PO」。
此前,Meta 的開源策略在機(jī)器學(xué)習(xí)的很多領(lǐng)域取得了成功。起源于 Meta 的開源軟件項(xiàng)目包括 React、PyTorch、GraphQL 等。
在開源問題上,OpenAI 尚未準(zhǔn)備好承諾發(fā)布自己的開源模型,并且內(nèi)部尚未決定開源的時(shí)間表。
眾所周知,大模型領(lǐng)域最近的發(fā)展速度極快。OpenAI 雖然已經(jīng)轉(zhuǎn)向,但并沒有快速出手回應(yīng) Llama 系列,Information 在此引用了兩個(gè)可能的驅(qū)動(dòng)因素:
-
OpenAI 的團(tuán)隊(duì)規(guī)模較小,并不專注于推出為客戶提供定制化大模型的商店。雖然這將是吸引開發(fā)者,并抵御 Meta 和 Google 的另一種途徑。
-
OpenAI 還希望打造個(gè)性化的 ChatGPT Copilot 助手。據(jù)消息人士透露,推出真正的「Copilot」將使 OpenAI 與微軟直接競(jìng)爭(zhēng),有一些左右互搏的意思,而且這一努力「可能需要數(shù)年時(shí)間」。
開源的 OpenAI 版大模型可能會(huì)在不久之后問世,但 OpenAI 仍然希望堅(jiān)持「開發(fā)先進(jìn)閉源模型和非先進(jìn)開源模型」的思路,這將產(chǎn)生足夠收入,形成技術(shù)開發(fā)的正循環(huán),并且更容易讓開發(fā)者傾向于為最先進(jìn)模型付費(fèi)。
不過正如 Llama 2 推出時(shí)人們所討論的,大模型的發(fā)展并不一定會(huì)朝著科技巨頭 + 高投入 + 閉源的方向一直前進(jìn)下去,隨著利用 Llama 2 的商業(yè)應(yīng)用程序開始傳播,大模型技術(shù)的世界可能會(huì)發(fā)生重組。
在 OpenAI 看來,開發(fā)人員快速采用開源模型已經(jīng)被視為一種威脅,目前該公司也正在嘗試一系列方向。
最近,OpenAI 成立了一個(gè)新的小組 Superalignment,希望在四年內(nèi)實(shí)現(xiàn) AGI(通用人工智能)。此外,有傳言稱 OpenAI 可能很快就會(huì)推出應(yīng)用程序商店和個(gè)性化版本的 ChatGPT。所以目前來說,G3PO 只是他們眾多未來項(xiàng)目之一。
誰將首先實(shí)現(xiàn) AGI?看起來這個(gè)問題目前還沒有明確的答案。
7. 兩萬字長(zhǎng)文詳解:如何用C++從零實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)
原文:https://mp.weixin.qq.com/s/FgRuI9nnC-Zh30ghO6q22w一、Net類的設(shè)計(jì)與神經(jīng)網(wǎng)絡(luò)初始化既然是要用C++來實(shí)現(xiàn),那么我們自然而然的想到設(shè)計(jì)一個(gè)神經(jīng)網(wǎng)絡(luò)類來表示神經(jīng)網(wǎng)絡(luò),這里我稱之為Net類。由于這個(gè)類名太過普遍,很有可能跟其他人寫的程序沖突,所以我的所有程序都包含在namespace liu中,由此不難想到我姓劉。在之前的博客反向傳播算法資源整理中,我列舉了幾個(gè)比較不錯(cuò)的資源。對(duì)于理論不熟悉而且學(xué)習(xí)精神的同學(xué)可以出門左轉(zhuǎn)去看看這篇文章的資源。這里假設(shè)讀者對(duì)于神經(jīng)網(wǎng)絡(luò)的基本理論有一定的了解。
![3688373a-2d44-11ee-815d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/96/wKgaomToNziAfdE3AACcAm48oIo885.png)
- 神經(jīng)元節(jié)點(diǎn)
- 層(layer)
- 權(quán)值(weights)
- 偏置項(xiàng)(bias)
#ifndef NET_H #define NET_H #endif // NET_H #pragma once #include #include #include //#include #include"Function.h" namespace liu { class Net { public: std::vector<int> layer_neuron_num; std::vector<cv::Mat> layer; std::vector<cv::Mat> weights; std::vector<cv::Mat> bias; public: Net() {}; ~Net() {}; //Initialize net:genetate weights matrices、layer matrices and bias matrices // bias default all zero void initNet(std::vector<int> layer_neuron_num_); //Initialise the weights matrices. void initWeights(int type = 0, double a = 0., double b = 0.1); //Initialise the bias matrices. void initBias(cv::Scalar& bias); //Forward void forward(); //Forward void backward(); protected: //initialise the weight matrix.if type =0,Gaussian.else uniform. void initWeight(cv::Mat &dst, int type, double a, double b); //Activation function cv::Mat activationFunction(cv::Mat &x, std::string func_type); //Compute delta error void deltaError(); //Update weights void updateWeights(); }; } 說明:以上不是Net類的完整形態(tài),只是對(duì)應(yīng)于本文內(nèi)容的一個(gè)簡(jiǎn)化版,簡(jiǎn)化之后看起來會(huì)更加清晰明了。成員變量與成員函數(shù)現(xiàn)在Net類只有四個(gè)成員變量,分別是:
- 每一層神經(jīng)元數(shù)目(layerneuronnum)
- 層(layer)
- 權(quán)值矩陣(weights)
- 偏置項(xiàng)(bias)
- initNet():用來初始化神經(jīng)網(wǎng)絡(luò)
- initWeights():初始化權(quán)值矩陣,調(diào)用initWeight()函數(shù)
- initBias():初始化偏置項(xiàng)
- forward():執(zhí)行前向運(yùn)算,包括線性運(yùn)算和非線性激活,同時(shí)計(jì)算誤差
- backward():執(zhí)行反向傳播,調(diào)用updateWeights()函數(shù)更新權(quán)值。
//Initialize net void Net::initNet(std::vector<int> layer_neuron_num_) { layer_neuron_num = layer_neuron_num_; //Generate every layer. layer.resize(layer_neuron_num.size()); for (int i = 0; i < layer.size(); i++) { layer[i].create(layer_neuron_num[i], 1, CV_32FC1); } std::cout << "Generate layers, successfully!" << std::endl; //Generate every weights matrix and bias weights.resize(layer.size() - 1); bias.resize(layer.size() - 1); for (int i = 0; i < (layer.size() - 1); ++i) { weights[i].create(layer[i + 1].rows, layer[i].rows, CV_32FC1); //bias[i].create(layer[i + 1].rows, 1, CV_32FC1); bias[i] = cv::zeros(layer[i + 1].rows, 1, CV_32FC1); } std::cout << "Generate weights matrices and bias, successfully!" << std::endl; std::cout << "Initialise Net, done!" << std::endl; }權(quán)值初始化initWeight()函數(shù)權(quán)值初始化函數(shù)initWeights()調(diào)用initWeight()函數(shù),其實(shí)就是初始化一個(gè)和多個(gè)的區(qū)別。偏置初始化是給所有的偏置賦相同的值。這里用Scalar對(duì)象來給矩陣賦值。
//initialise the weights matrix.if type =0,Gaussian.else uniform. void Net::initWeight(cv::Mat &dst, int type, double a, double b) { if (type == 0) { randn(dst, a, b); } else { randu(dst, a, b); } } //initialise the weights matrix. void Net::initWeights(int type, double a, double b) { //Initialise weights cv::Matrices and bias for (int i = 0; i < weights.size(); ++i) { initWeight(weights[i], 0, 0., 0.1); } }偏置初始化是給所有的偏置賦相同的值。這里用Scalar對(duì)象來給矩陣賦值。
//Initialise the bias matrices. void Net::initBias(cv::Scalar& bias_) { for (int i = 0; i < bias.size(); i++) { bias[i] = bias_; } }至此,神經(jīng)網(wǎng)絡(luò)需要初始化的部分已經(jīng)全部初始化完成了。初始化測(cè)試我們可以用下面的代碼來初始化一個(gè)神經(jīng)網(wǎng)絡(luò),雖然沒有什么功能,但是至少可以測(cè)試下現(xiàn)在的代碼是否有BUG:
#include"../include/Net.h" // using namespace std; using namespace cv; using namespace liu; int main(int argc, char *argv[]) { //Set neuron number of every layer vector<int> layer_neuron_num = { 784,100,10 }; // Initialise Net and weights Net net; net.initNet(layer_neuron_num); net.initWeights(0, 0., 0.01); net.initBias(Scalar(0.05)); getchar(); return 0; }二、前向傳播與反向傳播前言前一章節(jié)中,大部分還是比較簡(jiǎn)單的。因?yàn)樽钪匾虑榫褪巧筛鞣N矩陣并初始化。神經(jīng)網(wǎng)絡(luò)中的重點(diǎn)和核心就是本文的內(nèi)容——前向和反向傳播兩大計(jì)算過程。每層的前向傳播分別包含加權(quán)求和(卷積?)的線性運(yùn)算和激活函數(shù)的非線性運(yùn)算。反向傳播主要是用BP算法更新權(quán)值。本文也分為兩部分介紹。前向過程如前所述,前向過程分為線性運(yùn)算和非線性運(yùn)算兩部分。相對(duì)來說比較簡(jiǎn)單。線型運(yùn)算可以用
Y = WX+b
來表示,其中X是輸入樣本,這里即是第N層的單列矩陣,W是權(quán)值矩陣,Y是加權(quán)求和之后的結(jié)果矩陣,大小與N+1層的單列矩陣相同。b是偏置,默認(rèn)初始化全部為0。不難推知,W的大小是(N+1).rows * N.rows
。正如上一篇中生成weights矩陣的代碼實(shí)現(xiàn)一樣:weights[i].create(layer[i + 1].rows, layer[i].rows, CV_32FC1);非線性運(yùn)算可以用
O=f(Y)
來表示。Y就是上面得到的Y。O就是第N+1層的輸出。f就是我們一直說的激活函數(shù)。激活函數(shù)一般都是非線性函數(shù)。它存在的價(jià)值就是給神經(jīng)網(wǎng)絡(luò)提供非線性建模能力。激活函數(shù)的種類有很多,比如sigmoid函數(shù),tanh函數(shù),ReLU函數(shù)等。各種函數(shù)的優(yōu)缺點(diǎn)可以參考更為專業(yè)的論文和其他更為專業(yè)的資料。我們可以先來看一下前向函數(shù)forward()的代碼://Forward void Net::forward() { for (int i = 0; i < layer_neuron_num.size() - 1; ++i) { cv::Mat product = weights[i] * layer[i] + bias[i]; layer[i + 1] = activationFunction(product, activation_function); } }for循環(huán)里面的兩句就分別是上面說的線型運(yùn)算和激活函數(shù)的非線性運(yùn)算。激活函數(shù)
activationFunction()
里面實(shí)現(xiàn)了不同種類的激活函數(shù),可以通過第二個(gè)參數(shù)來選取用哪一種。代碼如下://Activation function cv::Mat Net::activationFunction(cv::Mat &x, std::string func_type) { activation_function = func_type; cv::Mat fx; if (func_type == "sigmoid") { fx = sigmoid(x); } if (func_type == "tanh") { fx = tanh(x); } if (func_type == "ReLU") { fx = ReLU(x); } return fx; }各個(gè)函數(shù)更為細(xì)節(jié)的部分在
Function.h
和Function.cpp
文件中。在此略去不表,感興趣的請(qǐng)君移步Github。需要再次提醒的是,上一篇博客中給出的Net類是精簡(jiǎn)過的,下面可能會(huì)出現(xiàn)一些上一篇Net類里沒有出現(xiàn)過的成員變量。完整的Net類的定義還是在Github里。反向傳播過程反向傳播原理是鏈?zhǔn)角髮?dǎo)法則,其實(shí)就是我們高數(shù)中學(xué)的復(fù)合函數(shù)求導(dǎo)法則。這只是在推導(dǎo)公式的時(shí)候用的到。具體的推導(dǎo)過程我推薦看看下面這一篇教程,用圖示的方法,把前向傳播和反向傳播表現(xiàn)的清晰明了,強(qiáng)烈推薦!Principles of training multi-layer neural network using backpropagation。一會(huì)將從這一篇文章中截取一張圖來說明權(quán)值更新的代碼。在此之前,還是先看一下反向傳播函數(shù)backward()的代碼是什么樣的://Backward void Net::backward() { calcLoss(layer[layer.size() - 1], target, output_error, loss); deltaError(); updateWeights(); }可以看到主要是是三行代碼,也就是調(diào)用了三個(gè)函數(shù):
-
第一個(gè)函數(shù)
calcLoss()
計(jì)算輸出誤差和目標(biāo)函數(shù),所有輸出誤差平方和的均值作為需要最小化的目標(biāo)函數(shù)。 -
第二個(gè)函數(shù)
deltaError()
計(jì)算delta誤差,也就是下圖中delta1*df()那部分。 -
第三個(gè)函數(shù)
updateWeights()
更新權(quán)值,也就是用下圖中的公式更新權(quán)值。
![36c554d0-2d44-11ee-815d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/96/wKgaomToNziAWGxmAAE5emqV73Y746.png)
//Update weights void Net::updateWeights() { for (int i = 0; i < weights.size(); ++i) { cv::Mat delta_weights = learning_rate * (delta_err[i] * layer[i].t()); weights[i] = weights[i] + delta_weights; } }注意需要注意的就是計(jì)算的時(shí)候輸出層和隱藏層的計(jì)算公式是不一樣的。另一個(gè)需要注意的就是......難道大家沒覺得本系列文章的代碼看起來非常友好嗎至此,神經(jīng)網(wǎng)絡(luò)最核心的部分已經(jīng)實(shí)現(xiàn)完畢。剩下的就是想想該如何訓(xùn)練了。這個(gè)時(shí)候你如果愿意的話仍然可以寫一個(gè)小程序進(jìn)行幾次前向傳播和反向傳播。還是那句話,鬼知道我在能進(jìn)行傳播之前到底花了多長(zhǎng)時(shí)間調(diào)試!更加詳細(xì)的內(nèi)容,請(qǐng)查看原文。 點(diǎn)擊閱讀原文進(jìn)入官網(wǎng)
原文標(biāo)題:【AI簡(jiǎn)報(bào)20230728期】醫(yī)療領(lǐng)域中的AI大模型,詳解C++從零實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)
文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1306瀏覽量
40431 -
AI大模型
+關(guān)注
關(guān)注
0文章
322瀏覽量
355
原文標(biāo)題:【AI簡(jiǎn)報(bào)20230728期】醫(yī)療領(lǐng)域中的AI大模型,詳解C++從零實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論