
新智元報道
新智元報道
編輯:KingHZ
【新智元導讀】你以為PDF只是用來閱讀文件的?這次它徹底顛覆了你的想象!極客Aiden Bai最新整活——直接把大語言模型(LLM)塞進PDF裡,開啟檔案就能讓AI講故事、陪你聊天!更誇張的是,連Linux系統都能在PDF裡執行。
技術宅太瘋狂!
在PDF中,也能執行LLM。
從PDF裡跑出AI大腦?網友驚呼:這操作太「黑科技」了!
最近,Aiden Bai的推文掀起了熱議,已有數萬瀏覽!

他展示了一個名為「llm.pdf」的專案,標題赫然寫著:「在PDF檔案中,執行大語言模型!」

瘋狂程度堪比人類穿越進入電子遊戲!
更誇張的是,評論區裡還有人爆料,連Linux系統都能塞進PDF裡執行。
日常辦公、「高階爆料」中常見的檔案格式——
Portable Document Format(.PDF),還能跑大模型,這到底怎麼回事兒?


PDF裡藏AI:還能講故事、聊聊天
「llm.pdf」的專案在PDF裡面,嵌入了幾個小型語言模型(SLM),比如TinyStories(3M引數)、Pythia(31M引數)和TinyLLM(10M引數)。

這些模型雖然「小巧」,但功能可不簡單!
TinyStories:3M引數,執行速度快。號稱是最小的能生成連貫文字的語言模型,專門為講故事設計。想象一下,開啟PDF,它給你講個兒童故事,比如「小紅帽大戰大灰狼2.0」!
Pythia:31M引數,速度稍慢,支援對話。一個小型對話模型,能與人聊天,比如問它「今天天氣怎麼樣」,它可能會一本正經地回答:「我不知道,但我可以給你講個下雨天的故事!」
TinyLLM:10M引數,速度快。一個概念驗證模型,專注於文字生成,適合做些簡單的創作實驗。
使用者可以直接下載這些已構建好的PDF檔案,開啟後就能體驗AI的「魔法」——直接在PDF裡生成文字、講故事,甚至聊天!
想象一下,你開啟一個PDF檔案,裡面不是枯燥的文件,而是一個能跟你互動的AI小助手,給你講個睡前故事,或者陪你聊聊今天的趣事。
這種體驗是不是有點像科幻電影裡的場景?

網友們炸開了鍋,有人調侃:「我現在是更怕醒來發現自己被困在PDF裡,還是怕變成Fortnite裡的聯動角色?」

TinyStories:講睡前故事的最小LLM
「llm.pdf」專案裡提到的TinyStories模型,其實背後還有一段有趣的故事。
這個模型基於TinyStories資料集,最早是為了研究小型語言模型的能力。
研究者用GPT-3.5和GPT-4生成了數百萬個兒童小故事,內容簡單但包含了語法、詞彙和推理等語言要素。
詞彙簡單,3到4歲兒童就能看得懂。

論文連結:https://arxiv.org/abs/2305.07759

Pythia:從實驗室到百姓
Pythia旨在研究語言模型的「可解釋性」和「學習動態」。
簡單來說,他們想搞清楚:AI模型在訓練過程中,到底是怎麼「學會」語言的?知識又是如何一步步積累的?

論文連結:https://arxiv.org/abs/2304.01373
Pythia專案聚焦於自迴歸Transformer模型,結合可解釋性分析和規模法則(scaling laws),研究模型在訓練中的知識演變。
Pythia模型家族包含多個版本,從70M到12B引數不等,而「llm.pdf」裡用到的Pythia-31M是其中最小的一個版本。
雖然小,但它繼承了Pythia專案的核心優勢:高效、透明、適合研究。
多專案研究利用Pythia模型的透明性和可控性,深入探索了語言模型的「黑箱」問題。
而「llm.pdf」專案把Pythia-31M塞進PDF裡,也算是讓學術成果「飛入尋常百姓家」,從實驗室走向了普通使用者。

