這裡記錄每週值得分享的科技內容,週五釋出。
封面圖
上個月正式開放的杭州良渚玉湖公園,公園的設計象徵良渚文化和運河文化的連線。(via[6])
李開復梳理人工智慧
前些日子,我讀了李開復老師的兩本書:《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 的輔助下解出演算法題,不妨報名試試,也是一種體驗和鍛鍊。
比賽規則和報名連結,請訪問
這裡[7],也可以看
上週的週刊。
(此處有分隔線)
本週介紹的活動,是12月28日(星期六)下午兩點,在杭州的位元組工區舉行的豆包 MarsCode 動手實驗室。
到時,大家可以現場深度體驗豆包 MarsCode 的 AI 程式設計能力,並跟位元組的同學當面交流。在動手環節,你可以用 AI 實現自己的創意。如果你的作品很優秀,還有機會直通 AI 程式設計挑戰賽的決賽。
活動的詳細介紹,以及報名連結,請訪問這裡[8]。
科技動態
1、硬碟打孔機[9]
硬碟報廢時,一般需要擦除資料。最保險的方法,莫過於物理破壞硬碟。
但是,這樣很費事,你要找把錘子,把硬碟敲碎了。
為了解決這個問題,一家日本公司推出了“硬碟打孔機”。這種機器可以在硬碟上輕鬆打四個孔,保證徹底破壞資料。
它採用電動液壓系統,產生12噸的壓力,足以穿透任何硬碟。
它的尺寸為 410 x 289 x 187 毫米,跟臺式電腦差不多大小,但是重達18公斤,適合那些有成千上萬硬碟需要銷燬的大公司。
2、沙子國際象棋[10]
一位英國設計師用沙子作為材料,3D 列印了一套國際象棋。
他說,這樣做只是為了追求一種奇特的感覺。沙子是一種無形且流動的材料,塑造成堅固耐用的東西,讓人感到難以把握、隨時可能變化。
而且,沙子表面是不光滑的,當你用沙子下棋時,會有真實的、與眾不同的觸覺。
3、玻璃磚[11]
大家考慮過嗎,房子為什麼需要牆?難道不能建造一所沒有牆、全部是窗戶的房子嗎?
回答是不能,因為建築的重量由牆承受,窗戶不承受重量。如果把牆全改成窗戶,建築物就會倒塌。
那麼,能不能用玻璃來造牆呢?玻璃既可以承重,又可以透光。
麻省理工學院的科學家,最近就發明了這樣一種全透明的玻璃磚(上圖),根據測試具有跟普通磚相同的承重能力。
除了透光,玻璃磚還有一個好處,可以重新利用。只要高溫加熱,玻璃磚就會融化,能夠塑造成其他形狀,還能 3D 列印,但這也導致它不防火。
總的來說,玻璃磚比紅磚更環保,在很多場合有推廣潛力。
4、其他
(1)本週發生了一筆史上最大的風險投資[12],AI 公司 Databricks 一次性募集了100億美元。
(2)GitHub 宣佈,程式設計助手 GitHub Copilot[13] 向所有使用者免費開放。
(3)OpenAI 推出了免費電話 1-800-ChatGPT[14],北美使用者可以撥打該電話,跟 AI 語音聊天,每月額度為15分鐘。
(4)小米官方[15]開始支援,小米物聯網裝置接入智慧家居管理助手 Home Assistant。
文章
1、組合語言的一點入門介紹[16](中文)
這篇短文通俗解釋了組合語言的基本概念。
2、CSS 網格區塊詳解[17](英文)
這篇長文詳細介紹 CSS grid 佈局的區塊功能(template area)。
3、網頁如何插入 JSON-LD 語義資料[18](中文)
本文詳細介紹網頁的 JSON-LD 資料塊,用來插入機讀的語義資料。
4、13個對前端開發有用的 Chrome 外掛[19](英文)
本文介紹13個用於前端開發的 Chrome 外掛。
5、谷歌不再是最好的搜尋引擎[20](英文)
本文是一篇新聞分析,作者認為 Perplexity 的 AI 搜尋體驗已經優於谷歌了。
6、如何為 Windows 新增6個 macOS 最好的功能[21](英文)
一篇 Windows 使用技巧,教你怎麼為 Windows 新增一些 macOS 功能,比如檔案瀏覽器可以文件預覽。
工具
1、Presenterm[22]
將 Markdown 檔案轉成幻燈片,在命令列播放的開源工具。(@lengyijun[23] 投稿)
2、Rslib[24]
製作 JavaScript 軟體包的工具,可以直接開發元件庫和命令列工具。(@fi3ework[25] 投稿)
3、Midscene.js[26]
AI 驅動的網頁 UI 自動化測試框架,透過文字描述,生成 UI 測試用例。(@yuyutaotao[27] 投稿)
4、wechatDataBackup[28]
Windows 桌面 PC 端的微信聊天記錄一鍵匯出。(@git-jiadong[29] 投稿)
5、MoeMail[30]
基於 Next.js + Cloudflare 技術棧構建的臨時郵箱服務,線上體驗[31]。(@beilunyang[32] 投稿)
6、my-github-2024[33]
一個 Python 程式,生成你在2024年的 GitHub 程式碼提交統計。(@WCY-dt[34] 投稿)
7、Vanilla[35]
Canonical 公司的 CSS 框架,就是 Ubuntu 官網採用的樣式。
8、OpenAuth[36]
網頁登入的第三方認證的整合庫。
9、Schemio[37]
基於 Web 的示意圖視覺化編輯器。
10、Buzee[38]
一個桌面軟體,提供本地檔案的全文搜尋(包括圖片裡面的文字),支援 Windows 和 Mac。
AI 相關
1、Hika AI[39]
免費的 AI 搜尋。(@atlas-comstock[40] 投稿)
2、Slea.ai[41]
免費的 AI Logo 生成器。(@aaamomo64[42] 投稿)
3、AI 音效生成器[43]
免費生成各種音效,比如雨聲、風聲。(@aurthur[44] 投稿)
資源
1、SQL 風格指南[45]
一份書寫 SQL 語句的風格約定。
2、顏色程式碼表[46]
線上配色設計工具集,做在一個網站。(@nettsz[47] 投稿)
圖片
1、機器蜻蜓[48]
美國首都華盛頓的中央情報局博物館,有一隻上個世紀70年代製造的機器蜻蜓。
它其實是一架微型直升機,飛到目標物件附近,竊聽對方的談話。
這隻蜻蜓可以飛200米,然後落下來,透過雷射捕捉空氣振動,來還原談話聲。
但是,它不防風,也難以控制,所以從來沒有實際用過。
2、荷蘭的郵資程式碼[49]
荷蘭寄信不用郵票,而是用一種9個字母和數字組成的程式碼。
你花錢買一個程式碼,以 3 x 3 的格式寫在信封上,就能代替郵票,作為付款證明。
因為程式碼的有效期只有五天(以郵戳為準),需要購買後及時寄出,被猜到的可能性很小。
文摘
1、沒有程式設計生產力這樣的東西[50]
正如馬丁·福勒(Martin Fowler)所觀察到的那樣,程式設計師的程式設計生產力無法有效地衡量,因為它不存在。
軟體開發並不是一項必然會產生任何東西的活動。
假設你有兩個開發人員在同一個專案上工作,並且偶然地,他倆在同一天接受了相同的任務。
甲寫了一個1000行的框架,完美地解決了這個問題。程式碼編寫良好,並經過充分測試,每一步都有詳細記錄。
乙則是當天去了公園,一邊喂鴿子一邊思考問題,然後漫步回到辦公室,刪除了100行程式碼,部署了更改……問題就解決了。
請問誰的生產力更高?
回答是,這不重要。重要的是乙解決了問題,同時降低了團隊的長期維護成本。甲也解決了這個問題,但是他透過增加程式碼,增加了維護成本,因此(在其他條件相同的情況下)他的解決方案較差。
我們能說,乙具有更高的生產力嗎?顯然,很難找到程式設計生產力的正確衡量指標。
我認為,優秀的軟體開發者所做的就是解決問題。但是,生產力的衡量指標,比如程式碼、文件、資料等等,都只是解決問題的工具,並不是解決問題本身。
言論
1、
我寫 SQLite 的時候,從來沒人教過我 B 樹的知識。我需要自己實現 B 樹,我就從書架取下高德納的《計算機程式設計藝術》,找到了 B 樹的章節。他描述了演算法,我就照著實現。
有趣的是,高德納詳細介紹了搜尋 B 樹和插入 B 樹的演算法,沒有提供從 B 樹刪除資料的演算法,這是放在本章末尾的練習。所以我在實現自己的 B 樹之前,還必須先做完該章的練習。謝謝高德納,我真的很感激。
— 理查德·希普《SQLite 不為人知的故事》[51]
2、
瑞典南部的馬爾默市,洗一次10分鐘的淋浴,電費高達2.65歐元(約20元人民幣)。原因是該市接入的是德國電網,德國能源短缺,推高了電價。
— 《瑞典能源危機》[52]
3、
職業生涯最重要的一課是,你需要認識到,你工作的目的不在於使得公司的客戶滿意,而在於使得那些控制你的加薪、獎金和晉升的人滿意。
— Hacker News 讀者[53]
4、
正在開發的水下無人機技術,會使得以航空母艦為中心的海軍戰略過時,從而大幅削減軍事開支。
舉例來說,美國開發的水下無人機 Orca XLUUV,可以攜帶8噸的有效載荷,行駛數千英里,並且不需要長時間浮出水面。
— Hacker News 讀者[54]
5、
我第一次嘗試 MidJourney(文生圖工具)和 Suno(文生音樂工具)時,我想知道未來是否每個人都會成為數字藝術家。
很快,我就意識到我沒有“創作衝動”,即使看過很多別人的創作,我也常常不清楚自己想要創作的東西。
因此,未來的 AI 即使具備無比強大的繪畫和編曲能力,還是隻有少數人能成為畫家和音樂家。程式設計師也是如此,即使 AI 會程式設計,也無法人人成為程式設計師。
— 《Cursor 深度體驗》[55]
往年回顧
(完)
References
[1]
開源:
https://github.com/ruanyf/weekly
[2]
投稿:
https://github.com/ruanyf/weekly/issues
[3]
《誰在招人》:
https://github.com/ruanyf/weekly/issues/5610
[4]
郵件聯絡:
mailto:[email protected]
[5]
mailto:[email protected]
[6]
via:
https://www.163.com/dy/article/JJI2MD7C0514ETGI.html
[7]
這裡:
http://zjsms.com/iUNhdBEk/
[8]
這裡:
https://www.bagevent.com/event/8960133?bag_track=ryf
[9]
硬碟打孔機:
https://www.tomshardware.com/pc-components/storage/hard-drive-ssd-puncher-puts-four-holes-through-your-drives-puncher-p30-destroys-physical-media-with-12-tons-of-pressure
[10]
沙子國際象棋:
https://parametric-architecture.com/3d-printed-dune-chess-set-by-rory-noble-turner/
[11]
玻璃磚:
https://news.mit.edu/2024/engineers-3d-print-sturdy-glass-bricks-building-structures-0920
[12]
史上最大的風險投資:
https://finance.sina.cn/7×24/2024-12-18/detail-inczvnmc5201636.d.html
[13]
GitHub Copilot:
https://github.com/features/copilot
[14]
1-800-ChatGPT:
https://help.openai.com/en/articles/10193193-1-800-chatgpt-calling-and-messaging-chatgpt-with-your-phone
[15]
小米官方:
https://github.com/XiaoMi/ha_xiaomi_home/blob/main/doc/README_zh.md
[16]
組合語言的一點入門介紹:
https://shikaan.github.io/assembly/x86/guide/2024/09/08/x86-64-introduction-hello.html
[17]
CSS 網格區塊詳解:
https://ishadeed.com/article/css-grid-area/#header-layout
[18]
網頁如何插入 JSON-LD 語義資料:
https://csvbase.com/blog/13
[19]
13個對前端開發有用的 Chrome 外掛:
https://jsdevspace.substack.com/p/13-super-useful-chrome-plugins-for
[20]
谷歌不再是最好的搜尋引擎:
https://www.theregister.com/2024/12/16/opinion_column_perplexity_vs_google/
[21]
如何為 Windows 新增6個 macOS 最好的功能:
https://www.xda-developers.com/how-i-got-the-best-macos-features-on-windows/
[22]
Presenterm:
https://github.com/mfontanini/presenterm
[23]
@lengyijun:
https://github.com/ruanyf/weekly/issues/5706
[24]
Rslib:
https://github.com/web-infra-dev/rslib
[25]
@fi3ework:
https://github.com/ruanyf/weekly/issues/5713
[26]
Midscene.js:
https://github.com/web-infra-dev/midscene
[27]
@yuyutaotao:
https://github.com/ruanyf/weekly/issues/5733
[28]
wechatDataBackup:
https://github.com/git-jiadong/wechatDataBackup
[29]
@git-jiadong:
https://github.com/ruanyf/weekly/issues/5721
[30]
MoeMail:
https://github.com/beilunyang/moemail
[31]
線上體驗:
https://moemail.app
[32]
@beilunyang:
https://github.com/ruanyf/weekly/issues/5740
[33]
my-github-2024:
https://github.com/WCY-dt/my-github-2024
[34]
@WCY-dt:
https://github.com/ruanyf/weekly/issues/5722
[35]
Vanilla:
https://vanillaframework.io/
[36]
OpenAuth:
https://github.com/openauthjs/openauth
[37]
Schemio:
https://github.com/ishubin/schemio
[38]
Buzee:
https://github.com/gsidhu/buzee-tauri
[39]
Hika AI:
https://hika.fyi/
[40]
@atlas-comstock:
https://github.com/ruanyf/weekly/issues/5714
[41]
Slea.ai:
https://slea.ai/zh-CN
[42]
@aaamomo64:
https://github.com/ruanyf/weekly/issues/5727
[43]
AI 音效生成器:
https://tiktokvoice.net/en/sounds-effect
[44]
@aurthur:
https://github.com/ruanyf/weekly/issues/5729
[45]
SQL 風格指南:
https://www.sqlstyle.guide
[46]
顏色程式碼表:
https://www.ysdaima.com
[47]
@nettsz:
https://github.com/ruanyf/weekly/issues/5717
[48]
機器蜻蜓:
https://www.popularmechanics.com/flight/drones/a30795266/cia-robot-dragonfly/
[49]
荷蘭的郵資程式碼:
https://en.wikipedia.org/wiki/Postzegelcode
[50]
沒有程式設計生產力這樣的東西:
https://www.benrady.com/2012/11/theres-no-such-thing-as-software-productivity.html
[51]
理查德·希普《SQLite 不為人知的故事》:
https://corecursive.com/066-sqlite-with-richard-hipp/
[52]
《瑞典能源危機》:
https://www.euractiv.com/section/energy/news/swedish-minister-open-to-new-measures-to-tackle-energy-crisis-blames-german-nuclear-phase-out/
[53]
Hacker News 讀者:
https://news.ycombinator.com/item?id=42092156
[54]
Hacker News 讀者:
https://news.ycombinator.com/item?id=42432129
[55]
《Cursor 深度體驗》:
https://www.pixelstech.net/article/1734488862-do-not-be-misled-by-‘build-an-app-in-5-minutes’%3a-in-depth-practice-with-cursor