成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大模型部署框架Ollama和vLLM怎么選?一文講透兩大框架的優缺點和適用場景 原創

發布于 2025-4-23 06:51
瀏覽
0收藏

Ollama

在人工智能技術迅猛發展的今天,大型語言模型(LLM)的應用越來越廣泛。Ollama作為一款創新的開源框架,為開發者和研究者提供了在本地環境高效部署和運行LLM的全新解決方案。

跨平臺安裝指南

Ollama支持主流操作系統,安裝過程極為簡便:

? Linux用戶可通過終端一鍵安裝:

wget -O - https://setup.ollama.ai | bash

? macOS用戶推薦使用Homebrew:

brew tap ollama/ollama && brew install

? Windows用戶可通過WSL輕松部署

模型快速啟動示例

啟動預訓練模型僅需簡單指令:

ollama start qwen2.5-14b --detail

添加--detail參數可實時監控token生成速率,便于性能調優。

個性化模型配置

我們可以通過Modelfile可實現深度定制,比如新建下面一個文件:

BASE qwen2.5-14b

# 模型參數設置
SET temperature 0.7
SET context_length 16384
SET max_tokens 8192

# 角色定義
DEFINE ROLE "您是一位專業的技術顧問"

構建自定義模型流程:

ollama build custom-model -c config.mod
ollama activate custom-model --detail

交互方式

  1. 原生API接口調用示例:

import requests

response = requests.post('http://<my_ollama_server_ip>:11434/api/chat', 
    json={
        'model': 'qwen2.5:14b',
        'messages': [
            {
                'role': 'system',
                'content': 'You are a helpful AI assistant.'
            },
            {
                'role': 'user',
                'content': 'What is AI Agent?'
            }
        ],
        'stream': False
    }
)
print(response.json()['message']['content'])

 2.兼容OpenAI接口的Python實現:

from openai import OpenAI

client = OpenAI(
    base_url="http://<my_ollama_server_ip>:11434/v1",
    api_key="xx"# 可設成任意字符串
)

response = client.chat.completions.create(
    model="qwen2.5:14b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is AI Agent?"}
        ]
)
print(response.choices[0].message.content)

核心功能亮點

  • 實時Token生成特性:我們的系統支持生成即時token,與OpenAI API完全兼容,非常適合用于開發響應式應用。
  • 并行模型運行:我們的系統可以同時操作多個模型,但需要注意一點。當VRAM資源有限時,Ollama會關閉一個模型以啟動另一個,所以合理規劃資源至關重要。
  • 高度定制化設定:通過API調用,我們可以進行各種自定義設置,盡管這提供了極大的靈活性,但對初學者和用于生產環境的服務器可能不是那么友好。
  • CPU兼容和智能資源管理:如果VRAM資源不足,我們的系統可以智能地將模型轉移到CPU上執行,這使得在GPU內存受限的系統上也能夠運行大型模型服務。
  • 編程語言無關:你可以自由選擇Python、JavaScript、Go等編程語言,或者任何具有HTTP功能的編程語言進行開發。

vLLM

在深度學習推理領域,vLLM框架憑借其卓越的性能表現脫穎而出。作為基于PyTorch構建的專用解決方案,該框架深度融合CUDA加速技術,通過創新性的連續批處理機制、智能內存分配策略以及分布式張量計算能力,為大規模語言模型部署提供了工業級的高效運行環境。

相較于Ollama這類簡易工具,vLLM更適合采用容器化部署方案。Docker的標準化環境封裝特性能夠有效解決跨平臺兼容性問題。部署前需確保滿足以下技術要求:

  1. Docker運行環境已正確配置
  2. NVIDIA容器運行時支持已安裝
  3. 16GB及以上物理內存容量
  4. 配備充足顯存的NVIDIA顯卡

下載模型

以下演示如何在容器環境中部署Qwen2.5-14B模型:

首先建立模型存儲目錄并獲取量化模型:

mkdir -p model_repository/Qwen2.5-14B/
curl -L https://huggingface.co/lmstudio-community/Qwen2.5-14B-Instruct-GGUF/resolve/main/Qwen2.5-14B-Instruct-Q4_K_M.gguf \
-o model_repository/Qwen2.5-14B/model.gguf

除了使用curl 命令下載模型,也可以通過腳本下載:

export HF_ENDPOINT=https://hf-mirror.com

pip install modelscope

使用modelscope下載并緩存到/usr/local,模型地址可以改成你想要下載的

import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os

from modelscope.hub.api import HubApi
api = HubApi()
# 有的地方需要,key在 modelscope.cn/models 右上角個人那邊
# api.login('xxx你的賬號對應的key')

