PDF文件長出「AI大腦」?網(wǎng)友驚呼:這操作太「黑科技」了!
技術(shù)宅太瘋狂!
在PDF中,也能運(yùn)行LLM。
從PDF里跑出AI大腦?網(wǎng)友驚呼:這操作太「黑科技」了!
最近,Aiden Bai的推文掀起了熱議,已有數(shù)萬瀏覽!
他展示了一個(gè)名為「llm.pdf」的項(xiàng)目,標(biāo)題赫然寫著:「在PDF文件中,運(yùn)行大語言模型!」
瘋狂程度堪比人類穿越進(jìn)入電子游戲!
更夸張的是,評(píng)論區(qū)里還有人爆料,連Linux系統(tǒng)都能塞進(jìn)PDF里運(yùn)行。
日常辦公、「高端爆料」中常見的文件格式——
Portable Document Format(.PDF),還能跑大模型,這到底怎么回事兒?
PDF里藏AI:還能講故事、聊聊天
「llm.pdf」的項(xiàng)目在PDF里面,嵌入了幾個(gè)小型語言模型(SLM),比如TinyStories(3M參數(shù))、Pythia(31M參數(shù))和TinyLLM(10M參數(shù))。
這些模型雖然「小巧」,但功能可不簡單!
TinyStories:3M參數(shù),運(yùn)行速度快。號(hào)稱是最小的能生成連貫文本的語言模型,專門為講故事設(shè)計(jì)。想象一下,打開PDF,它給你講個(gè)兒童故事,比如「小紅帽大戰(zhàn)大灰狼2.0」!
Pythia:31M參數(shù),速度稍慢,支持對(duì)話。一個(gè)小型對(duì)話模型,能與人聊天,比如問它「今天天氣怎么樣」,它可能會(huì)一本正經(jīng)地回答:「我不知道,但我可以給你講個(gè)下雨天的故事!」
TinyLLM:10M參數(shù),速度快。一個(gè)概念驗(yàn)證模型,專注于文本生成,適合做些簡單的創(chuàng)作實(shí)驗(yàn)。
用戶可以直接下載這些已構(gòu)建好的PDF文件,打開后就能體驗(yàn)AI的「魔法」——直接在PDF里生成文本、講故事,甚至聊天!
想象一下,你打開一個(gè)PDF文件,里面不是枯燥的文檔,而是一個(gè)能跟你互動(dòng)的AI小助手,給你講個(gè)睡前故事,或者陪你聊聊今天的趣事。
這種體驗(yàn)是不是有點(diǎn)像科幻電影里的場(chǎng)景?
網(wǎng)友們炸開了鍋,有人調(diào)侃:「我現(xiàn)在是更怕醒來發(fā)現(xiàn)自己被困在PDF里,還是怕變成Fortnite里的聯(lián)動(dòng)角色?」
TinyStories:講睡前故事的最小LLM
「llm.pdf」項(xiàng)目里提到的TinyStories模型,其實(shí)背后還有一段有趣的故事。
這個(gè)模型基于TinyStories數(shù)據(jù)集,最早是為了研究小型語言模型的能力。
研究者用GPT-3.5和GPT-4生成了數(shù)百萬個(gè)兒童小故事,內(nèi)容簡單但包含了語法、詞匯和推理等語言要素。
詞匯簡單,3到4歲兒童就能看得懂。
論文鏈接:https://arxiv.org/abs/2305.07759
Pythia:從實(shí)驗(yàn)室到百姓
Pythia旨在研究語言模型的「可解釋性」和「學(xué)習(xí)動(dòng)態(tài)」。
簡單來說,他們想搞清楚:AI模型在訓(xùn)練過程中,到底是怎么「學(xué)會(huì)」語言的?知識(shí)又是如何一步步積累的?
論文鏈接:https://arxiv.org/abs/2304.01373
Pythia項(xiàng)目聚焦于自回歸Transformer模型,結(jié)合可解釋性分析和規(guī)模法則(scaling laws),研究模型在訓(xùn)練中的知識(shí)演變。
Pythia模型家族包含多個(gè)版本,從70M到12B參數(shù)不等,而「llm.pdf」里用到的Pythia-31M是其中最小的一個(gè)版本。
雖然小,但它繼承了Pythia項(xiàng)目的核心優(yōu)勢(shì):高效、透明、適合研究。
多項(xiàng)目研究利用Pythia模型的透明性和可控性,深入探索了語言模型的「黑箱」問題。
而「llm.pdf」項(xiàng)目把Pythia-31M塞進(jìn)PDF里,也算是讓學(xué)術(shù)成果「飛入尋常百姓家」,從實(shí)驗(yàn)室走向了普通用戶。
TinyLLM:為邊緣設(shè)備量身打造
TinyLLM的目標(biāo)是為邊緣設(shè)備(比如物聯(lián)網(wǎng)設(shè)備、嵌入式傳感器)設(shè)計(jì)輕量級(jí)語言模型,因?yàn)檫@些設(shè)備通常計(jì)算資源有限,跑不動(dòng)動(dòng)輒幾十億參數(shù)的大模型。
TinyLLM框架有幾個(gè)亮點(diǎn):
- 輕量高效:TinyLLM模型只有10M參數(shù),卻能完成基本的文本生成任務(wù),非常適合資源受限的場(chǎng)景。這種小模型在邊緣設(shè)備上推理時(shí),內(nèi)存占用和計(jì)算需求都極低。
- 訓(xùn)練框架:TinyLLM提供了一個(gè)完整的訓(xùn)練和部署pipeline,支持用戶用自己的數(shù)據(jù)訓(xùn)練模型。框架支持多種優(yōu)化技術(shù),比如量化(quantization)和剪枝(pruning),進(jìn)一步降低模型的資源需求。
- 嵌入式應(yīng)用:TinyLLM最初是為嵌入式傳感設(shè)備設(shè)計(jì)的。
「llm.pdf」項(xiàng)目里的TinyLLM-10M,正是這個(gè)框架的一個(gè)實(shí)例。
雖然PDF并不是TinyLLM的典型應(yīng)用場(chǎng)景,但這種跨界玩法也體現(xiàn)了小型語言模型的靈活性。
不只是AI,連Linux都能跑?
更讓人瞠目結(jié)舌的是,Zaid在評(píng)論區(qū)丟出一記「重磅炸彈」:早在2月份,他就發(fā)帖提到過,PDF文件還能運(yùn)行Linux系統(tǒng)!
他提到的項(xiàng)目利用RISC-V模擬器(基于TinyEMU),通過JavaScript在PDF里模擬出一個(gè)完整的Linux環(huán)境。
換句話說,你打開一個(gè)PDF,里面可能藏著一個(gè)能跑命令行的小型操作系統(tǒng)!
這波操作簡直讓網(wǎng)友們腦洞大開。
網(wǎng)友Gadgets Fan甚至開玩笑說:「這不算啥,畢竟我們整個(gè)宇宙可能都在一個(gè)PDF里模擬運(yùn)行呢!」
雖然是玩笑,但也反映了大家對(duì)這種技術(shù)的驚嘆——PDF這個(gè)我們常用的文件格式,竟然能變成一個(gè)「萬能容器」,裝下AI、操作系統(tǒng),甚至更多可能性。
這背后是怎么做到的?
技術(shù)原理
你可能好奇,PDF不是用來存文檔的嗎?怎么還能跑AI和Linux?
其實(shí),這一切都要?dú)w功于PDF格式的一個(gè)隱藏技能——它支持JavaScript!
是的,你沒聽錯(cuò),PDF文件可以通過嵌入JavaScript代碼來執(zhí)行動(dòng)態(tài)操作。
早在Adobe Acrobat等PDF編輯軟件中,就已經(jīng)支持在PDF里運(yùn)行JavaScript了,比如用來做動(dòng)態(tài)表單或者交互效果。
「llm.pdf」項(xiàng)目正是利用了這一點(diǎn)。
開發(fā)團(tuán)隊(duì)將小型語言模型編譯成JavaScript代碼(通過工具像Emscripten將C代碼轉(zhuǎn)為asm.js),然后嵌入到PDF中。
打開PDF時(shí),JavaScript引擎就會(huì)運(yùn)行這些代碼,讓AI模型「活」過來。
在對(duì)應(yīng)的Github項(xiàng)目中,開發(fā)者解釋了具體的細(xì)節(jié):
模型編譯:用Emscripten工具把高效的語言模型推理框架llama.cpp編譯成了asm.js,這樣模型就可以在JavaScript環(huán)境中運(yùn)行。
嵌入PDF:利用老版本的PDF JavaScript注入技術(shù)(PDF JS injection),他們把編譯好的模型代碼嵌入到PDF文件中。
不僅如此,模型的權(quán)重文件(比如TinyStories的3M參數(shù)權(quán)重)也被轉(zhuǎn)成base64格式,直接塞進(jìn)了PDF里。
這意味著,整個(gè)AI模型和它的運(yùn)行環(huán)境都打包在一個(gè)PDF文件里,打開就能用!
運(yùn)行推理:當(dāng)你打開PDF時(shí),閱讀器會(huì)執(zhí)行嵌入的JavaScript代碼,加載模型并運(yùn)行推理(inference),直接在PDF界面上生成文本或?qū)υ挕?/span>
不過,這種操作也有局限性。
現(xiàn)代瀏覽器(比如Chrome)的PDF引擎禁用了JIT(即時(shí)編譯)功能,導(dǎo)致JavaScript運(yùn)行速度較慢。
相比之下,Adobe Acrobat的表現(xiàn)更好,因?yàn)樗腏avaScript引擎更寬松,支持更高效的執(zhí)行。
至于Linux項(xiàng)目,原理類似,也是利用PDF的JavaScript支持,通過RISC-V模擬器(TinyEMU)在PDF里模擬一個(gè)小型操作系統(tǒng)。雖然性能有限,但這種創(chuàng)意已經(jīng)足夠震撼了!
結(jié)語:PDF,你還有多少驚喜?
誰能想到,平日里我們用來存簡歷、合同的PDF,竟然能變成AI和操作系統(tǒng)的「游樂場(chǎng)」?
從Linux模擬,再到如今的「llm.pdf」,PDF的潛力似乎被徹底挖掘出來了。
或許在未來,PDF不再只是靜態(tài)文檔,而是可以互動(dòng)、計(jì)算甚至「思考」的智能容器。
PDF的下一個(gè)「魔法」會(huì)是什么?
參考資料:
https://www.youtube.com/watch?v=4cBom2lAx-g https://www.youtube.com/watch?v=4cBom2lAx-g