老牛同学之前使用的MacBook Pro电脑配置有点旧(2015 年生产),跑大模型感觉有点吃力,操作起来有点卡顿,因此不得已捡起了尘封了快两年的MateBook Pro电脑(老牛同学其实不太喜欢用 Windows 电脑做研发工作)。此文注意是记录配置新电脑的内容,一来给老牛同学留个备忘,同时也特别希望能给其他朋友一些帮助。
配置一台方便用于大模型应用研发的新电脑,最基础的需要包括以下配置内容:
-
Miniconda包管理工具的安装和配置(兼容pip)
-
Python虚拟环境配置(指定 Python 版本且无需单独下载 Python 安装)
-
Jupyter Lab Python 研发 WebIDE 配置
-
Ollama本地大模型管理软件的配置和应用
-
Ollama大模型 Web 界面对话客户端配置和使用
Miniconda 安装和配置
Miniconda和pip都是 Python 生态中的两个不同的包管理工具,它们都用于安装和管理 Python 包。但是在大模型相关的应用研发中,老牛同学推荐使用Miniconda的原因:
-
包范围: Miniconda 通过 Conda 可以管理 Python 以及非 Python 包,而 pip 只管理 Python 包。
-
环境管理: Miniconda 内置了环境管理功能,而 pip 需要与其他工具(如 virtualenv 或 venv)搭配使用以创建隔离的环境。
-
包源: pip 通常从 PyPI 下载包,而 Conda 从 Anaconda Repository 或其他自定义设置的通道下载。
-
包格式: Conda 使用自己的包格式(.conda 或.tar.bz2),而 pip 使用 wheel 或源码形式。
-
依赖解决: Conda 在安装包时会考虑到系统级别的依赖和包之间的依赖关系,而 pip 主要解决 Python 级别的依赖。
在实际使用中,由于Minionda可以很好地处理复杂的依赖关系和环境管理,它通常是首选工具。但是,如果只需要安装纯 Python 包,使用pip可能会更加简单直接。
第一步: 下载地址:https://docs.anaconda.com/miniconda/
根据操作系统,选择安装包,支持包括:Windows、MacOS 和 Linux 系统
第二步: 安装和配置:安装过程和普通软件没有两样,安装完成之后,我们配置 Python 环境:
老牛同学的安装目录是:D:\Software\miniconda3
因后面需要执行conda
命令,因此提前把以下目录添加到系统环境变量中(变量名:Path
):
-
安装目录:
D:\Software\miniconda3
-
脚本目录:
D:\Software\miniconda3\Scripts
-
依赖库目录:
D:\Software\miniconda3\Library\bin
第三步: 设置 Conda 虚拟环境目录(可选):默认情况下,虚拟环境内容在C:\
盘,老牛同学 C 盘比较较小,就把它设置到D:\
盘
打开 Termianl 终端,查看Conda基本信息:conda info
> conda info active environment : None user config file : C:\Users\obull\.condarc populated config files : conda version : 24.4.0 conda-build version : not installed python version : 3.12.3.final.0 solver : libmamba (default) virtual packages : __archspec=1=x86_64_v3 __conda=24.4.0=0 __win=0=0 base environment : D:\Software\miniconda3 (writable) conda av data dir : D:\Software\miniconda3\etc\conda conda av metadata url : None channel URLs : https://repo.anaconda.com/pkgs/main/win-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/win-64 https://repo.anaconda.com/pkgs/r/noarch https://repo.anaconda.com/pkgs/msys2/win-64 https://repo.anaconda.com/pkgs/msys2/noarch package cache : D:\Software\miniconda3\pkgs C:\Users\obull\.conda\pkgs C:\Users\obull\AppData\Local\conda\conda\pkgs envs directories : D:\Software\miniconda3\envs C:\Users\obull\.conda\envs C:\Users\obull\AppData\Local\conda\conda\envs platform : win-64 user-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 : False netrc file : None offline mode : False
可以看到几个重要信息:
-
Conda配置文件:
C:\Users\obull\.condarc
-
Conda包下载渠道:channel URLs列表几个地址
-
Conda包缓存目录:
D:\Software\miniconda3\pkgs
-
Conda虚拟环境目录:
D:\Software\miniconda3\envs
以上配置都是默认配置,其中包环境和虚拟环境目录比较占磁盘空间,可以设置为其他目录,同时下载渠道可以使用国内镜像以提升包的下载速度:
-
打开配置文件:
C:\Users\obull\.condarc
-
若
.condarc
配置文件不存在,可以执行命令自动生成一个默认文件:conda config --set show_channel_urls yes
-
打开
.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/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
保存配置文件之后,我们可以看到Conda信息的变化:conda info
Conda命令还有一些其他用法,比较常用的命令如下列表:
-
查看Conda版本:
conda --version
-
更新Conda版本:
conda update conda
-
安装 Python 包(如安装
numpy
包):conda install numpy
通过首选渠道下载包文件 -
指定渠道安装 Python 包:
conda install conda-forge::numpy
通过conda-forge渠道下载包文件 -
安装 Python 包到指定的虚拟环境:
conda install --name PY2.7 matplotlib
安装matplotlib
包到指定的PY2.7
虚拟环境
Python 虚拟环境配置
特别注意: 有了Miniconda包管理工具,我们无需单独下载和安装 Python,可直接通过 Conda 安装对应的版本即可。
老牛同学创建一个名称为PY3.12的虚拟环境,使用 Python 版本为3.12.3:conda 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
其中,base
是Conda默认的虚拟环境,我们刚创建的PY3.12
虚拟环境已经存在了!
Python 虚拟环境使用
默认虚拟环境是base
,我们可以激活和取消虚拟环境。若是首次使用,则需要执行conda init
命令进行初始化:
-
激活虚拟环境:
conda activate PY3.12
-
取消虚拟环境:
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 deactivate C:\Users\obull>
Jupyter Lab 安装和配置(可选)
在 Python 研发 IDE 选择上,老牛同学推荐推荐使用Jupyter Lab,当然如果有PyCharm等 Python 开发工具,也是一个不错的选择:
-
Jupyter Lab 主要是为了数据科学、科学计算和教育而设计的。它支持交互式计算和数据可视化,非常适合探索性数据分析、机器学习、数值模拟等。
-
Jupyter Lab 提供了一个基于 Web 的用户界面,支持在浏览器中直接编写代码、运行分析,并查看结果。
-
Jupyter Lab 强调的是交互式编程和数据可视化。它允许用户逐段运行代码并即时查看输出,支持 Markdown 和富媒体,非常适合制作和展示研究结果。
-
Jupyter Lab 作为一个轻量级的 Web 应用,其启动速度快,但在处理大型数据集时,性能可能会受到浏览器和硬件资源的限制。
-
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,包括Phi、Qwen、Llama等,因此使用Ollama可以提升我们管理和使用大模型效率:
-
下载并安装Ollama:Ollama 官网(支持:Windows、Mac 和 Linux 系统)
-
设置模型数据文件路径(可选):默认情况下,模型文件存放在C:盘用户目录。我们可以通过系统环境变量设置成其他目录。系统环境变量名为:
OLLAMA_MODELS
,系统环境变量的值为新的目录(如老牛同学设置为:D:\ModelSpace\Ollama
) -
下载并启动大模型,老牛同学以阿里的
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 可视化聊天界面:
-
下载并安装 Node.js 工具:https://nodejs.org/zh-cn
-
下载
ollama-webui
工程代码:git clone https://github.com/ollama-webui/ollama-webui-lite ollama-webui
-
切换
ollama-webui
代码的目录:cd ollama-webui
-
设置 Node.js 工具包镜像源(下载提速):
npm config set registry http://mirrors.cloud.tencent.com/npm/
-
安装 Node.js 依赖的工具包:
npm install
-
最后,启动 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": "为什么天空是蓝色的?" } ] }'
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。