1.环境配置利器:Conda

一切开始之前

在一切开始之前,特别是针对深度学习和大模型项目,开发环境的搭建至关重要。搭建这样的环境往往繁琐且复杂,涉及到CUDA环境、PyTorch版本等多个因素,稍有不慎就可能导致包冲突或部署失败。因此,我们需要一个强大的环境搭建工具——Conda!

Conda

介绍

在介绍conda之前,小编先引用Anaconda官网中的一句话。

Anaconda® 是一个包管理器、一个环境管理器、一个 Python/R 数据科学发行版以及超过 7,500 个开源包的集合。Anaconda 是免费且易于安装的,它提供免费的社区支持。

翻译成人话来讲,那就是:

它允许你安装、更新和卸载各种库和依赖,更是一个环境管理器,能让你轻松创建、保存、加载和切换不同的开发环境。这意味着,你可以为每个项目设置独立的环境,每个环境中安装特定版本的库,从而有效避免版本冲突和依赖问题。并且,Conda可以自动处理环境中的依赖问题!

最重要的是:它免费!!!

为什么需要它?因为它极大简化了CUDA等复杂依赖的安装过程,只需一个命令即可完成。同时,Conda环境可以打包并移植到相同或类似硬件配置的环境中,使得开发到生产的部署过程更加顺畅。

Anaconda与Miniconda

很多人在装Conda环境的时候,会发现有两个版本的Conda环境,导致让人有些不知所措,不知道安装哪个环境。

它们两个分别是:AnacondaMiniconda

它们两个的主要区别,就在于Anaconda内置了Python和大量常用的数据科学、机器学习库,比如NumPy、Pandas、SciPy等。安装Anaconda后,用户几乎可以立即开始进行科学计算和数据分析工作,无需再单独安装这些库。

而对于Miniconda来说,它更加轻量级。它只包含了Python和Conda,但并没有预装其他的库。Miniconda用户需要手动安装他们需要的包,这使得Miniconda的环境更为简洁,可以根据实际需求来安装必要的包,避免不必要的存储占用。

对于我们来说,Anaconda没有必要安装,它太重了,占用的资源太多,所以我们这里,选择更加轻量级的Miniconda,因为它已经包含了我们所需要的全部东西,那就是Conda环境和Python

(ps:不管是Anaconda还是Miniconda,里面所有的操作全部相同!Anaconda仅仅是预装了常用的学习库。)

(ps:如果你已经有了Python环境,依然可以安装Conda环境!)

安装

官网:Miniconda — Anaconda documentation

点击上面的官网链接,可以直接跳转到Miniconda的官网,接下来,你就会看见这样的画面。

请添加图片描述

在这个地方,我们可以选择下载Windows,macOS和Linux版本的。

请添加图片描述

安装步骤也非常简单,跟着安装步骤走就可以。

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

接下来就是添加环境变量了。确保你的Conda环境在任何地方都可以被使用。

your_path\miniconda
your_path\miniconda\Library\bin
your_path\miniconda\Scripts

请添加图片描述

接下来打开cmd,我们就看一看到Conda环境是否安装成功了!

conda --version

请添加图片描述

OK!安装成功!

如何使用Conda

当安装完成之后,我们就可以发现,在菜单中,出现了关于Conda环境相关的窗口。

请添加图片描述

点开它,你就会发现你进入了一个和cmd一样的小黑板,但是和cmd不同的是,它的前面出现了一个base。

请添加图片描述

这个时候就代表你进去了conda环境,前面的base,就是你当前使用的虚拟环境!

所有的conda在启动,或者进入时,都会首先进入到base环境,所以这个环境千万不要删除

查看虚拟环境列表

此指令将会列出当前Conda中存在的所有虚拟环境。

conda env list

请添加图片描述

因为我们刚刚安装Conda环境,所以现在只有一个base虚拟环境,那么让我们来创建一个新的虚拟环境吧!

创建虚拟环境

此指令将会创建一个虚拟环境,并且指定虚拟环境中使用的Python版本。

conda create -n demo python=3.11

上述指令,创建了一个名称为demo,并且Python版本为3.11的虚拟环境。

请添加图片描述

现在,我们已经创建了一个新的虚拟环境了!

在Pycharm中配置虚拟环境

既然我们可以在命令中使用Conda,那么我们肯定想在IDE中使用Conda来进行开发!

请添加图片描述

这里,就可以看到我们创建的虚拟环境了!

点击demo,就可以为我们的项目配置一个Conda虚拟环境了!

请添加图片描述

两套虚拟环境

正如标题所言,我们需要两套虚拟环境,分别对应:Langchain环境和LLM环境。

首先为自己一个问题,为什么是两套?

在我们的LLM环境端,这个环境只做LLM服务的基础建设,其实大部分的情况下,只要基础大模型环境搭建完毕,它在往后所需要做的改变是非常小的,无非就是更换一下模型,或者是加载一下LoRA微调之后的大模型。

更多的时候!它几乎不做任何改变!

它只加载模型和推理,任何业务不在它这里实现!

它只提供基础服务!

而反之,在我们的Langchain环境端,它需要做的改变就会非常频繁,因为业务的变动和Demo不相同,业务几乎每时每刻都在变动。

新的代码需要测试,老的代码或许有着Bug…

所以,Langchain环境端,包的安装和替换是比LLM环境端更加频繁的!

这就解释了,我们为什么需要两个环境,一个环境主要负责部署LLM服务,另外一套环境,则主要部署Langchain服务。

这里又要引出了另外一个问题,小编你说了,一个环境负责部署LLM服务,一个环境负责部署Langchain环境,那是不是需要两个不同的服务器?

答案是肯定!

首先,对于LLM服务器,我们期望它有更强的算力,更好的安全性,更优秀的稳定性

这样一来,我们的LLM和Embedding模型都需要部署在LLM环境中,让它提供基础服务,而不做其它操作。

而部署在其它服务器中的Langchain服务,它的作用就显而易见了,它只专注于业务,而不关注大模型的具体实现,它们中间通过HTTP交流,并且我们期望,LLM服务器永远只会对Langchain服务器开放访问,而拒绝一切其它的访问

就算是Langchain服务器挂掉,也可以迅速重启,而不会直接击穿LLM服务,并且可以在Langchain端做更多的限流,熔断等等操作。

回答开头的问题,为什么要做两套环境:

一套用于LLM服务,另一套用于Langchain服务。这样做有助于业务分离,提高系统的清晰度和可维护性。同时,可以根据实际需求将这两套环境部署到不同的服务器上,以优化资源配置并提高系统的整体性能和稳定性。

Conda基础操作

查看虚拟环境列表

conda env list

创建虚拟环境

conda create -n 虚拟环境名称 python=3.11

切换虚拟环境

conda activate 虚拟环境名称

安装包

conda install 需要安装的包名
pip install 需要安装的包名

删除虚拟环境

conda remove -n 虚拟环境名称 --all

导出当前虚拟环境

conda env export > 文件名称.yaml

使用yaml创建环境

conda env create -f 文件名称.yaml

总结

  1. Conda是一个强大的包管理器和环境管理器,它允许用户为不同的项目创建独立的虚拟环境,从而避免库之间的冲突和依赖问题。
  2. 简化部署,一套环境,轻松打包,平移到相同的平台。
  3. Conda的基本操作,覆盖常用的场景。
  4. 两套环境,业务分离,有助于保持系统的清晰和可维护性,并且可以根据实际需求优化资源配置,提高系统的整体性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值