PDF文件長出「AI大腦」?網民驚呼:這操作太「黑科技」了

你以為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論文鏈接:https://arxiv.org/abs/2305.07759

Pythia:從實驗室到百姓

Pythia旨在研究語言模型的「可解釋性」和「學習動態」。

簡單來說,他們想搞清楚:AI模型在訓練過程中,到底是怎麼「學會」語言的?知識又是如何一步步積累的?

論文鏈接:https://arxiv.org/abs/2304.01373論文鏈接: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 

本文來自微信公眾號「新智元」,作者:新智元,36氪經授權發佈。