低成本+高性能+超靈活!Deepseek 671B + Milvus 重新定義知識庫搭建! 原創
這個春節,DeepSeek 實在太火爆了。
“老板指示,我們要整合 Deepseek,還得建立自己的知識庫……”
這樣的聲音,哪個開發者近期沒耳聞?
Deepseek 的火爆,智能推理的加速,以及算力成本的顯著降低,使得眾多原本對大型模型望而卻步的企業,一夜之間紛紛投向 AI 的懷抱,追求降本增效。在這個過程中,對于那些擁有優質私有數據和敏感數據的企業來說,若想避免數據泄露,部署本地知識庫無疑是走向大模型的關鍵一步。
然而,當你深入調研時,會發現這件事情遠非想象中那么簡單:
嘗試使用開源的蒸餾版模型?效果不盡人意,連基礎的問答準確性都無法保障。
舉個例子,我們最近推出了基于 Deepseek 7b+Milvus的 本地部署教程,許多開發者反饋,即便是7B版本搭配了向量數據庫,效果仍然難以令人滿意。
若要部署完整版的大型模型?以滿血的 R1 為例,其參數高達 671B,即便是FP16 精度,所需的顯存也高達 1342GB,換成 80G 的 A100 顯卡,也需要 17張。而對于個人電腦,即便是配備頂級的 24GB 4090 顯卡,數量也需達到56張(MoE+量化可以降低實際顯存需求)……
顯然,無論是個人還是中小企業,都難以承擔如此高昂的顯卡成本。
那選擇開源方案自行搭建呢?光是環境配置就讓人頭疼:向量庫的選擇、模型部署、前端界面……每一步都是對你耐心的考驗。
難道真的沒有簡單易行的解決方案嗎?
經過一個月的加班加點部署,我堅信,DeepSeek + Milvus + AnythingLLM,絕對是搭建本地知識庫的最佳選擇!
這個方案不僅解決了性能問題,更重要的是,它實現了真正的“零門檻”。僅需30分鐘,就能構建一個具備企業級性能的私有知識庫。整個過程如同拼裝積木般簡單,即便是新手也能迅速掌握。
1、選型思路
首先,讓我們探討一下為什么選擇 DeepSeek + Milvus + AnythingLLM這個組合來進行本次項目選型,它主要針對當前 RAG 實施過程中的三個主要難題:
1.1 模型性能挑戰
體驗過 Ollama 提供的精簡版 DeepSeek 的用戶可能會發現,盡管它仍然是 DeepSeek,但其表現并不盡如人意。簡而言之,7B 版本的表現不盡人意,而671B 版本的成本又過高。
因此,我們建議利用硅基流動以及某些云服務提供商的 API 服務,通過 API 調用,我們可以以極低的成本獲取完整版 DeepSeek 的計算能力。更值得一提的是,近期新注冊用戶還能享受免費額度體驗。
1.2 部署復雜性
市場上的開源 RAG 解決方案眾多,但它們要么需要繁瑣的環境配置,要么需要大量的運維工作。而 AnythingLLM 則提供了一個完整的 UI 界面,無縫支持向量數據庫 Milvus 以及多種大型模型接口,大大降低了初學者的使用門檻。
Milvus 在檢索效率和數據規模支持方面,無疑是行業內的佼佼者。同時,Milvu s也是目前在 GitHub 上向量數據庫類別中,星標數量最多的開源項目,成為了大多數 AI 開發者的入門必修課。
1.3 系統擴展性
這個組合的最大優勢在于其靈活性。它允許用戶輕松切換不同的大型語言模型,Milvus 能夠支持億級別數據的高效檢索,而 AnythingLLM 的插件機制使得功能擴展變得輕而易舉。
綜合來看,這個組合方案不僅確保了效果,降低了使用難度,還具備了出色的擴展性。對于希望迅速構建私有知識庫的個人用戶來說,這無疑是一個極佳的選擇。
2、實戰:搭建本地 RAG
環境配置要求說明如下:
本文環境均以 MacOS 為例,Linux 和 Windows 用戶可以參考對應平臺的部署文檔。
Docker 和 Ollama 安裝不在本文中展開。
本地部署配置:最低 CPU 4核、內存 8G,建議 CPU 8核、內存 16G
第一、Milvus 部署,官網下載地址:??https://milvus.io??
1.1 下載 Milvus 部署文件
bash-3.2$ wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml
1.2 修改配置文件
說明:anythingllm 對接 Milvus 時需要提供 Milvus 賬號密碼,因此需要修改docker-compose.yml 文件中的 username 和 password 字段。
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: registry.cn-hangzhou.aliyuncs.com/xy-zy/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
minio:
container_name: milvus-minio
image: registry.cn-hangzhou.aliyuncs.com/xy-zy/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: registry.cn-hangzhou.aliyuncs.com/xy-zy/milvus:v2.5.4
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
COMMON_USER: milvus
COMMON_PASSWORD: milvus
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus
1.3 啟動并檢查 Milvus 服務
bash-3.2$ docker-compose up -d
第二、Ollama 下載向量模型,官網:??https://ollama.com/??
2.1 下載查看向量模型
bash-3.2$ ollama pull nomic-embed-text
bash-3.2$ ollama list
第三、注冊硅基流動獲取 API 密鑰
官網:https://siliconflow.cn/zh-cn/
3.1 復制滿血版 DeepSeek 模型名稱
3.2 創建 API 密鑰并記錄
第四、下載安裝 AnythingLLM,官網:??https://anythingllm.com/??
4.1 安裝時點擊 GetStarted
4.2 暫不配置先點下一步
4.3 點擊 Skip 跳過
4.4 部署完成進入首頁
第五、配置 AnythingLLM
5.1 添加 DeepSeek 模型
說明:點擊 LLM 首選項選擇提供商 Generic OpenAI 并填入剛才注冊的 API 密鑰、baserul、DeepSeek 模型名稱并保存
5.2 添加 Milvus 向量數據庫
說明:點擊向量數據庫選項選擇 Milvus 并填入剛才部署好的 Milvus 的地址、用戶名、密碼并保存
5.3 添加 Embeding 模型
說明:點擊 Embedder 首選項選擇 Ollama 并填入剛才部署好的 Ollama 的 URL 和模型名稱并保存
第六、效果演示
6.1 回到首頁新建工作區
6.2 上傳測試數據集
說明:數據集可以從huggingface上獲取 網址:??https://huggingface.co/datasets??
上傳區域傳入數據集并點擊 Move 向量化后存入 Milvus
6.3 測試問答效果
說明:對話框中輸入“怎么實現向量檢索檢索?”得到的回復是符合預期的,可以看到回復中引用了本地知識庫中的內容。
3、總結
至此,你應當已經順利構建了自己的知識庫系統。然而,除了具體的搭建流程,我認為這個方案背后蘊含的一些思考同樣值得探討。
第一、架構設計的前瞻性
我們采用的方案是“模型服務+向量數據庫+應用前端”的解耦架構。這種設計的優勢不言而喻:
面對新的大型模型,我們僅需更新模型服務部分
隨著數據量的增長,我們可以獨立升級向量數據庫
當業務需求發生變化,前端界面也能夠獨立發展
這種松散耦合的設計理念,賦予了系統持續升級的能力,在 AI 技術迅猛發展的今天,這一點尤為關鍵。
第二、技術選型的平衡藝術
在技術棧的選擇上,我們尋求了多方面的平衡:
在性能與易用性之間:我們選擇了通過 API 調用完整版模型,而非本地部署精簡版
在開發效率與擴展性之間:我們采用了即插即用的 AnythingLLM,同時保留了擴展插件的能力
在成本與效果之間:我們利用了硅基流動等云服務,避免了高額的硬件投資
這些決策背后,展現了一種實用主義的工程理念。
第三、RAG 應用的演進方向
從更宏觀的角度來看,這套方案的出現揭示了幾個行業發展的關鍵趨勢:
知識庫的建設正從企業需求向個人需求拓展
RAG 技術棧正在走向標準化和組件化,降低了入門難度
云服務的廣泛應用使得高性能AI能力變得易于獲取
展望未來,隨著更多卓越的開源組件誕生,RAG 的應用場景將變得更加多樣化。我們可以預見:
將出現更多針對特定領域的專業知識庫解決方案
數據處理和檢索算法將變得更加智能化
部署和運維工具將變得更加便捷
總結來說,"DeepSeek+Milvus+AnythingLLM"的組合不僅滿足了當前的需求,也為未來的發展留下了廣闊的空間。對于有意探索 RAG 應用的個人和團隊而言,現在正是最佳的參與時機。
本文轉載自公眾號玄姐聊AGI 作者:玄姐
