本文最后更新于 2025-04-03,文章内容可能已经过时。

  • 使用ollama开源平台本地部署deepseek-r1等大语言模型

  • 安装open-webui提供对话界面

  • 安装ipex-llm英特尔加速模块为推理加速

  • 使用miniconda包管理

如果不想配置,可以在 Intel GPU 上直接免安装运行 Ollama:【发布时间2025-02-20,ollama版本0.5.4】

https://github.com/intel/ipex-llm/releases/tag/v2.2.0-nightly

提前更新显卡驱动:

https://www.intel.cn/content/www/cn/zh/products/sku/236847/intel-core-ultra-7-processor-155h-24m-cache-up-to-4-80-ghz/downloads.html

 

包管理器Miniconda

Python环境管理 Miniconda:https://www.anaconda.com/download/success

安装:

勾选添加miniconda到系统环境PATH中,以及注册miniconda作为默认Python解释器

使用:

要使用conda虚拟环境,需要使用Anaconda Prompt运行命令,而不是cmd或powershell

所有与python项目相关的指令都应该在Anaconda Prompt环境中执行

(可选)Python自动卸载依赖

安装pip-autoremove,自动卸载没有被依赖的包:

因原作者很久没有维护,可能出现ModuleNotFoundError问题,因此使用其fork版本 :

pip install git+https://github.com/imba-tjd/pip-autoremove

(推荐)或者:pip install python3-pip-autoremove

用法:

pip-autoremove [需要卸载的包名]

(推荐)pip3-autoremove [需要卸载的包名]

 

Conda和pip换源

清华镜像站关于anaconda的换源指引:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

关于Pypi的换源指引:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

 

Conda常用指令

查看帮助:conda -h

创建环境:conda create -n [环境名] python=[指定新环境使用的python版本]

进入环境:conda activate [环境名]

退出环境:conda deactivate

卸载环境:conda remove -n [环境名] --all

 

一、管理conda:

(1)检查conda版本:conda --version

(2)获取版本号:conda --version或 conda -V

(3)列出所有的环境:conda env list

conda list命令用于查看conda下的包,而conda env list命令可以用来查看conda创建的所有虚拟环境。

(4)查看环境管理的全部命令帮助:conda env -h

(5)conda升级:我们可以在命令行中或者anaconda prompt中执行命令进行操作。

conda update conda升级conda

conda update anaconda升级anaconda前要先升级conda

conda update --all升级所有包

(6)conda升级后释放空间(在升级完成之后,我们可以使用命令来清理一些无用的包以释放一些空间)

conda clean -p删除没有用的包

conda clean -t删除保存下来的压缩文件(.tar)

二、管理环境

(1)创建环境

conda create -n env-name [list of package]

-n env-name是设置新建环境的名字,list of package是可选项,选择要为该环境安装的包。

如果我们没有指定安装 python 的版本,conda 会安装我们最初安装 conda 时所装的那个版本的 python

若创建特定python版本的包环境,需键入 conda create -n env-name python=3.6

(2)激活环境

Linux,OS X:source activate env-name

Windows:activate env-name

小技巧:

新的开发环境会被默认安装在你 conda 目录下的 envs 文件目录下。你可以指定一个其他的路径;

(3)切换到 base 环境

如果要从你当前工作环境的路径切换到系统根目录时,键入:

Linux,OS X:conda source deactivate

Windows:conda deactivate

(4)复制一个环境

通过克隆来复制一个环境。这儿将通过克隆snowfllakes来创建一个称为flowers的副本。

conda create -n flowers --clone snowflakes

(5)删除一个环境

如果你不想要这个名为 flowers 的环境,就按照如下方法移除该环境:conda env remove -n flowers

(6)查看环境

  • 列出所有环境 conda env list

三、管理包

(1)安装包 或 安装特定版本的包

conda install package-name

conda install package-name==version

(2)查看所有已安装包

conda list

(3)卸载包

conda remove package-name

(4)更新包

更新一个包:conda update package-name

更新所有包:conda update --all

(5)搜索包

conda search search-term,可以模糊搜索

四、把环境添加到jupyter notebook

首先通过activate进入想要添加的环境中,然后安装ipykernel,接下来就可以进行添加了。

pip install ipykernel

python -m ipykernel install --name Python36Python36可以取与环境名不一样的名字,但方便起见建议统一

(1)查看已添加到jupyter notebook的kernel

我们可以使用jupyter kernelspec list来查看已添加到jupyter notebook的kernel。

显示如下:

PS C:\Users\25387> jupyter kernelspec list

Available kernels:

  python3    D:\Anaconda\anaconda\share\jupyter\kernels\python3

(2)删除指定的kernel

若想删除某个指定的kernel,可以使用命令jupyter kernelspec remove kernel_name来完成。

由于python是不向后兼容的,分开环境可以避免语法版本不一引起的错误,同时这也可以避免工具包安装与调用的混乱。

