大模型應用研發基礎環境配置(Miniconda、Python、Jupyter Lab、Ollama等)

老牛同學之前使用的MacBook Pro電腦配置有點舊(2015 年生產),跑大模型感覺有點吃力,操作起來有點卡頓,因此不得已撿起了塵封了快兩年的MateBook Pro電腦(老牛同學其實不太喜歡用 Windows 電腦做研發工作)。此文注意是記錄配置新電腦的內容,一來給老牛同學留個備忘,同時也特別希望能給其他朋友一些幫助。

配置一臺方便用于大模型應用研發的新電腦,最基礎的需要包括以下配置內容:

  1. Miniconda包管理工具的安裝和配置(兼容pip
  2. Python虛擬環境配置(指定 Python 版本且無需單獨下載 Python 安裝)
  3. Jupyter Lab Python 研發 WebIDE 配置
  4. Ollama本地大模型管理軟件的配置和應用
  5. Ollama大模型 Web 界面對話客戶端配置和使用

Miniconda 安裝和配置

Minicondapip都是 Python 生態中的兩個不同的包管理工具,它們都用于安裝和管理 Python 包。但是在大模型相關的應用研發中,老牛同學推薦使用Miniconda的原因:

  1. 包范圍: Miniconda 通過 Conda 可以管理 Python 以及非 Python 包,而 pip 只管理 Python 包。
  2. 環境管理: Miniconda 內置了環境管理功能,而 pip 需要與其他工具(如 virtualenv 或 venv)搭配使用以創建隔離的環境。
  3. 包源: pip 通常從 PyPI 下載包,而 Conda 從 Anaconda Repository 或其他自定義設置的通道下載。
  4. 包格式: Conda 使用自己的包格式(.conda 或.tar.bz2),而 pip 使用 wheel 或源碼形式。
  5. 依賴解決: Conda 在安裝包時會考慮到系統級別的依賴和包之間的依賴關系,而 pip 主要解決 Python 級別的依賴。

在實際使用中,由于Minionda可以很好地處理復雜的依賴關系和環境管理,它通常是首選工具。但是,如果只需要安裝純 Python 包,使用pip可能會更加簡單直接。

第一步: 下載地址:https://docs.anaconda.com/miniconda/

根據操作系統,選擇安裝包,支持包括:Windows、MacOS 和 Linux 系統

第二步: 安裝和配置:安裝過程和普通軟件沒有兩樣,安裝完成之后,我們配置 Python 環境:

老牛同學的安裝目錄是:D:\Software\miniconda3

因后面需要執行conda命令,因此提前把以下目錄添加到系統環境變量中(變量名:Path):

  1. 安裝目錄:D:\Software\miniconda3
  2. 腳本目錄:D:\Software\miniconda3\Scripts
  3. 依賴庫目錄:D:\Software\miniconda3\Library\bin

第三步: 設置 Conda 虛擬環境目錄(可選):默認情況下,虛擬環境內容在C:\盤,老牛同學 C 盤比較較小,就把它設置到D:\

打開 Termianl 終端,查看Conda基本信息:conda info

> conda infoactive environment : Noneuser config file : C:\Users\obull\.condarcpopulated config files :conda version : 24.4.0conda-build version : not installedpython version : 3.12.3.final.0solver : libmamba (default)virtual packages : __archspec=1=x86_64_v3__conda=24.4.0=0__win=0=0base environment : D:\Software\miniconda3  (writable)conda av data dir : D:\Software\miniconda3\etc\condaconda av metadata url : Nonechannel URLs : https://repo.anaconda.com/pkgs/main/win-64https://repo.anaconda.com/pkgs/main/noarchhttps://repo.anaconda.com/pkgs/r/win-64https://repo.anaconda.com/pkgs/r/noarchhttps://repo.anaconda.com/pkgs/msys2/win-64https://repo.anaconda.com/pkgs/msys2/noarchpackage cache : D:\Software\miniconda3\pkgsC:\Users\obull\.conda\pkgsC:\Users\obull\AppData\Local\conda\conda\pkgsenvs directories : D:\Software\miniconda3\envsC:\Users\obull\.conda\envsC:\Users\obull\AppData\Local\conda\conda\envsplatform : win-64user-agent : conda/24.4.0 requests/2.31.0 CPython/3.12.3 Windows/11 Windows/10.0.22621 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8 aau/0.4.4 c/. s/. e/.administrator : Falsenetrc file : Noneoffline mode : False

可以看到幾個重要信息:

  1. Conda配置文件:C:\Users\obull\.condarc
  2. Conda包下載渠道:channel URLs列表幾個地址
  3. Conda包緩存目錄:D:\Software\miniconda3\pkgs
  4. Conda虛擬環境目錄:D:\Software\miniconda3\envs

以上配置都是默認配置,其中包環境和虛擬環境目錄比較占磁盤空間,可以設置為其他目錄,同時下載渠道可以使用國內鏡像以提升包的下載速度:

  1. 打開配置文件:C:\Users\obull\.condarc
  2. .condarc配置文件不存在,可以執行命令自動生成一個默認文件:conda config --set show_channel_urls yes
  3. 打開.condarc配置,設置虛擬環境目錄和:
envs_dirs:- D:/Software/miniconda3/pkgs
pkgs_dirs:- D:/Software/miniconda3/envs
show_channel_urls: true
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaults
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

保存配置文件之后,我們可以看到Conda信息的變化:conda info

Conda命令還有一些其他用法,比較常用的命令如下列表:

  1. 查看Conda版本:conda --version
  2. 更新Conda版本:conda update conda
  3. 安裝 Python 包(如安裝numpy包):conda install numpy 通過首選渠道下載包文件
  4. 指定渠道安裝 Python 包:conda install conda-forge::numpy 通過conda-forge渠道下載包文件
  5. 安裝 Python 包到指定的虛擬環境:conda install --name PY2.7 matplotlib 安裝matplotlib包到指定的PY2.7虛擬環境

Python 虛擬環境配置

特別注意: 有了Miniconda包管理工具,我們無需單獨下載和安裝 Python,可直接通過 Conda 安裝對應的版本即可。

老牛同學創建一個名稱為PY3.12的虛擬環境,使用 Python 版本為3.12.3conda create --name PY3.12 python=3.12.3

新建虛擬環境需要初始化基礎包(包括 Python SDK 等),基礎包下載完成之后,可以通過命令查看虛擬環境列表:conda info --envs

> conda info --envs
base                     D:\Software\miniconda3
PY3.12                   D:\Software\miniconda3\pkgs\PY3.12

其中,baseConda默認的虛擬環境,我們剛創建的PY3.12虛擬環境已經存在了!

Python 虛擬環境使用

默認虛擬環境是base,我們可以激活和取消虛擬環境。若是首次使用,則需要執行conda init命令進行初始化:

  1. 激活虛擬環境:conda activate PY3.12
  2. 取消虛擬環境:conda deactivate(無需指定環境名)
C:\Users\obull>
C:\Users\obull>conda activate PY3.12(D:\Software\miniconda3\pkgs\PY3.12) C:\Users\obull>
(D:\Software\miniconda3\pkgs\PY3.12) C:\Users\obull>conda deactivateC:\Users\obull>

Jupyter Lab 安裝和配置(可選)

在 Python 研發 IDE 選擇上,老牛同學推薦推薦使用Jupyter Lab,當然如果有PyCharm等 Python 開發工具,也是一個不錯的選擇:

  1. Jupyter Lab 主要是為了數據科學、科學計算和教育而設計的。它支持交互式計算和數據可視化,非常適合探索性數據分析、機器學習、數值模擬等。
  2. Jupyter Lab 提供了一個基于 Web 的用戶界面,支持在瀏覽器中直接編寫代碼、運行分析,并查看結果。
  3. Jupyter Lab 強調的是交互式編程和數據可視化。它允許用戶逐段運行代碼并即時查看輸出,支持 Markdown 和富媒體,非常適合制作和展示研究結果。
  4. Jupyter Lab 作為一個輕量級的 Web 應用,其啟動速度快,但在處理大型數據集時,性能可能會受到瀏覽器和硬件資源的限制。
  5. Jupyter Lab 特別適合做數據分析、數據科學教育、探索性研究和創建可分享的交互式報告。

Jupyter Lab IDE 可以通過Conda安裝,其安裝命令如下:

# 激活Python虛擬環境
conda activate PY3.12# 安裝Jupyter Lab(指定下載源)
conda install -c conda-forge jupyterlab
conda install -c conda-forge ipywidgets

Jupyter Lab IDE 成功安裝之后,可以通過以下命令打開:

# 激活Python虛擬環境
conda activate PY3.12# 切換到Jupyter目錄(我們以后代碼存放的目錄)
cd ~/JupyterLab# 啟動Jupyter WebIDE
jupyter-lab .

瀏覽器自動打開了 Web IDE,或者自己打開:http://localhost:8888/lab

Jupyter Lab界面

Ollama 安裝和使用

使用Ollama可以非常方便的管理本地大模型,目前主流大模型都支持Ollama,包括PhiQwenLlama等,因此使用Ollama可以提升我們管理和使用大模型效率:

  1. 下載并安裝Ollama:Ollama 官網(支持:Windows、Mac 和 Linux 系統)
  2. 設置模型數據文件路徑(可選):默認情況下,模型文件存放在C:盤用戶目錄。我們可以通過系統環境變量設置成其他目錄。系統環境變量名為:OLLAMA_MODELS系統環境變量的值為新的目錄(如老牛同學設置為:D:\ModelSpace\Ollama
  3. 下載并啟動大模型,老牛同學以阿里的Qwen2-7B為例:ollama run qwen:7B

模型文件下載完成之后,自動就有了對話客戶端:

D:\>conda activate PY3.12(D:\Software\miniconda3\pkgs\PY3.12) D:\>ollama list
NAME    ID              SIZE    MODIFIED
qwen:7b 2091ee8c8d8f    4.5 GB  3 hours ago(D:\Software\miniconda3\pkgs\PY3.12) D:\>ollama run qwen:7b

Ollama對話客戶端

Ollama Web 界面對話客戶端

Ollama自帶控制臺聊天對話界面體驗總歸是不太好,接下來部署 Web 可視化聊天界面:

  1. 下載并安裝 Node.js 工具:https://nodejs.org/zh-cn
  2. 下載ollama-webui工程代碼:git clone https://github.com/ollama-webui/ollama-webui-lite ollama-webui
  3. 切換ollama-webui代碼的目錄:cd ollama-webui
  4. 設置 Node.js 工具包鏡像源(下載提速):npm config set registry http://mirrors.cloud.tencent.com/npm/
  5. 安裝 Node.js 依賴的工具包:npm install
  6. 最后,啟動 Web 可視化界面:npm run dev
    Ollam WebUI對話

如果看到以上輸出,代表 Web 可視化界面已經成功了!

瀏覽器打開 Web 可視化界面:http://localhost:3000/

Ollama其他的命令工具:

# 查看當前Ollama的模型
ollama list# 增量更新當前部署的模型
ollama pull qwen:7b# 刪除一個模型文件
ollama rm qwen:7b# 復制一個模型
ollama cp qwen:7b Qwen-7B

OllamaAPI 結果返回

curl http://localhost:11434/api/generate -d '{"model": "qwen:7b","prompt":"為什么天空是藍色的?"
}'

Ollama API聊天對話

curl http://localhost:11434/api/chat -d '{"model": "qwen:7b","messages": [{ "role": "user", "content": "為什么天空是藍色的?" }]
}'

