Ollama+OpenWebUI本地部署大模型

Ollama+OpenWebUI本地部署大模型

  • 前言
  • Ollama使用
    • Ollama安裝
    • Ollama修改配置
    • Ollama 拉取遠程大模型
    • Ollama 構建本地大模型
    • Ollama 運行本地模型:
      • 命令行交互
      • Api調用
      • Web 端調用
  • 總結

前言

Ollama是一個開源項目,用于在本地計算機上運行大型語言模型(LLMs)的工具,它的底層是使用Docker,所以支持類似Docker的構建方式,大模型就是它的鏡像。它支持多種模型格式,包括但不限于GGUF,允許用戶在沒有高性能GPU或不希望使用云服務的情況下,利用個人計算機的資源來執行復雜的語言任務。

Ollama使用

Ollama安裝

根據自己的平臺選擇下載對應的工具,下載地址
在這里插入圖片描述
右擊使用管理員權限安裝,成功后會彈出下面框。
輸入ollama list 可以查看本地有哪些模型

ollama list
在這里插入圖片描述

想要查看支持哪些模型,可以點擊官網中央倉庫,支持的模型很多。
在這里插入圖片描述

Ollama支持的參數:

Usage:ollama [flags]ollama [command]Available Commands:serve       Start ollamacreate      Create a model from a Modelfileshow        Show information for a modelrun         Run a modelpull        Pull a model from a registrypush        Push a model to a registrylist        List modelscp          Copy a modelrm          Remove a modelhelp        Help about any commandFlags:-h, --help      help for ollama-v, --version   Show version information

Ollama修改配置

在拉取Ollama 大模型之前,需要修改Ollma兩個配置,直接在電腦環境變量中添加以下兩個系統變量,一個是方便局域網法訪問,一個是避免C盤被占用過大:

  • OLLAMA_HOST:修改為0.0.0.0:11434,以便局域網訪問
  • OLLAMA_MODELS:默認為C盤,需要修改為其他磁盤。

在這里插入圖片描述

退出重登Ollama,重新打開PowelShell窗口,輸入本機的ip,返回running即為修改Ip成功 :
在這里插入圖片描述

Ollama 拉取遠程大模型

ollama pull以及ollama run都可以拉取大模型,run拉取后會直接運行大模型

ollama run codellama:7b

在這里插入圖片描述
注意:可能會遇到以下類似的問題,大部分是網絡環境問題。多試幾次或者切換代理網絡即可。

Error: pull model manifest: Get "https://registry.ollama.ai/v2/library/codellama/manifests/7b": dial tcp: lookup registry.ollama.ai: no such host

Ollama 構建本地大模型

Ollama除了可以使用官方自帶的模型,也可以使用我們已經量化好的gguf模型。在模型所在位置,新建個Modelfile,內容如下:

FROM ./llama-2-7b-chat.Q4_K_M.gguf# set prompt template
TEMPLATE """[INST] <<SYS>>{{ .System }}<</SYS>>{{ .Prompt }} [/INST]
"""# set parameters
PARAMETER stop "[INST]"
PARAMETER stop "[/INST]"
PARAMETER stop "<<SYS>>"
PARAMETER stop "<</SYS>>"# set system message
SYSTEM """
You are a helpful assistant.
"""

使用PowerShell,切換到模型目錄下,執行以下命令,構建模型

ollama create my-model2 -f .\Modelfile

創建成功后:

ollama list

在這里插入圖片描述

Ollama 下載的模型默認情況下都是經過量化的,如果要使用未經量化的模型,可以在 huggingface(Hugging Face 起初是NLP機器學習服務商,開源了非常出名的自然語言處理應用構建的 transformers 庫。隨著大模型流行,Hugging Face轉向了機器學習的社區服務,類似于代碼服務的github) 下載指定的模型,并使用上述方式進行運行。

Ollama 運行本地模型:

命令行交互

ollama run my-model2

在這里插入圖片描述

Api調用

Ollama run之后就可以直接使用api接口調用,調用方式POST:
url:

http://127.0.0.1:11434/api/generate

請求體,修改成你執行的model:

{"model": "codellama:7b","prompt": "Why is the sky blue?","format": "json","stream": false
}

返回數據:

{"model": "codellama:7b","created_at": "2024-05-18T08:05:25.3502395Z","response": "{\n\"The sky appears blue because of a phenomenon called Rayleigh scattering, which occurs when sunlight interacts with the Earth's atmosphere. When light travels through a medium, such as air or water, it encounters particles that can scatter it in different directions. In the case of the Earth's atmosphere, the tiny molecules of gases, such as nitrogen and oxygen, scatter shorter wavelengths of light (like blue and violet) more than longer wavelengths (like red and orange). This is known as the Rayleigh scattering effect.\"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","done": false
}

Web 端調用