Conda环境的导出与打包

https://blog.csdn.net/dream_of_grass/article/details/138957930

打包conda环境的两种方法:conda env export和Conda-Pack

搭建项目环境可能是整个开发过程中最让人头疼的部分了。如何把我们辛辛苦苦搭建的环境打包起来,万一环境崩了还能迅速恢复,或者让别人能轻松地复制同样的设置呢?

使用 conda env export 导出环境

Conda 允许用户通过简单的命令导出整个环境到一个 YAML 文件,这样可以在另一台机器上重新创建相同的环境。

YAML 是一种数据序列化格式,以易读性和简洁性为特点,常用于配置文件和数据交换。它支持多种数据结构,如列表和字典。

步骤如下:

导出环境:

conda env export > environment.yml 这个命令会捕获所有依赖包及其精确的版本号。

在新机器上创建环境:conda env create -f environment.yml这会根据 YAML 文件中列出的依赖关系创建环境。

优点:

简单直接:只需几个命令即可复制完整环境。

精确控制:精确到每个包的版本,保证环境一致。

缺点:

依赖网络:重新创建环境需要下载所有依赖,这可能在网络受限的情况下成为问题。

使用 Conda-Pack 打包环境

Conda-Pack 是一个用于打包已存在的 Conda 环境的工具,使其可以在没有网络连接的情况下迁移到任何系统。

步骤如下:

打包环境:conda pack -n myenv -o myenv.tar.gz

 

解压并激活环境:

mkdir -p ~/environments/myenv

tar -xzf myenv.tar.gz -C ~/environments/myenv

source ~/environments/myenv/bin/activate

优点:

不需要网络:一旦打包,就不需要网络来安装包。

适合离线使用:非常适合在离线或受限制的环境中部署。

封装性:打包的环境是自包含的,包括了所有二进制文件和库,这意味着不需要解决运行时依赖问题。

一致性保障:打包后的环境与原环境完全一致,不会受到目标系统上已安装包的影响。

缺点:

不处理可编辑模式安装包:如果环境中包含以可编辑模式安装的包,Conda-Pack 不能处理。例如,如果你遇到像 CondaPackError: Cannot pack an environment with editable packages installed 这样的错误,你需要先卸载可编辑包,打包,然后重新安装这些包。

操作系统限制:打包的环境在操作系统间的兼容性不如纯粹的环境文件灵活,因为包含的二进制文件可能与不同的操作系统架构不兼容。

处理可编辑模式包的情况:

当尝试使用 conda pack 打包含有可编辑安装包的环境时,你可能会遇到错误。例如,尝试卸载 pip uninstall -e /path/to/package 时,正确的命令应该是 pip uninstall package_name。正确的步骤是:

查找并卸载可编辑模式的包。

使用 conda pack 打包环境。

必要时重新安装可编辑模式的包。

总结

conda env export 会导出一个包含所有安装包信息的文件。这个文件详细记录了环境中的包及其版本,便于后续根据这些记录重新创建完全相同的环境。

而 conda-pack 则是将整个环境封装成一个压缩包。解压这个压缩包后,可以快速复制原始环境,无需再次安装每个包。

 

Ipex-llm加速ollama运行推理(GPU加速)

Ipex-llm的官方文档:https://github.com/intel/ipex-llm/blob/main/README.zh-CN.md

在 Intel GPU 上使用 IPEX-LLM 运行 Ollama:

https://github.com/intel/ipex-llm/blob/main/docs/mddocs/Quickstart/ollama_quickstart.zh-CN.md

 

安装ipex-llm的C++版本

conda create -n llm-cpp python=3.11

conda activate llm-cpp

pip install --pre --upgrade ipex-llm[cpp]

 

安装ollama

https://ollama.com/download

官网上下载Windows版本安装即可

初始化ollama

在环境中输入init-ollama.bat

运行ollama服务

set OLLAMA_NUM_GPU=999

set no_proxy=localhost,127.0.0.1

set ZES_ENABLE_SYSMAN=1

set SYCL_CACHE_PERSISTENT=1

rem under most circumstances, the following environment variable may improve performance, but sometimes this may also cause performance degradation

set SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1

 

ollama serve

Ollama的环境变量与常用设置

https://zhuanlan.zhihu.com/p/23824503091

注意:环境变量每次启动都要重新set,除非在Windows的系统属性中手动添加。

使用bat一键运行ollama

@echo off

call "C:\Users\19621\miniconda3\Scripts\activate.bat" llm-cpp

ollama serve

 

安装open-webui可视化chat

官网:https://github.com/open-webui/open-webui

步骤:

conda activate llm-cpp

pip install open-webui

open-webui serve

 

尝试使用ipex-llm加速NPU运行llm