關注本公眾號,我們共同學習進步 👇🏻👇🏻👇🏻

微信公眾號:老牛同學

Phi-3 開源大模型

Phi-3 模型手機部署教程(微軟發布的可與 GPT-3.5 媲美的小模型)

Qwen2-7B 開源大模型

Qwen2 阿里最強開源大模型(Qwen2-7B)本地部署、API 調用和 WebUI 對話機器人

Llama-3-8B 開源大模型

玩轉 AI,筆記本電腦安裝屬于自己的 Llama 3 8B 大模型和對話客戶端

一文徹底整明白,基于 Ollama 工具的 LLM 大語言模型 Web 可視化對話機器人部署指南

基于 Llama 3 搭建中文版(Llama3-Chinese-Chat)大模型對話聊天機器人

GLM-4-9B 開源大模型

本地部署 GLM-4-9B 清華智譜開源大模型方法和對話效果體驗

ChatTTS 文本轉語音模型

ChatTTS 開源文本轉語音模型本地部署、API 使用和搭建 WebUI 界面

Stable Diffusion 3 文生圖模型

Stable Diffusion 3 文生圖“開源英雄”大模型本地部署和使用教程,輕松實現 AI 繪圖自由

大模型應用案例

借助 AI 大模型,三分鐘原創一部兒童故事短視頻(附完整操作步驟)