Ollama 如果想要在Web端使用,需要借助OpenWebUI 這個工具。OpenWebUI 是一個為大型語言模型(LLM)設計的開源Web界面,它提供了一個用戶友好的交互方式來管理和運行這些模型。OpenWebUI 可以與不同的LLM運行程序集成,包括但不限于Ollama和OpenAI兼容的API

推薦使用docker 啟動OpenWebUI,如果你的Ollama與OpenWebUI部署在同一服務器上,則使用以下命令

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name ollama-web --restart always ghcr.io/open-webui/open-webui:main

如果不是在同一機器,則加個參數OLLAMA_BASE_URL

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://10.11.24.27 -v open-webui:/app/backend/data --name ollama-web --restart always ghcr.io/open-webui/open-webui:main

啟動后輸入
http://localhost:3000/或者http://10.11.24.27:3000/會跳轉到如下頁面
在這里插入圖片描述
點擊注冊,注冊信息可以隨意寫,注冊后跳轉到該頁面
在這里插入圖片描述

選擇模型后可以開始對話

在這里插入圖片描述
OpenWebUI 也支持下載模型,點擊setting 頁面,輸入模型qwen:0.5b

在這里插入圖片描述
成功后會有提示
在這里插入圖片描述
切換到qwen:0.5b問答。
在這里插入圖片描述
整體來說OpenWebUI用起來會比較方便。

總結

Ollama極大簡化了大模型私有部署步驟,使得大模型運行像Docker一樣簡單方便。Ollama 還提供Api的方式,集成Langchain等應用也就方便了很多,結合OpenWebUI可以體驗類似ChatGpt的交互,方便使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72303.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72303.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72303.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【機器學習】基于t-SNE的MNIST數據集可視化探索

一、前言 在機器學習和數據科學領域&#xff0c;高維數據的可視化是一個極具挑戰但又至關重要的問題。高維數據難以直觀地理解和分析&#xff0c;而有效的可視化方法能夠幫助我們發現數據中的潛在結構、模式和關系。本文以經典的MNIST手寫數字數據集為例&#xff0c;探討如何利…

【redis】發布訂閱

Redis的發布訂閱&#xff08;Pub/Sub&#xff09;是一種基于消息多播的通信機制&#xff0c;它允許消息的**發布者&#xff08;Publisher&#xff09;向特定頻道發送消息&#xff0c;而訂閱者&#xff08;Subscriber&#xff09;**通過訂閱頻道或模式來接收消息。 其核心特點如…

C語言零基礎入門:嵌入式系統開發之旅

C語言零基礎入門&#xff1a;嵌入式系統開發之旅 一、引言 嵌入式系統開發是當今科技領域中一個極具魅力和挑戰性的方向。從智能家居設備到汽車電子系統&#xff0c;從智能穿戴設備到工業自動化控制&#xff0c;嵌入式系統無處不在。而C語言&#xff0c;作為嵌入式開發中最常…

K8S學習之基礎二十三:k8s的持久化存儲之nfs

K8S持久化存儲之nfs ? 在 Kubernetes (k8s) 中使用 NFS&#xff08;Network File System&#xff09;作為存儲解決方案是一種常見的方式&#xff0c;特別是在需要共享存儲的場景中。以下是關于如何在 Kubernetes 中使用 NFS 存儲的詳細說明&#xff1a; 1. 準備 NFS 服務器 …

【Rust】枚舉和模式匹配——Rust語言基礎14

文章目錄 1. 枚舉類型1.2. Option 枚舉 2. match 控制流結構2.1. match 對綁定值的匹配2.2. Option<T> 的匹配2.3. 通配模式以及 _ 占位符 3. if let 控制流4. 小測試 1. 枚舉類型 枚舉&#xff08;enumerations&#xff09;&#xff0c;也被稱作 enums。枚舉允許你通過…

【商城實戰(25)】解鎖UniApp移動端適配秘籍,打造完美商城體驗

【商城實戰】專欄重磅來襲&#xff01;這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建&#xff0c;運用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用戶、商品、訂單等核心模塊開發&#xff0c;再到性能優化、安全加固、多端適配&#xf…

《C++ Primer》學習筆記(二)

第二部分&#xff1a;C標準庫 1.為了支持不同種類的IO處理操作&#xff0c;標準庫定義了以下類型的IO&#xff0c;分別定義在三個獨立的文件中&#xff1a;iostream文件中定義了用于讀寫流的基本類型&#xff1b;fstream文件中定義了讀寫命名文件的類型&#xff1b;sstream文件…

MATLAB風光柴儲微網粒子群算法

本程序實現了風光柴儲微網中的粒子群優化&#xff08;PSO&#xff09;算法&#xff0c;用于優化微網的能源調度問題。具體來說&#xff0c;程序考慮了光伏發電、風力發電、柴油機發電&#xff08;柴儲&#xff09;&#xff0c;并使用粒子群算法來優化這些能源的調度&#xff0c…

解決Windows版Redis無法遠程連接的問題