Ipex-llm的官方指引:https://github.com/intel/ipex-llm/blob/main/docs/mddocs/Quickstart/npu_quickstart.md

[2025-02-24]尝试失败,在安装好环境运行python glm.py --repo-id-or-model-path "THUDM/glm-edge-1.5b-chat" --save-directory <converted_model_path>时,出现多个问题,首先是transformers包版本落后的问题,更新后解决,最后的报错是:

filenotfounderror: Could not find module 'C:\Users\19621\miniconda3\envs\llm-npu\Lib\site-packages\bigdl-core-npu\npu_llm.dll' (or one of its dependencies). Try using the full path with constructor syntax

 说明ipex-llm官方都还没有完全认真投入开发NPU对llm的适配。NPU运行llm的尝试到此为止。

 

 

尝试部署OpenVINO在NPU上运行llm

官方指引:https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/README_cn.md

https://docs.openvino.ai/2025/get-started/install-openvino.html

 

 

环境部署

1、下载并安装Git工具:https://git-scm.com/downloads/win

(1) 安装指引:https://blog.csdn.net/weixin_42242910/article/details/136297201

2、更新NPU驱动:

https://www.intel.cn/content/www/cn/zh/support/articles/000099083/processors/intel-core-ultra-processors.html

3、在conda虚拟环境中部署OpenVINO gen AI

(1) 官方指引:(建议创建conda虚拟环境部署)

https://docs.openvino.ai/2025/_static/download/GenAI_Quick_Start_Guide.pdf

4、下载hugging face(建议使用国内的model scope)模型以供量化

(1) OpenVINO GenAI支持的模型列表:

https://github.com/openvinotoolkit/openvino.genai/blob/master/SUPPORTED_MODELS.md

(2) modelscope download --model [下载model scope上的模型到当前路径]

5、量化和压缩

(1) optimum-cli export openvino -m [原始模型名称] --task text-generation-with-past --weight-format int4 --sym --ratio 1.0 --group-size -1 [量化后的模型路径及名称]

(2) 运行脚本成功调用NPU

import openvino_genai as ov_genai

pipe = ov_genai.LLMPipeline(model_path, "NPU")

print(pipe.generate("The Sun is yellow because", max_new_tokens=100))

试用心得

部署很难度一般,但错误百出,文档稀烂,东拼西凑才能完成部署,同样的内容在文档各处都有,同样的操作在文档不同地方也是不同的,OpenVINO对GenAI完全没有任何优化,输出完成就直接清除内存

只适合开发者,不适合个人本地部署LLM

 

自建搜索引擎SearxNG

内容:

尝试在本地而非docker部署SearxNG

Github官方:https://github.com/searxng/searxng

官方文档:https://docs.searxng.org/

安装步骤:

Docker Compose安装方法弃用,因为无法解决Dify添加Searxng搜索时的403问题

1、下载源码:https://github.com/searxng/searxng-docker,解压,移动到合适的目录

2、修改.yaml文件端口映射: - "127.0.0.1:8080:8080"改成了- "8080:8080"。这样可以使用允许任意ip访问。

3、修改searxng文件夹下settings.yml中的secret_key,否则无法启动容器

4、进入cmd,执行docker-compose up -d

5、启动容器后使用8080端口访问并配置搜索引擎

Docker run安装方法:

1、在合适的目录下创建一个文件夹以保存SearXNG配置

2、运行命令:docker run --rm -d -p 8080:8080 -v C:\Users\19621\软件库\searxng:/etc/searxng searxng/searxng

这里的C:\Users\19621\软件库\searxng为用于保存配置的文件夹

3、运行后文件夹内生成settings.yml文件,打开修改 formats 属性,添加 - json 项,解决 Dify 中的 403 问题

  # formats: [html, csv, json, rss]
  formats:
    - html
    - json

4、重启SearXNG容器

 

 

Dify的部署(比Open-webui更加商业化的UI)

官网地址:https://dify.ai/zh

 

安装步骤:

1、 安装Docker Desktop

(1) 官网下载并安装:https://www.docker.com/

(2) 更新WSL

2、 使用Docker Compose部署Dify:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose

(1) 下载Dify源码,解压保存到某一文件夹:https://github.com/langgenius/dify/releases

(2) .env文件中修改代码如下:(用以避免跟SearXNG搜索引擎冲突)

① EXPOSE_NGINX_PORT=8888

② EXPOSE_NGINX_SSL_PORT=9443

(3) 按照官方文档部署Dify:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose

3、 集成ollama:https://docs.dify.ai/zh-hans/development/models-integration/ollama

(1) 需要设置环境变量OLLAMA_HOST为0.0.0.0:11434

(2) Dify里面的模型名称不能写错,地址需要填写本机在局域网的地址,不能写回环地址

4、 进入工具栏授权SearXNG搜索引擎

(1) https://docs.dify.ai/guides/tools/tool-configuration/searxng