高效編寫大模型 Prompt 提示詞,解鎖 AI 無限創意潛能

Python 小游戲

AI 已來,我與 AI 一起用 Python 編寫了一個消消樂小游戲

Python 游戲編程:一步步用 Python 打造經典貪吃蛇小游戲


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

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

相關文章

04_記錄鎖

記錄鎖(Record Lock) 文章目錄 記錄鎖(Record Lock)簡介原理加鎖流程鎖類型使用場景示例與其他鎖的對比結論 簡介 MySQL 中的記錄鎖(Record Lock)是行級鎖的一種,用于鎖定數據庫表中的特定行。…

從零開始做題:老照片中的密碼

老照片中的密碼 1.題目 1.1 給出圖片如下 1.2 給出如下提示 這張老照片中的人使用的是莫爾斯電報機,莫爾斯電報機分為莫爾斯人工電報機和莫爾斯自動電報機(簡稱莫爾斯快機)。莫爾斯人工電報機是一種最簡單的電報機,由三個部分組…

SelfReg-UNet:解決UNet語義損失,增強特征一致性與減少冗余的優化模型

SelfReg-UNet:解決UNet語義損失,增強特征一致性與減少冗余的優化模型 提出背景拆解類比:整理書架語義一致性正則化內部特征蒸餾為什么 UNet 會有語義損失? 提出背景 論文:https://arxiv.org/pdf/2406.14896 代碼&…