&#x1f31f; 解決Windows版Redis無法遠程連接的問題 在Windows系統下使用Redis時&#xff0c;很多用戶會遇到無法遠程連接的問題。尤其是在配置了Redis并嘗試通過工具如RedisDesktopManager連接時&#xff0c;可能會報錯“Cannot connect to ‘redisconnection’”。今天&am…

解決 HTTP 請求中的編碼問題:從亂碼到正確傳輸

文章目錄 解決 HTTP 請求中的編碼問題&#xff1a;從亂碼到正確傳輸1. **問題背景**2. **亂碼問題的原因**2.1 **客戶端編碼問題**2.2 **請求頭缺失**2.3 **服務器編碼問題** 3. **解決方案**3.1 **明確指定請求體編碼**3.2 **確保請求頭正確**3.3 **動態獲取響應編碼** 4. **調…

VS Code 配置優化指南

目錄 一、安裝與基礎設置1. 安裝 VS Code2. 中文語言包 二、插件推薦三、常見配置項與優化1. 用戶 / 工作區設置2. 全局配置 / Settings Sync3. 常用設置示例 四、性能優化五、調試與終端配置1. 調試配置2. 內置終端配置 六、快捷鍵配置七、美觀與主題八、總結 VS Code&#xf…

基于NXP+FPGA永磁同步電機牽引控制單元(單板結構/機箱結構)

永磁同步電機牽引控制單元&#xff08;單板結構/機箱結構&#xff09; 永磁同步電機牽引控制單元&#xff08;TCU-PMSM&#xff09;用于牽引逆變器-永磁同步電機構成的牽引電傳動系統&#xff0c;采用軸控方式。執行高性能永磁同步電機復矢量控制策略&#xff0c;具有響應迅速…

/etc/sysconfig/jenkins 沒有這個文件

在 CentOS 或其他基于 Red Hat 的 Linux 系統中&#xff0c;/etc/sysconfig/jenkins 文件通常用來存儲 Jenkins 的配置參數&#xff0c;例如 JENKINS_HOME 的路徑。但是&#xff0c;如果你發現沒有這個文件&#xff0c;你可以通過以下幾種方式來解決或確認&#xff1a; 檢查 J…

conda 安裝軟件報錯 Found conflicts! Looking for incompatible packages.

問題描述&#xff1a; 利用 conda 安裝某包 conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc時發現報錯&#xff1a; Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with…

MySQL 衍生表(Derived Tables)

在SQL的查詢語句select …. from …中&#xff0c;跟在from子句后面的通常是一張擁有定義的實體表&#xff0c;而有的時候我們會用子查詢來扮演實體表的角色&#xff0c;這個在from子句中的子查詢會返回一個結果集&#xff0c;這個結果集可以像普通的實體表一樣查詢、連接&…

STM32配套程序接線圖

1 工程模板 2 LED閃爍 3LED流水燈 4蜂鳴器 5按鍵控制LED 6光敏傳感器控制蜂鳴器 7OLED顯示屏 8對射式紅外傳感器計次 9旋轉編碼器計次 10 定時器定時中斷 11定時器外部時鐘 12PWM驅動LED呼吸燈 13 PWM驅動舵機 14 PWM驅動直流電機 15輸入捕獲模式測頻率 16PWMI模式測頻率占空…

鴻蒙初級考試備忘

Module類型 Module按照使用場景可以分為兩種類型&#xff1a; Ability類型的Module&#xff1a; 用于實現應用的功能和特性。每一個Ability類型的Module編譯后&#xff0c;會生成一個以.hap為后綴的文件&#xff0c;我們稱其為HAP&#xff08;Harmony Ability Package&#x…

語音識別踩坑記錄

本來想在原來的語音識別的基礎上增加本地擴展本地詞典&#xff0c; 采用的語音識別是Vosk識別器&#xff0c;模型是 vosk-model-small-cn-0.22 // 初始化Vosk識別器 if (recognizer null) {using (Model model new Model(modelPath)){string grammar "{""…

SpringCloud 學習筆記1(Spring概述、工程搭建、注冊中心、負載均衡、 SpringCloud LoadBalancer)

文章目錄 SpringCloudSpringCloud 概述集群和分布式集群和分布式的區別和聯系 微服務什么是微服務&#xff1f;分布式架構和微服務架構的區別微服務的優缺點&#xff1f;拆分微服務原則 什么是 SpringCloud &#xff1f;核心功能與組件 工程搭建父項目的 pom 文件 注冊中心Rest…

計算機網絡-網絡規劃與設計

基本流程 需求分析—》通信規范分析—》邏輯網絡設計—》物理網絡設計—》實施階段 需求分析&#xff1a; 確定需求&#xff0c;包括&#xff1a;業務需求、用戶需求、應用需求、計算機平臺需求、網絡通信需求等。 產物&#xff1a;需求規范 通信規范分析&#xff1a; 現有…