在本地電腦上跑大語言模型(LLM),已經(jīng)不是什么高科技操作了。隨著技術(shù)的迭代,現(xiàn)在利用Ollam和AnythingLLM就可以輕松構(gòu)建自己的本地知識庫,人人皆可上手,有手就行。過往要達成這一目標,可是需要有編程經(jīng)驗的。
首先得了解一下背后的原理。大概就是三步走:一是LLM,大語言模型,懂得怎么處理自然語言。二是嵌入模型,它的工作就是把復(fù)雜的數(shù)據(jù)簡化,轉(zhuǎn)化成易于處理的格式。最后是向量數(shù)據(jù)庫,專門存儲和管理那些轉(zhuǎn)化后的數(shù)據(jù)。
說實話,雖然文章有點長,但里面多是附加的資源和細節(jié),實際上手操作真的挺簡單的。感興趣的朋友,動手試試吧,說不定用AI構(gòu)建自己知識庫這種事挺酷的。
現(xiàn)在,咱們來看看如何實操:
第一步:安裝ollam
-
-
ollam,這玩意兒現(xiàn)在可以說是跑大模型的神器。不管你用的是PC、Mac還是樹莓派,只要內(nèi)存夠,跑起來都不是問題。記得,7B模型至少要8G內(nèi)存,13B的要16G,想玩70B的大家伙,那得有64G。首先,去ollama.com下載適合你操作系統(tǒng)的版本,我用的是Windows,下載安裝完之后,在命令行敲一下
ollama -V
,能看到版本號就說明安裝好了。
-
ollam,這玩意兒現(xiàn)在可以說是跑大模型的神器。不管你用的是PC、Mac還是樹莓派,只要內(nèi)存夠,跑起來都不是問題。記得,7B模型至少要8G內(nèi)存,13B的要16G,想玩70B的大家伙,那得有64G。首先,去ollama.com下載適合你操作系統(tǒng)的版本,我用的是Windows,下載安裝完之后,在命令行敲一下
-
- 下載適合本地電腦的大模型,ollama網(wǎng)站上有個“Models”鏈接,點進去找到“gemma”模型。在“Tags”里面找到你想運行的模型版本,比如“7b”,旁邊有個復(fù)制按鈕,點擊后把命令復(fù)制下來。然后就是在命令行里跑這個命令,第一次運行會自動下載模型。下載完畢,就能開始和它聊天或者讓它幫你寫代碼了。
-
終端輸入:
ollama run llama2:7b
下載完成后,就進入交互模式,這就可以開始聊天了。
至此,Gemma 模型的_本地部署運行已經(jīng)完成了_,非常簡單。
- 使用像 ChatGPT 那樣的現(xiàn)代的聊天窗口
雖然部署完成了,但是上面那種_古老的終端_可能影響我們的交互體驗,下面提供兩個現(xiàn)代聊天窗口工具(如果你不想使用這些GUI,這一步可以跳過,不影響本地知識庫搭建,**直接去看下面的第二步:**AnythingLLM安裝):chatbox 和 openai web ui。
第一個:chatbox
打開設(shè)置,模型提供方選 ollama,API 地址是本地的 11434 端口,模型選 gemma:7b。
地址:https://chatboxai.app/zh
第二個:openai web ui
如何安裝??
請注意,對于某些 Docker 環(huán)境,可能需要額外的配置。如果您遇到任何連接問題,我們有關(guān)Open WebUI 文檔的詳細指南隨時可以為您提供幫助。
快速開始使用 Docker ??
使用 Docker 安裝 Open WebUI 時,請確保 -v open-webui:/app/backend/data
在 Docker 命令中包含 。此步驟至關(guān)重要,因為它確保您的數(shù)據(jù)庫正確安裝并防止任何數(shù)據(jù)丟失。
- ? 如果 Ollama 在您的計算機上,請使用以下命令:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
- ? 如果 Ollama 位于不同的服務(wù)器上,請使用以下命令:
# 要連接到另一臺服務(wù)器上的 Ollama,請將 更改 OLLAMA_BASE_URL 為服務(wù)器的 URL: docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
安裝完成后,您可以通過 http://localhost:3000 訪問 Open WebUI。享受!??
打開 WebUI:服務(wù)器連接錯誤
如果您遇到連接問題,通常是由于 WebUI docker 容器無法訪問容器內(nèi)位于 127.0.0.1:11434 (host.docker.internal:11434) 的 Ollama 服務(wù)器。使用 --network=host
docker 命令中的標志來解決此問題。請注意,端口從 3000 更改為 8080,導(dǎo)致鏈接:http://localhost:8080。
Docker 命令示例:
docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
其他安裝方法
我們提供各種安裝替代方案,包括非 Docker 方法、Docker Compose、Kustomize 和 Helm。請訪問我們的 Open WebUI 文檔或加入我們的 Discord 社區(qū)以獲得全面的指導(dǎo)。
安裝文檔地址:?? Home | Open WebUI
https://docs.openwebui.com/
上面只是讓模型不足到本地下面來構(gòu)建本地知識庫,如果僅僅是構(gòu)建本地知識庫的話上面那些 GUI 可以不安裝,下面開始**正題**:下載本地知識庫軟件:
第二步:AnythingLLM安裝
下載地址:https://useanything.com/download
產(chǎn)品概述
AnythingLLM 是一個全棧應(yīng)用程序,您可以使用商業(yè)現(xiàn)成的 LLM 或流行的開源 LLM 和 vectorDB 解決方案來構(gòu)建私有 ChatGPT,無需任何妥協(xié),您可以在本地運行,也可以遠程托管并能夠智能聊天以及您提供的任何文件。
AnythingLLM 將您的文檔劃分為名為 workspaces 的功能很像線程,但增加了文檔的容器化。工作區(qū)可以共享文檔,但它們不會相互通信,因此您可以保持每個工作區(qū)的上下文干凈。
AnythingLLM 的一些很酷的功能
以下是 AnythingLLM 的一些酷炫功能:
-
- 支持多用戶實例和權(quán)限
-
- 新的自定義可嵌入式聊天小部件,可以嵌入到你的網(wǎng)站
-
- 支持多種文件類型(PDF,TXT,DOCX等)
-
- 通過簡單的用戶界面管理你的向量數(shù)據(jù)庫中管理文件
-
- 提供兩種聊天模式:對話和查詢。對話保留先前的問題和修訂。查詢是針對文檔的簡單QA
-
- 聊天過程中的引用
-
- 100%適合云部署。
-
- “自帶LLM”模型
-
- 處理大文件時極有效的節(jié)約成本措施。你永遠不必為將大型文件或記錄輸送到聊天機器人中支付費用,比其他的文件聊天機器人解決方案節(jié)省90%的費用。
-
- 提供全面的開發(fā)者API用于自定義集成!
同類開源項目大多基于Python語言開發(fā)。AnythingLLM采用了Javascript,前端用React,后端用Node,對于全棧工程師非常友好。
-
? 前端: React和ViteJS,實現(xiàn)創(chuàng)建和管理大模型用到的知識庫
-
? 后端: Node.js Express框架,實現(xiàn)向量數(shù)據(jù)庫的管理和所有與大模型的交互
-
? 采集器: Node.js Express框架,實現(xiàn)對文檔的處理解析
多用戶模式
這一點對于企業(yè)級應(yīng)用特別關(guān)鍵,AnythingLLM支持多用戶模式,3種角色的權(quán)限管理。
系統(tǒng)會默認創(chuàng)建一個管理員(Admin)賬號,擁有全部的管理權(quán)限。
第二種角色是Manager賬號,可管理所有工作區(qū)和文檔,但是不能管理大模型、嵌入模型和向量數(shù)據(jù)庫。
普通用戶賬號,則只能基于已授權(quán)的工作區(qū)與大模型對話,不能對工作區(qū)和系統(tǒng)配置做任何更改。
打開ollama端口:
Ollama其實有兩種模式:
-
- 聊天模式
-
- 服務(wù)器模式
這里使用服務(wù)器模式,Ollama在后端運行大模型,開發(fā)IP和端口給外部軟件使用。
ollama serve
通過終端或者命令行,訪問 http://localhost:11434 進行驗證:
curl http://localhost:11434
如果看到以下輸出,表示Ollama正在運行:
Ollama is running
下載AnythingLLM之后開始進入啟動的配置階段,開始之前請確保 ollama serve
運行,或者終端執(zhí)行 ollama run xxx
(任何一個模型)。
否則,AnythingLLM和其他依賴于Ollama端口的軟件(前面的幾個GUI)會運行不了或者找不到模型,錯誤如下:
啟動并配置AnythingLLM
搭建一個本地知識庫,會涉及到三個關(guān)鍵:``1. LLM Model,大語言模型。它負責(zé)處理和理解自然語言。``2. Embedding Model,嵌入模型。它負責(zé)把高維度的數(shù)據(jù)轉(zhuǎn)化為低維度的嵌入空間。這個數(shù)據(jù)處理過程在RAG中非常重要。``3. Vector Store,向量數(shù)據(jù)庫,專門用來高效處理大規(guī)模向量數(shù)據(jù)。
本地大模型選擇
選擇 Ollama,填入 Ollama 的 http://host.docker.internal:11434
端口,然后選擇你下載的模型。當(dāng)然你也可以使用 OpenAI,使用更強大的云端模型,提供基礎(chǔ)模型支持。但這樣的話,就不是完全本地化的私有部署了。
Embedding 配置
可以選擇:https://ollama.com/library/nomic-embed-text 或者 AnythingLLM 自帶的 AnythingLLMEmbedder。
向量數(shù)據(jù)庫配置
AnythingLLM 默認使用內(nèi)置的向量數(shù)據(jù)庫 LanceDB。這是一款無服務(wù)器向量數(shù)據(jù)庫,可嵌入到應(yīng)用程序中,支持向量搜索、全文搜索和 SQL。我們也可以選擇 Chroma、Milvus、Pinecone 等向量數(shù)據(jù)庫。
我選擇了 LanceDB。你想修改前面的推理模型或者嵌入模型,以及下列數(shù)據(jù)庫,注冊完成之后,可以在后臺設(shè)置修改。
完成上述登錄配置操作之后,讓我們進入界面介紹(如下圖)。
導(dǎo)入外部 Documents
AnythingLLM 可以支持 PDF、TXT、DOCX 等文檔,可以提取文檔中的文本信息,經(jīng)過嵌入模型(Embedding Models),保存在向量數(shù)據(jù)庫中,并通過一個簡單的 UI 界面管理這些文檔。
為管理這些文檔,AnythingLLM 引入工作區(qū)(workspace)的概念,作為文檔的容器,可以在一個工作區(qū)內(nèi)共享文檔,但是工作區(qū)之間隔離。AnythingLLM 既可以上傳文檔,也可以抓取網(wǎng)頁信息。
將文檔保存嵌入工作區(qū)向量數(shù)據(jù)庫
根據(jù)知識庫中上傳的文檔,進行知識問答。
RAG 智能問答
Ok,經(jīng)過我們前面所有的艱難準備,現(xiàn)在正式部署成功,讓我們來體驗一下:
相比文檔中的原文,大模型給出的回答還不夠準確(與選擇的基礎(chǔ)模型有關(guān),我自己的筆記本電只能跑 gemma: 6b 的),未來,這套系統(tǒng)還可在文本召回和重排等方面,進一步調(diào)優(yōu)和完善。
點擊空間的設(shè)置按鈕并切換為Query狀態(tài)后,模型將僅在找到文檔上下文時提供答案(回答會更加綁定于知識庫)。
后面是一些API操作:
生成系統(tǒng) API 私鑰
設(shè)置 API 訪問授權(quán)密碼
系統(tǒng)提供的 API 列表
總結(jié)
常見錯誤:
-
- 本地運行大模型耗資源,需要選擇較小的模型作為基礎(chǔ)模型。在終端中運行時可能會出現(xiàn) CUDA 錯誤,表示顯存不足,導(dǎo)致提供的端口失效。
-
-
- 中文支持不夠完善。
-
3. 文中提到的技術(shù)軟件工具有:Ollama、Chatbox、Open WebUI、向量數(shù)據(jù)庫、嵌入模型、本地模型 Gemma、AnythingLLM
附加信息:
在本地快速運行大模型,可以使用 Ollama 和 Hugging Face。Hugging Face 提供了兩種方式來訪問大模型:
-
- Inference API (Serverless):通過 API 進行推理。
import requests API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-2-7b-hf" headers = {"Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} def query(payload): response = requests.post(API_URL, headers=headers, json=payload) return response.json() output = query({ "inputs": "Can you please let us know more details about your ", })
-
- 本地執(zhí)行:使用 Hugging Face 的 pipeline 來進行高級操作。
from transformers import pipeline pipe = pipeline("text-generation", model="meta-llama/Llama-2-7b-hf")
使用 Hugging Face 對于不懂編程的人來說可能比較困難,因為需要申請 API Key 并且需要本地有 Python 或其他編程語言的環(huán)境。而使用 Ollama 來運行本地大模型則更加簡單。
大模型崗位需求
大模型時代,企業(yè)對人才的需求變了,AIGC相關(guān)崗位人才難求,薪資持續(xù)走高,AI運營薪資平均值約18457元,AI工程師薪資平均值約37336元,大模型算法薪資平均值約39607元。
掌握大模型技術(shù)你還能擁有更多可能性:
? 成為一名全棧大模型工程師,包括Prompt,LangChain,LoRA等技術(shù)開發(fā)、運營、產(chǎn)品等方向全棧工程;
? 能夠擁有模型二次訓(xùn)練和微調(diào)能力,帶領(lǐng)大家完成智能對話、文生圖等熱門應(yīng)用;
? 薪資上浮10%-20%,覆蓋更多高薪崗位,這是一個高需求、高待遇的熱門方向和領(lǐng)域;
? 更優(yōu)質(zhì)的項目可以為未來創(chuàng)新創(chuàng)業(yè)提供基石。
可能大家都想學(xué)習(xí)AI大模型技術(shù),也想通過這項技能真正達到升職加薪,就業(yè)或是副業(yè)的目的,但是不知道該如何開始學(xué)習(xí),因為網(wǎng)上的資料太多太雜亂了,如果不能系統(tǒng)的學(xué)習(xí)就相當(dāng)于是白學(xué)。為了讓大家少走彎路,少碰壁,這里我直接把全套AI技術(shù)和大模型入門資料、操作變現(xiàn)玩法都打包整理好,希望能夠真正幫助到大家。
-END-
??AI大模型學(xué)習(xí)路線匯總??
大模型學(xué)習(xí)路線圖,整體分為7個大的階段:(全套教程文末領(lǐng)取哈)
第一階段: 從大模型系統(tǒng)設(shè)計入手,講解大模型的主要方法;
第二階段: 在通過大模型提示詞工程從Prompts角度入手更好發(fā)揮模型的作用;
第三階段: 大模型平臺應(yīng)用開發(fā)借助阿里云PAI平臺構(gòu)建電商領(lǐng)域虛擬試衣系統(tǒng);
第四階段: 大模型知識庫應(yīng)用開發(fā)以LangChain框架為例,構(gòu)建物流行業(yè)咨詢智能問答系統(tǒng);
第五階段: 大模型微調(diào)開發(fā)借助以大健康、新零售、新媒體領(lǐng)域構(gòu)建適合當(dāng)前領(lǐng)域大模型;
第六階段: 以SD多模態(tài)大模型為主,搭建了文生圖小程序案例;
第七階段: 以大模型平臺應(yīng)用與開發(fā)為主,通過星火大模型,文心大模型等成熟大模型構(gòu)建大模型行業(yè)應(yīng)用。
??大模型實戰(zhàn)案例??
光學(xué)理論是沒用的,要學(xué)會跟著一起做,要動手實操,才能將自己的所學(xué)運用到實際當(dāng)中去,這時候可以搞點實戰(zhàn)案例來學(xué)習(xí)。
??大模型視頻和PDF合集??
觀看零基礎(chǔ)學(xué)習(xí)書籍和視頻,看書籍和視頻學(xué)習(xí)是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎(chǔ)到深入,還是很容易入門的。
??學(xué)會后的收獲:??
? 基于大模型全棧工程實現(xiàn)(前端、后端、產(chǎn)品經(jīng)理、設(shè)計、數(shù)據(jù)分析等),通過這門課可獲得不同能力;
? 能夠利用大模型解決相關(guān)實際項目需求: 大數(shù)據(jù)時代,越來越多的企業(yè)和機構(gòu)需要處理海量數(shù)據(jù),利用大模型技術(shù)可以更好地處理這些數(shù)據(jù),提高數(shù)據(jù)分析和決策的準確性。因此,掌握大模型應(yīng)用開發(fā)技能,可以讓程序員更好地應(yīng)對實際項目需求;
? 基于大模型和企業(yè)數(shù)據(jù)AI應(yīng)用開發(fā),實現(xiàn)大模型理論、掌握GPU算力、硬件、LangChain開發(fā)框架和項目實戰(zhàn)技能, 學(xué)會Fine-tuning垂直訓(xùn)練大模型(數(shù)據(jù)準備、數(shù)據(jù)蒸餾、大模型部署)一站式掌握;
? 能夠完成時下熱門大模型垂直領(lǐng)域模型訓(xùn)練能力,提高程序員的編碼能力: 大模型應(yīng)用開發(fā)需要掌握機器學(xué)習(xí)算法、深度學(xué)習(xí)框架等技術(shù),這些技術(shù)的掌握可以提高程序員的編碼能力和分析能力,讓程序員更加熟練地編寫高質(zhì)量的代碼。文章來源:http://www.zghlxwxcb.cn/news/detail-856972.html
??獲取方式:
??有需要的小伙伴,可以保存圖片到wx掃描二v碼免費領(lǐng)取【保證100%免費
】??文章來源地址http://www.zghlxwxcb.cn/news/detail-856972.html
到了這里,關(guān)于全民AI時代:手把手教你用Ollama & AnythingLLM搭建AI知識庫,無需編程,跟著做就行!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!