c++內存管理_復習

new與placement new new: 先調用operator new(大小),而operator new()會調用malloc嘗試分配內存,失敗則調用_callnewh()來釋放內存,直至分配成功 可以設置分配失敗的處理函數:將寫好的處理函數作為參數傳入set_new_han…

Vue3 使用 Vue Router 時,params 傳參失效

前言: 在寫項目的時候,使用了 vue-router 的 params 進行傳參,但是在詳情頁面中一直獲取不到參數。原因:Vue Router 在2022-8-22的那次更新后,使用這種方式在新頁面上無法獲取! 正文: 在列表頁進…

deeplabcut

import pandas as pd import h5py import pickle import json import os # 讀取 CSV 文件 csv_file_path /mnt/data/CollectedData_dlc.csv csv_data pd.read_csv(csv_file_path) # 讀取 H5 文件 h5_file_path /mnt/data/CollectedData_dlc.h5 with h5py.File(h5_file_pat…

LeetCode題練習與總結:只出現一次的數字Ⅱ--137

一、題目描述 給你一個整數數組 nums ,除某個元素僅出現 一次 外,其余每個元素都恰出現 三次 。請你找出并返回那個只出現了一次的元素。 你必須設計并實現線性時間復雜度的算法且使用常數級空間來解決此問題。 示例 1: 輸入:n…

K8S日常運維手冊

Kubernetes(簡稱 K8S)是一種廣泛使用的容器編排平臺,能夠自動化部署、擴展和管理容器化應用。對于運維人員來說,掌握 Kubernetes 的日常運維技能是確保系統穩定運行的關鍵。本文將介紹一些 Kubernetes 日常運維的基本操作與技巧&a…

