參加這次為期30天的部落格挑戰,主要目的是建立一個個人的LLM和深度學習(DL)知識庫,以及完成數個小型的side project。這將有助於我快速復習已掌握的知識,同時也能夠快速分類、吸收和內化新知識,並將其付諸實踐。此外,這個知識筆記還能方便他人了解目前LLM相關技術的進展,並使用筆記中的流程和程式碼生成自己的應用。
目前,這個知識庫的內容將圍繞深度學習、大模型、Agent等相關主題。這次挑戰的目的是深入探索LLM的各個方面,並通過實際專案應用這些知識,提升我的技術能力並分享我的學習成果。
每一天的內容將展示我實作和添加的過程。
目前暫定的內容
目前大致規劃如下:
Day 1~5: 從AI到LLM基礎
Day 6~15:LLM模型工程:資料收集,架構,訓練到壓縮
Day 16~25:LLM應用:LLM部署, Agent, RAG,向量資料庫,LLM相關的最新進展
DaY 26:28:LLM 論文與三個side project
Day 29 ~30:圖像,語音,音樂生成方面的進展以及相關範例
什麼是人工智慧(AI)?
人工智慧(Artificial Intelligence, AI)廣義上指的是讓機器展現類似人類智能的技術。這些技術讓機器能感知環境、學習、推理、決策、甚至創作。AI並非單一技術,而是涵蓋多種技術與方法的廣泛領域。
AI的目標
AI的終極目標是創造出具備通用智能的機器,能像人類一樣思考、學習和解決各種問題。然而,目前AI發展仍處於弱人工智慧(Narrow AI)階段,即只能在特定任務上展現出卓越能力,例如:
圖像識別:分辨照片中的物體、人臉辨識
語音辨識:將語音轉換為文字、語音助理(如Siri、Alexa)
自然語言處理:機器翻譯、聊天機器人、文本生成
推薦系統:電商平台的商品推薦、影音平台的內容推薦
棋類遊戲:AlphaGo在圍棋上的勝利
醫療診斷:輔助醫師判讀醫學影像、預測疾病風險
AI的分類
AI的分類方式有很多種,以下介紹幾種常見的分類:
弱人工智慧(Narrow AI/Weak AI):
專注於特定任務,無法處理超出設計範圍的問題。
目前大多數AI應用都屬於此類,如圖像識別、語音辨識等。
強人工智慧(Strong AI/General AI):
具備與人類相當或超越人類的智能,能像人類一樣思考、學習和解決各種問題。
目前仍處於理論和研究階段,尚未實現。
不過目前隨折chatgpt的崛起,我覺得可能在這幾年就可能有很多接近強甚至是超人工智能的模型出現。
超人工智慧(Super AI):
智能超越人類,能解決人類無法解決的問題。
屬於科幻小說和電影中的概念,目前沒有科學依據。
機器學習(Machine Learning):
從數據中學習,並根據學習到的知識做出預測或決策。
常見的機器學習方法包括監督式學習、非監督式學習和強化學習。
深度學習(Deep Learning):
機器學習的一個分支,使用多層神經網路來學習數據的複雜表示。
在圖像識別、語音辨識和自然語言處理等領域取得了重大突破。
自然語言處理(Natural Language Processing, NLP):
讓機器理解、處理和生成人類語言。
包括機器翻譯、文本摘要、情感分析、聊天機器人等。
計算機視覺(Computer Vision):
讓機器理解和解釋視覺信息,如圖像和影片。
包括圖像分類、物體檢測、圖像分割、人臉辨識等。
專家系統(Expert Systems):
模擬人類專家的知識和經驗來解決特定領域的問題。
通常使用規則和推理引擎來表示知識和進行決策。
機器人學(Robotics):
結合AI、機械工程和計算機科學,設計和製造機器人。
機器人可以執行各種任務,如工業製造、醫療手術、家庭服務等。
當然,很樂意為您提供更詳細的AI發展歷史:
人工智慧發展詳史
人工智慧的發展史宛如一幅波瀾壯闊的畫卷,交織著科學家的夢想、技術的突破,以及對未來世界的無限想像。讓我們一同深入探索這段充滿挑戰與驚喜的旅程。
1950s-1960s:AI的誕生與樂觀探索
1970s-1980s:知識為本的專家系統與第一次寒冬
1990s:機器學習的崛起與第二次寒冬
2000s:大數據與深度學習的曙光
2010s至今:AI的黃金時代與未來展望
人工智慧的發展史是一段充滿起伏的旅程,從早期的樂觀探索到兩次寒冬,再到如今的蓬勃發展,AI不斷超越自我,為人類社會帶來無限可能。未來,我們期待AI在更多領域發揮其潛力,同時也需要關注其發展帶來的各種挑戰,共同創造一個更美好的AI未來。
由於這次的挑戰是專注在LLM上,較不相關以及相隔較遠的東西我大概就只會一筆帶過。
這邊我推薦大致可以通過這個課程入門AI:
Harvard CS50’s Artificial Intelligence with Python – Full University Course
下面的課程在學完之後也可以參考下,不過基本上面那個應該就足夠了。
General Intro | Stanford CS221: Artificial Intelligence: Principles and Techniques (Autumn 2021)
MIT 6.034 Artificial Intelligence, Fall 2010
可以從上面的內容發現,隨著時間的演變,這些基礎學科的內容著重的部分其實也有很多改變,所以要學的話大概也就學自己需要的就可以了。
在掌握機器學習之前,了解支撐了這些演算法的基本數學概念非常重要。不過其實大概看這三個影片課程大概就可以了,這一系列的影片教學有教學跟實作,其他的就有興趣再看。
1.線性代數:Linear Algebra for Machine Learning
這對於理解許多演算法至關重要,尤其是深度學習中使用的演算法。關鍵概念包括向量、矩陣、行列式、特徵值和特徵向量、向量空間和線性變換。
2.微積分:Calculus for Machine Learning
許多機器學習演算法涉及連續函數的最佳化,這需要了解導數、積分、極限和級數。另外多變量微積分和梯度的概念也很重要。
3.機率與統計:Probability for Machine Learning
這些對於理解模型如何從數據中學習並做出預測至關重要。 關鍵概念包括機率論、隨機變數、機率分佈、期望、變異數、協方差、相關性、假設檢定、信賴區間、最大似然估計和貝葉斯推理。
可延伸的閱讀:
電子書:
其他相關連結:
線性代數自學課程,國內外學習資源: 本文彙整國內外線性代數自學課程,提供給規劃學習線性代數的朋友們參考。
3Blue1Brown - 線性代數的本質: 此系列的影片介紹幾何相關的概念
StatQuest with Josh Starmer - 統計基礎知識: 為許多統計概念提供簡單明了的解釋。
Aerin女士的AP統計直觀理解: 提供每個機率分佈背後的Medium文章清單。
沉浸式線性代數: 線性代數的另一種圖像化詮釋.
Khan Academy - 線性代數: 非常適合初學者,因為它以非常直觀的方式解釋了概念。
Khan Academy - 微積分: 一門涵蓋微積分所有基礎知識的互動課程。
Khan Academy - 機率與統計: 以易於理解的格式提供材料。
Pyothn 基礎:其實去 freecode camp 練下大概就可以了,程式語言只要會C ,C++的話,其他的語言就不會相差太多,除了彙編語言或verilog這類的語言之外。
資料科學函式庫: 包括熟悉用於數值運算的 NumPy、用於資料操作和分析的 Pandas、用於資料視覺化的 Matplotlib 和 Seaborn。
資料預處理: 這涉及特徵縮放和標準化、處理缺失資料、異常值檢測、分類資料編碼以及將資料拆分為訓練集、驗證集和測試集。
機器學習函式庫: 熟練使用 Scikit-learn(一個提供多種監督和非監督學習演算法的函式庫)至關重要。了解如何實現線性迴歸、邏輯迴歸、決策樹、隨機森林、k 最近鄰 (K-NN) 和 K 均值聚類等演算法非常重要。PCA 和 t-SNE 等降維技術也有助於視覺化高維度資料。