model_dir = snapshot_download('Qwen/Qwen2.5-72B-Instruct-AWQ', cache_dir='/usr/local',revision='master')
print(model_dir)

啟動模型

我們還需要設置 generation_ config.son 文件, 為了測試方便,這里設置temperature = 0。

{
  "bos_token_id": 151643,
  "pad_token_id": 151643,
  "do_sample": true,
  "eos_token_id": [
    151645,
    151643
  ],
  "repetition_penalty": 1.05,
  "temperature": 0.0,
  "top_p": 0.8,
  "top_k": 20,
  "transformers_version": "4.37.0"
}

因此,需要創建一個文件夾,其中包含這個 JSON 文件,并確保它的名稱為 generation_ config. json。然后,使用多個參數運行 docker 容器:

# 需要GPU支持
docker run -it \
    --runtime nvidia \
    --gpus all \
    --network="host" \
    --ipc=host \
    -v ./models:/vllm-workspace/models \
    -v ./config:/vllm-workspace/config \
    vllm/vllm-openai:latest \
    --model models/Qwen2.5-14B-Instruct/Qwen2.5-14B-Instruct-Q4_K_M.gguf \
    --tokenizer Qwen/Qwen2.5-14B-Instruct \
    --host "0.0.0.0" \
    --port 5000 \
    --gpu-memory-utilization 1.0 \
    --served-model-name "VLLMQwen2.5-14B" \
    --max-num-batched-tokens 8192 \
    --max-num-seqs 256 \
    --max-model-len 8192 \
    --generation-config config

這些參數的含義如下:

--runtime nvidia --gpus all: 啟用對容器的 NVIDIA GPU 支持。
--network="host": 使用主機網絡模式以獲得更好的性能。
--ipc=host:  允許主機和容器之間共享內存。
- v ./model:/vllm-workspace/model: 將本地模型目錄裝入容器,目錄包含了示例的Qwen2.5–14B模型
--model: 指定 GGUF 模型文件的路徑。
--tokenizer: 定義要使用的 HuggingFace tokenizer。
--gpu-memory-utilization 1: 將 GPU 內存使用率設置為 100% 。
--served-model-name: 通過 API 提供服務時模型的自定義名稱,可以指定所需的名稱。
--max-num-batched-tokens: 批處理中的最大token數量。
--max-num-seqs: 同時處理的序列的最大數目。
--max-model-len: 模型的最大上下文長度。

交互方式

  1. 原生API接口調用示例:

import requests

response = requests.post('http://192.168.123.23:5000/v1/chat/completions', 
    json={
        'model': 'VLLMQwen2.5-14B',
        'messages': [
            {
                'role': 'system',
                'content': 'You are a helpful AI assistant.'
            },
            {
                'role': 'user',
                'content': 'What is artificial intelligence?'
            }
        ],
        'stream': False
    }
)
print(response.json()['choices'][0]['message']['content'])

 2.兼容OpenAI接口的Python實現:

from openai import OpenAI

client = OpenAI(
    base_url="http://<my_vLLM_server_ip>:5000/v1",
    api_key="xx"
)

response = client.chat.completions.create(
    model="VLLMQwen2.5-14B",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is AI Agent?"}
        ]
)
print(response.choices[0].message.content)

核心功能亮點

vLLM被專門設計用于高性能推理和生產環境,其主要特點包括:

  • 優化的GPU效能:通過CUDA和PyTorch的配合使用,我們充分發揮了GPU的潛力,從而實現更迅速的推理過程。
  • 批處理功能:我們實現了連續的批處理和高效的內存管理,以此來提升多個并行請求的吞吐量。
  • 安全性:內建API密鑰支持和正確的請求驗證機制,而不是直接忽視身份驗證。
  • 靈活的部署方式:全面支持Docker,可以對GPU內存使用和模型參數進行精細控制。