TinyLLM:為邊緣裝置量身打造
TinyLLM的目標是為邊緣裝置(比如物聯網裝置、嵌入式感測器)設計輕量級語言模型,因為這些裝置通常計算資源有限,跑不動動輒幾十億引數的大模型。
TinyLLM框架有幾個亮點:
-
輕量高效:TinyLLM模型只有10M引數,卻能完成基本的文字生成任務,非常適合資源受限的場景。這種小模型在邊緣裝置上推理時,記憶體佔用和計算需求都極低。
-
訓練框架:TinyLLM提供了一個完整的訓練和部署pipeline,支援使用者用自己的資料訓練模型。框架支援多種最佳化技術,比如量化(quantization)和剪枝(pruning),進一步降低模型的資源需求。
-
嵌入式應用:TinyLLM最初是為嵌入式感測裝置設計的。
「llm.pdf」專案裡的TinyLLM-10M,正是這個框架的一個例項。
雖然PDF並不是TinyLLM的典型應用場景,但這種跨界玩法也體現了小型語言模型的靈活性。

不只是AI,連Linux都能跑?
更讓人瞠目結舌的是,Zaid在評論區丟出一記「重磅炸彈」:早在2月份,他就發帖提到過,PDF檔案還能執行Linux系統!

他提到的專案利用RISC-V模擬器(基於TinyEMU),透過JavaScript在PDF裡模擬出一個完整的Linux環境。
換句話說,你開啟一個PDF,裡面可能藏著一個能跑命令列的小型作業系統!
這波操作簡直讓網友們腦洞大開。
網友Gadgets Fan甚至開玩笑說:「這不算啥,畢竟我們整個宇宙可能都在一個PDF裡模擬執行呢!」

雖然是玩笑,但也反映了大家對這種技術的驚歎——PDF這個我們常用的檔案格式,竟然能變成一個「萬能容器」,裝下AI、作業系統,甚至更多可能性。
這背後是怎麼做到的?

技術原理
你可能好奇,PDF不是用來存文件的嗎?怎麼還能跑AI和Linux?
其實,這一切都要歸功於PDF格式的一個隱藏技能——它支援JavaScript!
是的,你沒聽錯,PDF檔案可以透過嵌入JavaScript程式碼來執行動態操作。
早在Adobe Acrobat等PDF編輯軟體中,就已經支援在PDF裡執行JavaScript了,比如用來做動態表單或者互動效果。
「llm.pdf」專案正是利用了這一點。
開發團隊將小型語言模型編譯成JavaScript程式碼(透過工具像Emscripten將C程式碼轉為asm.js),然後嵌入到PDF中。
開啟PDF時,JavaScript引擎就會執行這些程式碼,讓AI模型「活」過來。
在對應的Github專案中,開發者解釋了具體的細節:
模型編譯:用Emscripten工具把高效的語言模型推理框架llama.cpp編譯成了asm.js,這樣模型就可以在JavaScript環境中執行。
嵌入PDF:利用老版本的PDF JavaScript注入技術(PDF JS injection),他們把編譯好的模型程式碼嵌入到PDF檔案中。
不僅如此,模型的權重檔案(比如TinyStories的3M引數權重)也被轉成base64格式,直接塞進了PDF裡。
這意味著,整個AI模型和它的執行環境都打包在一個PDF檔案裡,開啟就能用!
執行推理:當你開啟PDF時,閱讀器會執行嵌入的JavaScript程式碼,載入模型並執行推理(inference),直接在PDF介面上生成文字或對話。
不過,這種操作也有侷限性。
現代瀏覽器(比如Chrome)的PDF引擎停用了JIT(即時編譯)功能,導致JavaScript執行速度較慢。
相比之下,Adobe Acrobat的表現更好,因為它的JavaScript引擎更寬鬆,支援更高效的執行。
至於Linux專案,原理類似,也是利用PDF的JavaScript支援,透過RISC-V模擬器(TinyEMU)在PDF裡模擬一個小型作業系統。雖然效能有限,但這種創意已經足夠震撼了!

結語:PDF,你還有多少驚喜?
誰能想到,平日裡我們用來存簡歷、合同的PDF,竟然能變成AI和作業系統的「遊樂場」?
從Linux模擬,再到如今的「llm.pdf」,PDF的潛力似乎被徹底挖掘出來了。
或許在未來,PDF不再只是靜態文件,而是可以互動、計算甚至「思考」的智慧容器。
PDF的下一個「魔法」會是什麼?
參考資料:
https://www.youtube.com/watch?v=4cBom2lAx-g
https://x.com/aidenybai/status/1916171665421053963
