科技愛好者週刊(第 330 期):李開復梳理人工智慧

阮一峰發表於2024-12-20

本雜誌開源,歡迎投稿。另有《誰在招人》服務,釋出程式設計師招聘資訊。合作請郵件聯絡[email protected])。

封面圖

上個月正式開放的杭州良渚玉湖公園,公園的設計象徵良渚文化和運河文化的連線。(via

李開復梳理人工智慧

前些日子,我讀了李開復老師的兩本書:《AI·未來》(浙江人民出版社,2018)和《AI·未來進行式》(浙江人民出版社,2022)。

這兩本書都是面向社會大眾解釋 AI,不是技術類書籍,但是有一些段落,闡述 AI 概念。

李開復老師用通俗的語言來解釋,人工智慧、機器學習、神經網路、深度學習......這些詞到底是什麼意思?彼此有什麼關係?

我覺得,這些介紹對理解 AI 的體系,挺有啟發的。它們分散在各個章節,我將它們整理在一起。

為了行文連貫,我沒有完全照搬原文,而是用自己的語言重新敘述,如果有錯誤,也歸咎我。

(1)人工智慧

1956年夏天,電腦科學家約翰·麥卡錫(John McCarthy)首次提出"人工智慧"(AI)這個概念。

人工智慧指的是,透過軟體和硬體,來完成通常需要人類智慧才能完成的任務。它的研究物件,就是在機器上模擬人類智慧。

(2)機器學習

早期,人工智慧研究分成兩個陣營。

第一個陣營是規則式(rule-based)方法,又稱專家系統(expert systems),指的是人類寫好一系列邏輯規則,來教導計算機如何思考。

可想而知,對於複雜的、大規模的現實問題,很難寫出完備的、明確的規則。所以,這種方法的進展一直很有限。

第二個陣營就是機器學習(machine learning),指的是沒有預置的規則,只是把材料提供給計算機,讓機器透過自我學習,自己發現規則,給出結果。

(3)神經網路

神經網路(neural network)是機器學習的一種主要形式。

神經網路就是在機器上模擬人腦的結構,構建類似生物神經元的計算網路來處理資訊。

一個計算節點就是一個神經元,大量的計算節點組成網路,進行協同計算。

神經網路需要極大的算力,以及海量的訓練材料。以前,這是難以做到的,所以20世紀70年代開始,就陷入了停滯,長期沒有進展。

(4)深度學習

深度學習是神經網路的一種實現方法,在20世紀80年代由傑弗裡·辛頓提出。它讓神經網路研究重新復活。

深度學習是一種讓多層神經元可以進行有效計算的方法,大大提高了神經網路的效能。"深度學習"這個名字,就是比喻多層神經元的自主學習過程。

多層神經元包括一個輸入層和一個輸出層,它們之間有很多中間層(又稱隱藏層)。以前,計算機算力有限,只能支撐一兩個中間層,深度學習使得我們可以構建成千上萬箇中間層的網路,具有極大的"深度"。

(5)Transformer

早些年,深度學習用到的方法是卷積神經網路(CNN)和迴圈神經網路(RNN)。

2017年,谷歌的研究人員發明了一種新的深度學習處理方法,叫做 Transformer(轉換器)。

Transformer 不同於以前的方法,不再一個個處理輸入的單詞,而是一次性處理整個輸入,對每個詞分配不同的權重。

這種方法直接導致了2022年 ChatGPT 和後來無數生成式 AI 模型的誕生,是神經網路和深度學習目前的主流方法。

由於基於 Transformer 的模型需要一次性處理整個輸入,所以都有"上下文大小"這個指標,指的是一次可以處理的最大輸入。

比如,GPT-4 Turbo 的上下文是 128k 個 Token,相當於一次性讀取超過300頁的文字。上下文越大,模型能夠考慮的資訊就越多,生成的回答也就越相關和連貫,相應地,所需要的算力也就越多。

豆包 MarsCode 動手實驗室(杭州站)

先提一下,上週說的全國 AI 程式設計挑戰賽

應用賽道的作品提交,從12月16日已經開始了,大家可以上傳自己用 AI 完成的作品了。

演算法賽道目前還在報名中,只要你有信心,在 AI 的輔助下解出演算法題,不妨報名試試,也是一種體驗和鍛鍊。

比賽規則和報名連結,請訪問這裡,也可以看上週的週刊。

(此處有分隔線)

本週介紹的活動,是12月28日(星期六)下午兩點,在杭州的位元組工區舉行的豆包 MarsCode 動手實驗室

到時,大家可以現場深度體驗豆包 MarsCode 的 AI 程式設計能力,並跟位元組的同學當面交流。在動手環節,你可以用 AI 實現自己的創意。如果你的作品很優秀,還有機會直通 AI 程式設計挑戰賽的決賽。

活動的詳細介紹,以及報名連結,請訪問這裡

科技動態

1、硬碟打孔機

硬碟報廢時,一般需要擦除資料。最保險的方法,莫過於物理破壞硬碟。

但是,這樣很費事,你要找把錘子,把硬碟敲碎了。

為了解決這個問題,一家日本公司推出了"硬碟打孔機"。這種機器可以在硬碟上輕鬆打四個孔,保證徹底破壞資料。

它採用電動液壓系統,產生12噸的壓力,足以穿透任何硬碟。

它的尺寸為 410 x 289 x 187 毫米,跟臺式電腦差不多大小,但是重達18公斤,適合那些有成千上萬硬碟需要銷燬的大公司。

2、沙子國際象棋

一位英國設計師用沙子作為材料,3D 列印了一套國際象棋。

他說,這樣做只是為了追求一種奇特的感覺。沙子是一種無形且流動的材料,塑造成堅固耐用的東西,讓人感到難以把握、隨時可能變化。

而且,沙子表面是不光滑的,當你用沙子下棋時,會有真實的、與眾不同的觸覺。

3、玻璃磚

大家考慮過嗎,房子為什麼需要牆?難道不能建造一所沒有牆、全部是窗戶的房子嗎?

回答是不能,因為建築的重量由牆承受,窗戶不承受重量。如果把牆全改成窗戶,建築物就會倒塌。

那麼,能不能用玻璃來造牆呢?玻璃既可以承重,又可以透光。

麻省理工學院的科學家,最近就發明了這樣一種全透明的玻璃磚(上圖),根據測試具有跟普通磚相同的承重能力。

除了透光,玻璃磚還有一個好處,可以重新利用。只要高溫加熱,玻璃磚就會融化,能夠塑造成其他形狀,還能 3D 列印,但這也導致它不防火。

總的來說,玻璃磚比紅磚更環保,在很多場合有推廣潛力。

4、其他

(1)本週發生了一筆史上最大的風險投資,AI 公司 Databricks 一次性募集了100億美元。

(2)GitHub 宣佈,程式設計助手 GitHub Copilot 向所有使用者免費開放。

(3)OpenAI 推出了免費電話 1-800-ChatGPT,北美使用者可以撥打該電話,跟 AI 語音聊天,每月額度為15分鐘。

(4)小米官方開始支援,小米物聯網裝置接入智慧家居管理助手 Home Assistant。

文章

1、組合語言的一點入門介紹(中文)

這篇短文通俗解釋了組合語言的基本概念。

2、CSS 網格區塊詳解(英文)

這篇長文詳細介紹 CSS grid 佈局的區塊功能(template area)。

3、網頁如何插入 JSON-LD 語義資料(中文)

本文詳細介紹網頁的 JSON-LD 資料塊,用來插入機讀的語義資料。

4、13個對前端開發有用的 Chrome 外掛(英文)

本文介紹13個用於前端開發的 Chrome 外掛。

5、谷歌不再是最好的搜尋引擎(英文)

本文是一篇新聞分析,作者認為 Perplexity 的 AI 搜尋體驗已經優於谷歌了。

6、如何為 Windows 新增6個 macOS 最好的功能(英文)

一篇 Windows 使用技巧,教你怎麼為 Windows 新增一些 macOS 功能,比如檔案瀏覽器可以文件預覽。

工具

1、Presenterm

將 Markdown 檔案轉成幻燈片,在命令列播放的開源工具。(@lengyijun 投稿)

2、Rslib

製作 JavaScript 軟體包的工具,可以直接開發元件庫和命令列工具。(@fi3ework 投稿)

3、Midscene.js

AI 驅動的網頁 UI 自動化測試框架,透過文字描述,生成 UI 測試用例。(@yuyutaotao 投稿)

4、wechatDataBackup

Windows 桌面 PC 端的微信聊天記錄一鍵匯出。(@git-jiadong 投稿)

5、MoeMail

基於 Next.js + Cloudflare 技術棧構建的臨時郵箱服務,線上體驗。(@beilunyang 投稿)

6、my-github-2024

一個 Python 程式,生成你在2024年的 GitHub 程式碼提交統計。(@WCY-dt 投稿)

7、Vanilla

Canonical 公司的 CSS 框架,就是 Ubuntu 官網採用的樣式。

8、OpenAuth

網頁登入的第三方認證的整合庫。

9、Schemio

基於 Web 的示意圖視覺化編輯器。

10、Buzee

一個桌面軟體,提供本地檔案的全文搜尋(包括圖片裡面的文字),支援 Windows 和 Mac。

AI 相關

1、Hika AI

免費的 AI 搜尋。(@atlas-comstock 投稿)

2、Slea.ai

免費的 AI Logo 生成器。(@aaamomo64 投稿)

3、AI 音效生成器

免費生成各種音效,比如雨聲、風聲。(@aurthur 投稿)

資源

1、SQL 風格指南

一份書寫 SQL 語句的風格約定。

2、顏色程式碼表

線上配色設計工具集,做在一個網站。(@nettsz 投稿)

圖片

1、機器蜻蜓

美國首都華盛頓的中央情報局博物館,有一隻上個世紀70年代製造的機器蜻蜓。

它其實是一架微型直升機,飛到目標物件附近,竊聽對方的談話。

這隻蜻蜓可以飛200米,然後落下來,透過鐳射捕捉空氣振動,來還原談話聲。

但是,它不防風,也難以控制,所以從來沒有實際用過。

2、荷蘭的郵資程式碼

荷蘭寄信不用郵票,而是用一種9個字母和數字組成的程式碼。

你花錢買一個程式碼,以 3 x 3 的格式寫在信封上,就能代替郵票,作為付款證明。

因為程式碼的有效期只有五天(以郵戳為準),需要購買後及時寄出,被猜到的可能性很小。

文摘

1、沒有程式設計生產力這樣的東西

正如馬丁·福勒(Martin Fowler)所觀察到的那樣,程式設計師的程式設計生產力無法有效地衡量,因為它不存在。

軟體開發並不是一項必然會產生任何東西的活動。

假設你有兩個開發人員在同一個專案上工作,並且偶然地,他倆在同一天接受了相同的任務。

甲寫了一個1000行的框架,完美地解決了這個問題。程式碼編寫良好,並經過充分測試,每一步都有詳細記錄。

乙則是當天去了公園,一邊喂鴿子一邊思考問題,然後漫步回到辦公室,刪除了100行程式碼,部署了更改......問題就解決了。

請問誰的生產力更高?

回答是,這不重要。重要的是乙解決了問題,同時降低了團隊的長期維護成本。甲也解決了這個問題,但是他透過增加程式碼,增加了維護成本,因此(在其他條件相同的情況下)他的解決方案較差。

我們能說,乙具有更高的生產力嗎?顯然,很難找到程式設計生產力的正確衡量指標。

我認為,優秀的軟體開發者所做的就是解決問題。但是,生產力的衡量指標,比如程式碼、文件、資料等等,都只是解決問題的工具,並不是解決問題本身。

言論

1、

我寫 SQLite 的時候,從來沒人教過我 B 樹的知識。我需要自己實現 B 樹,我就從書架取下高德納的《計算機程式設計藝術》,找到了 B 樹的章節。他描述了演算法,我就照著實現。

有趣的是,高德納詳細介紹了搜尋 B 樹和插入 B 樹的演算法,沒有提供從 B 樹刪除資料的演算法,這是放在本章末尾的練習。所以我在實現自己的 B 樹之前,還必須先做完該章的練習。謝謝高德納,我真的很感激。

-- 理查德·希普《SQLite 不為人知的故事》

2、

瑞典南部的馬爾默市,洗一次10分鐘的淋浴,電費高達2.65歐元(約20元人民幣)。原因是該市接入的是德國電網,德國能源短缺,推高了電價。

-- 《瑞典能源危機》

3、

職業生涯最重要的一課是,你需要認識到,你工作的目的不在於使得公司的客戶滿意,而在於使得那些控制你的加薪、獎金和晉升的人滿意。

-- Hacker News 讀者

4、

正在開發的水下無人機技術,會使得以航空母艦為中心的海軍戰略過時,從而大幅削減軍事開支。

舉例來說,美國開發的水下無人機 Orca XLUUV,可以攜帶8噸的有效載荷,行駛數千英里,並且不需要長時間浮出水面。

-- Hacker News 讀者

5、

我第一次嘗試 MidJourney(文生圖工具)和 Suno(文生音樂工具)時,我想知道未來是否每個人都會成為數字藝術家。

很快,我就意識到我沒有"創作衝動",即使看過很多別人的創作,我也常常不清楚自己想要創作的東西。

因此,未來的 AI 即使具備無比強大的繪畫和編曲能力,還是隻有少數人能成為畫家和音樂家。程式設計師也是如此,即使 AI 會程式設計,也無法人人成為程式設計師。

-- 《Cursor 深度體驗》

往年回顧

沒有目的地,向前走(2023 #283)

生活就像一個魚缸(2022 #233)

騰訊的員工退休福利(2021 #183)

貴州變瑞士,有沒有可能?(2020 #133)

(完)

相關文章