虛擬機裝入kali linux

VMware 首先需要先安裝VMware Workstation Pro可以根據這篇文章來下載VMware 下載kali linux Installer Images VS Virtual Machines Installer Images(安裝鏡像)Virtual Machines(虛擬機) 直接訪問硬件,定制內核…

Matlab|【防騙帖】考慮時空相關性的風電功率預測誤差建模與分析

目錄 1 主要內容 2 部分程序 3 下載鏈接 1 主要內容 這個程序《考慮時空相關性的風電功率預測誤差建模與分析》畫的圖片非常漂亮,和原文獻基本一致,但是實際上內容并未實現出來,主要就是利用現有的風電預測的數據和結果做了相關的圖&#…

【數據結構】(C語言):鏈表

鏈表: 基本單位是節點。節點至少兩部分:數據,下一個數據的地址。頭指針head,始終指向鏈表的第一個節點。若沒有節點,則headNULL。鏈表在內存中是非連續的。不能使用索引(下標)查找元素。只能從…

解決:Xshell通過SSH協議連接Ubuntu服務器報“服務器發送了一個意外的數據包,received:3,expected:20”

下圖所示: 日志也基本看不出來問題在哪,只是說斷開了連接大概是驗證失敗。有幸在某論壇評論區找到了原因,是因為我的xshell版本太低了而服務器的ssh版本太高,高版本的ssh默認屏蔽了一部分不太安全的算法導致建立連接的時候驗證失敗…

C++ 14新特性個人總結

variable templates 變量模板。這個特性允許模板被用于定義變量,就像之前模板可以用于定義函數或類型一樣。變量模板為模板編程帶來了新的靈活性,特別是在定義泛化的常量和元編程時非常有用。 變量模板的基本語法 變量模板的聲明遵循以下基本語法&am…

解決Vue+Vite打包后Leaflet的marker圖標不顯示的問題

前言 用Leaflet寫關于WebGIS的開發,用Vite或者webpack打包,打包后會找不到圖標,如下所示。 直言的說,筆者去網上搜了搜,其實收到一個比較好是答案。網址如下。 (完美解決~)關于VueLeaflet添加…

eslint 與 prettier 的一些常見的配置項(很詳細)

目錄 1、eslint 常見配置項(語法規范) 2、 prettier 常見的配置項(格式規范) 代碼規范相關內容看小編的該文章,獲取對你有更好的幫助 vsCode代碼格式化(理解eslint、vetur、prettier,實現格式…

IDEA啟動報錯:Abnormal build process termination...

一、問題描述 因為項目需要,同時打開了兩個idea,突然發現一個啟動的時候報錯,有點莫名其妙,剛還好好的,為啥就不能用了,一頓百度找方法,試了各種方法,像重新安裝jdk、重啟系統發現都…

TensorFlow開源項目

歡迎來到 Papicatch的博客 文章目錄 🍉TensorFlow介紹 🍉主要特點和功能 🍈多語言支持 🍈靈活的架構 🍈分布式訓練 🍈跨平臺部署 🍈強大的工具鏈 🍈豐富的社區和生態系統 &a…

c++基本數據類型和計算(一)習題講解

1.【單選題】以下說法正確的是? A. unsigned 類型的值 最大為0xFFFFFFFF B. float類型的值大約有15位精度 C.bool類型占用4個字節 解析: 選項A:unsigned 類型的值 最大為 4個字節,正確。選項B: 因為float類型的值是單精度的浮…

Vue3基礎使用

目錄 一、創建Vue3工程 (一)、cli (二)、vite 二、常用Composition API (一)、setup函數 (二)、ref函數 (三)、reactive函數 (四)、setup注意事項 (五)、計算屬性 (六)、watch (七)、watchEffect函數 (八)、生命周期 1、以配置項的形式使用生命周期鉤子 2、組合式…

kafka-簡單代碼實現生產者消費者

生產者代碼: package com.kafka.test;import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.common.seriali…