大模型应用研发基础环境配置(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.rhkb.cn/news/360765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ant Design Vue Cascader 级联选择 错位问题

当Cascader 多个的时候 对应的下列会错位 如果滚动 他不会跟着元素 而是会跟着屏幕滚动&#xff0c;如下效果 解决方法 在Cascader 标题添加 getPopupContainer 属性监听对应的位置&#xff0c;返回对应的元素 <a-cascader class"smart-width-100 " v-model:…

Sam Altman:从少儿奇才到OpenAI掌舵人

自2022年底发布了ChatGPT以来&#xff0c;OpenAI及其首席执行官Sam Altman迅速成为科技界的焦点人物。Altman的崛起并非偶然&#xff0c;而是长期以来不断追求权力和创新的结果。本文将回顾Altman的成长历程&#xff0c;探索他如何一步步走向OpenAI的顶峰。 童年与教育背景 S…

亚马逊云科技官方活动:一个月拿下助理架构师SAA+云从业者考试认证(送半价折扣券)

为了帮助大家考取AWS SAA和AWS云从业者认证&#xff0c;小李哥争取到了大量考试半价50%折扣券&#xff0c;使用折扣券考试最多可省75刀(545元人民币)。 领取折扣券需要加入云师兄必过班群&#xff0c;在群中免费领取。目前必过班群招募到了超过200名小伙伴&#xff0c;名额有限…

YOLOv8关键点pose训练自己的数据集

这里写自定义目录标题 YOLOv8关键点pose训练自己的数据集一、项目代码下载二、制作自己的关键点pose数据集2.1 标注(非常重要)2.1.1 标注软件2.1.2 标注注意事项a.多类别检测框b.单类别检测框2.2 格式转换(非常重要)2.3 数据集划分三、YOLOv8-pose训练关键点数据集3.1 训练…

任务3.8.4 利用RDD实现分组排行榜

文章目录 1. 任务说明2. 解决思路3. 准备成绩文件4. 采用交互式实现5. 采用Spark项目实战概述&#xff1a;使用Spark RDD实现分组排行榜任务背景任务目标技术选型实现步骤1. 准备数据2. 数据上传至HDFS3. 启动Spark Shell4. 读取数据生成RDD5. 数据处理6. 计算TopN7. 输出结果8…

Instagram 算法更新?想要吸引更多新用户请打开这些设置!

为什么你发的IG就没人看&#xff1f;没流量&#xff1f;注意了&#xff01;IG算法已更新&#xff0c;了解最新算法、学会这些设置&#xff0c;你的IG自然能吸引到越来越多用户关注&#xff01; Instagram 算法更新 1️⃣ 根据Instagram官方的表述&#xff0c;他们对算法进行了调…

分享一个好用的图幅号计算器

如果在你的工作中会分幅处理地图数据&#xff0c;也许这个好用的图幅号计算器能对你有所帮助。 你只需要在该工具中输入经纬度坐标&#xff0c;就可以为你计算出各个比例尺下的图幅号&#xff0c;你可以在文末查看该工具的领取方法。 一个好用的图幅号计算器 该图幅计算器工…

Redis的持久化方式和注意点

redis持久篇 两种持久化技术&#xff1a; AOF日志和RDB快照 Redis默认会开启RBD快照 AOF:持久化只会记录写操作命令。 是一种日志&#xff0c;写入到文件&#xff0c;有相应的格式文本 就是 Redis 里的AOF(Append Only File)持久化功能&#xff0c;注意只会记录写操作命令…

【C++STL】Vector扩容机制

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

网络安全事件研判

研判&#xff08;入侵检测&#xff09; 研判我理解为人工层面对入侵检测事件进行再分析&#xff0c;即借助已有的设备告警根据经验判断是否为真实攻击 研判工作要充分利用已有安全设备&#xff08;需要提前了解客户的网络拓扑以及部署设备情况&#xff09;&#xff0c;分析其近…

代码随想录算法训练营第三十四天|56. 合并区间、738.单调递增的数字、968.监控二叉树

56. 合并区间 题目链接&#xff1a;56. 合并区间 文档讲解&#xff1a;代码随想录 状态&#xff1a;无语&#xff0c;这题从右边界排序做不了&#xff01; 思路&#xff1a; 排序&#xff1a;按照区间的起始位置进行排序&#xff0c;这样后面处理时可以顺序合并重叠区间。合并…

记因hive配置文件参数运用不当导致 sqoop MySQL导入数据到hive 失败的案例

sqoop MySQL导入数据到hive报错 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 64 报错解释&#xff1a; 这个错误表明Sqoop在尝试导入数据到Hive时遇到了问题&#xff0c;导致Hive进程异常退出。状态码…

【安全审核】音视频审核开通以及计费相关

融云控制台音视频审核入口&#xff1a;音视频审核 1 音视频审核文档&#xff1a;融云开发者文档 1 提示&#xff1a; 开发环境&#xff1a; 免费体验 7 天&#xff08;含 21 万分钟音频流和 420 万张视频审核用量&#xff09;&#xff0c;免费额度用尽后&#xff0c;将关停服务…

电巢科技CIOE中国光博会:激光雷达技术应用研讨会圆满落幕!

2024年6月20日&#xff0c;由CIOE中国光博会与电巢科技联合主办的“激光雷达技术应用”线上研讨会成功举行。本次线上研讨会是CIOE中国光博会与电巢科技首次联合主办的论坛&#xff0c;旨在借助双方自身资源优势&#xff0c;为行业发展提供可靠的交流平台。接下来&#xff0c;C…

Kali Linux渗透测试指南(详细教程,建议收藏)

渗透测试是对信息系统遭受实际攻击时的一种受控模拟&#xff0c;是安全中十分重要的一部分。 渗透测试人员往往会使用一些成熟的工具&#xff0c;只有全面掌握这些工具&#xff0c;我们才能更好地进行渗透。 今天就给大家分享一份Kali Linux高级渗透测试指南&#xff0c;一共…

Android开发系列(九)Jetpack Compose之ConstraintLayout

ConstraintLayout是一个用于构建复杂布局的组件。它通过将子视图限制在给定的约束条件下来定位和排列视图。 使用ConstraintLayout&#xff0c;您可以通过定义视图之间的约束关系来指定它们的位置。这些约束可以是水平和垂直的对齐、边距、宽度和高度等。这允许您创建灵活而响…

基于51单片机的RFID门禁系统-LCD12864显示

一.硬件方案 本RFID系统设计可分为硬件部分和软件部分。硬件部分以MFRC522射频识别模块为核心&#xff0c;结合主控模块STC89C52设计系统的外围硬件电路&#xff0c;实现对射频卡的控制与MCU之间的互通。软件部分采用C语言进行系统的下位机程序的开发&#xff0c;完成与IC卡之…

数字内容“遍地开花”,AI技术如何创新“造梦”?

文 | 智能相对论 作者 | 陈泊丞 这是春晚舞台西安分会场《山河诗长安》的一幕&#xff1a;“李白”现世&#xff0c;带领观众齐颂《将进酒》&#xff0c;将中国人骨子里的豪情与浪漫演绎得淋漓尽致。 这又是浙江义乌商品市场里的另一幕&#xff1a;只会说几个英文单词的女老板…

C++初学者指南-2.输入和输出---文件输入和输出

C初学者指南-2.输入和输出—文件输入和输出 文章目录 C初学者指南-2.输入和输出---文件输入和输出1.写文本文件2.读文本文件3.打开关闭文件4.文件打开的模式 1.写文本文件 使用&#xff1a; std::ofstream&#xff08;输出文件流&#xff09; #include <fstream> // 文…

MySQL中的客户端选项(三)

默认情况下&#xff0c;LOAD DATA的LOCAL功能是否可用取决于MySQL客户端库在编译时是否启用了该功能。 当只给出--local-infile&#xff08;不带值&#xff09;时&#xff0c;它启用LOCAL数据加载。当给出--local-infile0时&#xff0c;它禁用LOCAL数据加载。当给出--local-in…