Ollama vs  vLLM

  1. 性能表現:基準測試顯示vLLM具有明顯的速度優勢,單請求處理時token生成速率較Ollama提升超過15%(實測數據:vLLM 29 token/s vs Ollama 25 token/s)
  2. 并發處理能力:vLLM采用先進的資源調度算法,可高效處理高并發請求;而Ollama在并行請求處理方面存在架構限制,即使少量并發請求(如4個)也會導致系統資源爭用問題。
  3. 開發便捷性:Ollama憑借極簡的交互設計脫穎而出,開發者通過單行命令即可實現模型交互;相較之下,vLLM需要掌握容器化部署技術,并需理解各類性能調優參數。
  4. 生產就緒度:vLLM的工業級特性使其成為企業級部署的首選,包括多家知名AI服務商在內的技術團隊都采用其作為核心推理引擎。該框架支持細粒度的資源分配和彈性擴展,完美適配云原生環境。
  5. 安全機制:vLLM內置完善的認證體系,支持基于token的訪問控制;而Ollama默認采用開放式訪問模式,需要額外配置網絡層防護措施來保證服務安全。
  6. 技術支持體系:Ollama的文檔注重快速上手體驗,但技術實現細節相對匱乏,社區論壇中的關鍵技術問題經常得不到有效解答。vLLM則建立了立體化的技術支持體系,包括:
  • 詳盡的API規范文檔
  • 性能調優白皮書
  • 活躍的開發者社區
  • 專門的技術門戶網站

對比維度

Ollama

vLLM

核心定位

輕量級本地大模型運行工具(適合個人開發/實驗)

生產級大模型推理框架(適合企業/高并發場景)

部署難度

簡單:一鍵安裝,支持 Mac/Linux/Windows(WSL)

較復雜:依賴 Python 環境,需手動配置 GPU 驅動和 CUDA

硬件要求

低:CPU 可用(推薦 16GB+ 內存),可選 GPU 加速

高:必須 NVIDIA GPU(顯存越大越好),依賴 CUDA 計算

模型支持

內置主流開源模型(Llama2、Mistral、DeepSeek 等),自動下載預訓練模型

支持 HuggingFace 格式模型,需手動下載和轉換模型文件

運行性能

中等:適合單次問答、小規模交互

極高:優化了顯存管理和批處理,支持千級別并發請求

使用場景

個人學習、本地測試、快速原型開發

企業級 API 服務、高并發推理、云端部署

交互方式

命令行直接對話,支持類似 ChatGPT 的交互界面

需通過 API 調用(OpenAI 兼容接口),無內置對話界面

資源占用

靈活:可調整 CPU/內存占用,適合低配電腦

固定:顯存占用量大,需預留資源應對峰值負載

擴展性

有限:專注于單機本地化運行

強:支持分布式部署、動態批處理、多 GPU 并行

新手友好度

極高:開箱即用,無需代碼基礎

中等:需了解 Python 和 API 開發基礎

社區支持

活躍的開發者社區,文檔清晰

學術團隊維護,更新頻繁但偏向技術文檔

典型用途

寫代碼、翻譯、文案生成等個人任務

構建智能客服、批量文檔處理、AI 賦能業務系統

總結

如果你想在本地或遠程服務器上快速試驗大模型,Ollama是理想之選,其易用性讓初次使用大型語言模型的開發者能平滑入門。而對于注重性能、可擴展性和資源優化的生產環境,vLLM表現出色,高效處理并行請求和優化GPU利用,且文檔完備,使其成為生產環境大規模部署的強力候選者,尤其在充分挖掘硬件性能方面。


本文轉載自公眾號AI 博物院 作者:longyunfeigu

原文鏈接:??https://mp.weixin.qq.com/s/l7fZUFuNwiEqJhuUZGZrQw??


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2025-4-23 06:51:34修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 久久国产精品网站 | 日本一道本视频 | 四虎影音 | 中文字幕不卡视频在线观看 | 97人人澡人人爽91综合色 | 久久久久久高潮国产精品视 | 五月激情综合 | 国产成人99av超碰超爽 | 日韩视频在线免费观看 | 97国产爽爽爽久久久 | 成人免费大片黄在线播放 | 精品日韩在线 | 亚洲一区二区网站 | 亚洲成人毛片 | 二区中文字幕 | 精品国产免费人成在线观看 | 成年人黄色小视频 | 欧美综合国产精品久久丁香 | 国内精品成人 | 国产精品精品3d动漫 | 亚洲精品久久久久久首妖 | 亚洲国产精品一区二区第一页 | 97超级碰碰 | 精品美女在线观看视频在线观看 | 欧美黄a | 午夜欧美一区二区三区在线播放 | 久久出精品 | 日韩一区二区三区四区五区 | 99视频免费在线观看 | 精品国产精品国产偷麻豆 | 久久久精品 | 久久久久久国产精品三区 | 色婷婷精品国产一区二区三区 | 亚洲欧美视频一区 | 青青草综合网 | 亚洲国产中文字幕 | 天天操天天操 | 国产做a爱片久久毛片 | 国产精品久久免费观看 | 亚洲欧美中文日韩在线v日本 | 国产高清精品在线 |