如何將 LLM 封裝到應用程式中並在本地執行它們

Mondo 科技 更新 2024-01-29

我最近一直在研究 Ollama,所以我花了很多時間思考如何在本地系統上執行大型語言模型 (LLMS) 以及如何將它們打包到應用程式中。 對於大多數使用 LLMS 的桌面應用程式,通常的體驗是插入 OpenAI API 金鑰或從原始碼構建 Python 專案。 這些方法可以作為概念證明,但它們需要一些許多使用者可能不具備的基本知識。 我一直在尋找的體驗是乙個只需單擊一下即可直接執行的應用程式。 計畫

一鍵**並執行。 沒有外部依賴關係。 應用程式檔案大小最小化。 簡單的LLM版本控制和分發系統。 為所有主要作業系統構建和發布。 利用本地執行使本地檔案系統可用。 使用者不公開任何設定。 LLM 應在使用者系統上以最佳效能執行,無需干預。 內建電池,但可更換。 對於高階使用者,他們應該能夠使用高階配置自定義驅動程式應用程式的 LLM。 考慮到所有這些因素,我決定開發乙個名為“ChatGPT”的桌面應用程式,允許使用者與他們的文件聊天。 這是乙個常見的 LLM 用例,但我認為現在對於非技術終端使用者來說,沒有乙個簡單而偉大的選擇。 它還充分利用了應用程式對檔案系統的輕鬆訪問。 建築

該專案可以分解為四個定義明確的部分:渲染、程序間通訊、主程序和 LLM 執行器。

渲染和程序間通訊

渲染部分是使用典型的 HTML、CSS 和 J**ascript 完成的。 當使用者執行需要處理的動作時,通過程序間通訊將其傳送到主程序。 這樣就可以執行**並訪問實際的主機系統。

主要流程

包括一些自定義文件處理(注意:請有人為常見的文件處理用例建立乙個標準的 j**ascript 庫),然後將提取的資料輸入到 transformers 中JS中。 transformers.JS 庫是由 Hugging Face 維護的專案,它允許您使用 Onnx 執行時在瀏覽器中執行模型。 這可能非常快。 最後,我將向量儲存在記憶體中,因為目前沒有滿足我需求的記憶體中向量資料庫。

LLM 跑步者

在處理完所有這些資訊後,我使用 ollama 來打包和分發將驅動互動的 LLM。 目前,大多數使用者將 Ollama 作為獨立應用程式執行並向其傳送查詢,但它也可以直接打包和編排到桌面應用程式中。 我將 ollama 可執行檔案新增到每個作業系統的相應包中,並編寫了一些 j**ascript** 來協調可執行檔案的使用。

這非常方便,因為我不僅能夠使用 Ollama 作為執行 LLM 的可靠系統,而且還能夠促進 Electron 包之外的 LLM 分發。 將 LLM 新增到 Electron 應用程式包本身意味著需要有大量的初始**(超過 4GB),並鎖定使用者僅使用我在 ChatGPT 中發布的模型。 此外,使用 Ollama 的分發系統,我還可以在不發布新應用程式的情況下更新或修改模型。 我可以進行更改以將模型推送到 ollamaAI 登錄檔,使用者將在下次啟動應用程式時獲得更新。 利用 Ollama 還可以使使用者體驗保持簡單,同時仍允許高階使用者根據需要更改驅動應用程式的模型。 本地LLM的早期採用者(以及與我互動的Llama使用者)對事物的工作原理感興趣,並希望通過最新模型保持領先地位。 雖然 ollama 被打包到 chatd 中,但它可以檢測 ollama 是否已經在執行。 在這種情況下,它會向使用者顯示其他設定,並允許他們配置 ChatGPT 並根據需要更改模型。 這也意味著使用者不需要重新建立現有模型。

結果

我把ChatGPT給一些不屬於典型ChatGPT使用者群的朋友看,反響非常積極。 他們驚訝地看到 AI 在他們的計算機上簡單且本地執行,他們很快看到了讓這個原生聊天機械人訪問他們檔案的潛力。 我期待著改善這種體驗,希望我們能看到一批新的桌面應用程式,使LLMS更易於使用。 ChatGPT專案位址:

相關問題答案

    如何寫得又快又好

    寫作是學習習的基礎,也是我們日常工作和習的基本技能。但是,很多人會面臨書寫速度慢 字跡不清晰 美觀等問題。那麼,如何快速寫好呢? 掌握正確的書寫姿勢和握筆方法。正確的書寫姿勢和握筆是寫好書寫的基礎。首先,我們需要坐直,雙腳平放在地面上,稍微前傾,要放鬆但不要太放鬆。其次,握筆時,應用拇指和食指捏住筆...

    如何寫得又快又好

    如果你想寫得又快又好,建議練習以下習 .練習習基本筆畫 基本筆畫是書寫的基礎,只有掌握了基本筆畫的書寫,才能寫出優美的字。您可以通過練習習書法或模仿書法大師的作品來提高基本筆畫的書寫能力。.提高你的寫作速度 如果你想寫得快,你需要提高你的寫作速度。您可以通過練習 習 快速複製 聽寫等來提高寫作速度。...

    如何在 U 盤或外部硬碟上安裝 Windows 系統?

    你有沒有夢想過擁有乙個可以隨身攜帶的Windows系統的U盤,無論你走到哪裡,只要插上電源,就可以方便地使用?現在,這個夢想觸手可及!您只需要將 Windows 系統安裝在 USB 快閃記憶體驅動器或可攜式硬碟驅動器上,您就可以實現這個願望。那麼,你如何實現這個過程呢?讓我們一起探索一下。注意 在繼...

    如何將智慧型電視連線到 wifi?您可以嘗試以下步驟

    隨著智慧型電視的普及,越來越多的人開始使用電視瀏覽網頁或進行其他網路活動。但是,許多人在面對如何將電視連線到 wifi 時可能會感到困惑。本文將為您詳細解答這個問題。.連線WiFi的基本步驟 確認電視支援wifi功能 首先,您需要確認您的電視支援wifi功能。一般來說,現代智慧型電視都支援wifi連...

    使用 CAD 軟體時如何將 CAD 單位設定為公釐

    CAD 計算機輔助設計 軟體廣泛應用於建築 機械 電子等各個領域,可以幫助設計師更高效地繪圖和設計。在使用CAD軟體時,單位設定是乙個非常重要的環節,它直接關係到圖紙的準確性和設計的質量。在本文中,我們將仔細研究如何將 CAD 單位設定為公釐,以幫助您更好地利用該軟體進行設計。.CAD單位設定的重要...