在windows下使用本地AI模型提供翻译、对话、文生图服务

在windows下使用本地AI模型提供翻译、对话、文生图服务

我的机器配置如下:

处理器:AMD Ryzen 7 8845H w/ Radeon 780M Graphics 3.80 GHz

内存: 32G

GPU: 4060 8G

实测跑8-10G模型只能开一个会话,所以我一般选择跑4G左右的模型。

ollama

简介

官网地址:Ollama

Ollluma全面兼容MacOS、Linux和Windows系统,它提供简洁的一键式本地模型部署流程,并将API功能统一转换至与OpenAI相匹配的标准格式,旨在为您带来无缝且高效的使用体验。

下载

Download Ollama on Windows

安装

详细安装步骤省略,双击exe程序,即可装好。

安装完之后,最小化图标可以看到ollama,image-20240608160137493

在浏览器输入地址localhost:11434,即可看到下面输出:

Ollama is running

至此,安装流程已全部顺利完成。

配置

环境变量
OLLAMA_DEBUG               Show additional debug information (e.g. OLLAMA_DEBUG=1)
OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)
OLLAMA_KEEP_ALIVE          The duration that models stay loaded in memory (default "5m")
OLLAMA_MAX_LOADED_MODELS   Maximum number of loaded models (default 1)
OLLAMA_MAX_QUEUE           Maximum number of queued requests
OLLAMA_MODELS              The path to the models directory
OLLAMA_NUM_PARALLEL        Maximum number of parallel requests (default 1)
OLLAMA_NOPRUNE             Do not prune model blobs on startup
OLLAMA_ORIGINS             A comma separated list of allowed origins
OLLAMA_TMPDIR              Location for temporary files
OLLAMA_FLASH_ATTENTION     Enabled flash attention
OLLAMA_LLM_LIBRARY         Set LLM library to bypass autodetection
OLLAMA_MAX_VRAM            Maximum VRAM

OLLAMA_DEBUG 				显示额外的调试信息(例如:OLLAMA_DEBUG=1)
OLLAMA_HOST 				ollama服务器的IP地址(默认 127.0.0.1:11434)
OLLAMA_KEEP_ALIVE 			模型在内存中加载的持续时间(默认 "5m")
OLLAMA_MAX_LOADED_MODELS 	加载的最大模型数量(默认为1)
OLLAMA_MAX_QUEUE 			队列中的最大请求数
OLLAMA_MODELS 				模型目录的路径
OLLAMA_NUM_PARALLEL 		并行请求的最大数量(默认为1)
OLLAMA_NOPRUNE 				不在启动时清除模型块
OLLAMA_ORIGINS 				允许源头的逗号分隔列表
OLLAMA_TMPDIR 				临时文件的位置
OLLAMA_FLASH_ATTENTION 		启用闪速注意力
OLLAMA_LLM_LIBRARY 			设置LLM库以绕过自动检测
OLLAMA_MAX_VRAM 			最大VRAM
模型安装目录

默认是会安装到C盘,但是模型一般都很大,所以我选择安装到其他盘,只需要设置OLLAMA_MODELS变量为你想要安装的目录即可。

服务监听地址

默认是监听localhost:1143,如果需要局域网其他设备访问可以设置OLLAMA_HOST为0.0.0.0,如果需要更改默认端口,可以设置为0.0.0.0:12345。

跨域配置

如果有一些特殊需求,例如想让浏览器插件可以访问本地的ollama,正常操作时会报跨域错误,所以需要设置OLLAMA_ORIGINS为*

我的配置

image-20240608161255386

ollama提供了很多配置项,按需配置即可。

注意事项

设置完环境变量后需要重启ollama服务,才会生效。

可以在最小化右键ollama图标,点击选择退出,然后在开始菜单中找到ollama,双击运行。

开机自启

把ollama设置为开机自启,这样每次开机时就不需要手动运行ollama了,做到无感使用。

使用

打开cmd,输入ollama -h即可看到下面帮助信息。

ollama -h
Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.



大型语言模型运行工具


使用方法:
ollama [标志]
ollama [命令]


可选命令列表:
serve 		启动 ollama
create 		根据 Modelfile 创建模型
show 		展示模型信息
run 		运行模型
pull 		从注册表下载模型
push 		将模型推送到注册表
list 		列出所有模型
ps 			列出正在运行的模型
cp 			复制模型
rm 			删除模型
help 		获取任何命令的帮助信息


对于每个命令获取更多信息,请使用 "ollama [command] --help"

可能每个版本支持的环境变量不一样,所以可以输入ollama serve -h查看帮助信息。

ollama serve -h
Start ollama

Usage:
  ollama serve [flags]

Aliases:
  serve, start

Flags:
  -h, --help   help for serve

Environment Variables:
      OLLAMA_DEBUG               Show additional debug information (e.g. OLLAMA_DEBUG=1)
      OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)
      OLLAMA_KEEP_ALIVE          The duration that models stay loaded in memory (default "5m")
      OLLAMA_MAX_LOADED_MODELS   Maximum number of loaded models (default 1)
      OLLAMA_MAX_QUEUE           Maximum number of queued requests
      OLLAMA_MODELS              The path to the models directory
      OLLAMA_NUM_PARALLEL        Maximum number of parallel requests (default 1)
      OLLAMA_NOPRUNE             Do not prune model blobs on startup
      OLLAMA_ORIGINS             A comma separated list of allowed origins
      OLLAMA_TMPDIR              Location for temporary files
      OLLAMA_FLASH_ATTENTION     Enabled flash attention
      OLLAMA_LLM_LIBRARY         Set LLM library to bypass autodetection
      OLLAMA_MAX_VRAM            Maximum VRAM
      
      
启动 ollama


使用方法:
ollama serve [标志]


别名:
serve, start


标志:
-h, --help 获取关于 serve 命令的帮助信息


环境变量:
OLLAMA_DEBUG 				显示额外的调试信息(例如,设置 OLLAMA_DEBUG=1)
OLLAMA_HOST 				ollama服务器使用的IP地址(默认为127.0.0.1:11434)
OLLAMA_KEEP_ALIVE 			模型在内存中加载后的保留时长(默认为"5分钟")
OLLAMA_MAX_LOADED_MODELS 	最多可以加载的模型数量(默认为1个)
OLLAMA_MAX_QUEUE 			接收请求的最大队列数
OLLAMA_MODELS 				模型目录的位置
OLLAMA_NUM_PARALLEL 		并发处理请求的最大数量(默认为1)
OLLAMA_NOPRUNE 				在启动时不清理模型快照
OLLAMA_ORIGINS 				允许的源地址列表,以逗号分隔
OLLAMA_TMPDIR 				临时文件的位置
OLLAMA_FLASH_ATTENTION 		启用闪速注意力
OLLAMA_LLM_LIBRARY 			设置 LLM 库以绕过自动检测(需提供具体库名)
OLLAMA_MAX_VRAM 			最大VRAM使用量
运行模型

这里以qwen2模型为例,演示如何使用ollama运行模型。执行命令ollama run qwen2:7b,如果本地有模型则会直接启动一个会话,如果本地没有模型,则会自动去服务器下载模型,如果模型有更新,也会自动更新。

注:ollama有个优点就是可以裸网络全速下载,不需要科学。不像LM-Studio,不用魔法下载不了模型。

1717834761013

对话测试:

image-20240608162505207

对话时的命令
/?
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load <model>   Load a session or model
  /save <model>   Save your current session
  /clear          Clear session context
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.


可选命令如下:



/set:用于设置会话变量。

/show:展示模型信息。

/load <model>:加载一个会话或模型,其中 <model> 需要替换为具体的模型名称或ID。

/save <model>:保存当前的会话至指定模型。同样, <model> 应该被替换成你想要命名的新模型名称。

/clear:清除会话上下文,使得所有变量和状态都归于初始状态。

/bye 或 /exit:用于退出程序或系统环境。

/? 或 /help:提供对于某一命令的帮助信息。

/? shortcuts: 帮助你了解可用的键盘快捷键。


请使用引号 """ 来开始和结束多行消息,以便于命令解析。

最常用的就是/bye退出会话了。

查看本地已安装模型
ollama list
NAME            ID              SIZE    MODIFIED
qwen2:7b        e0d4e1163c58    4.4 GB  6 hours ago
aya:latest      7ef8c4942023    4.8 GB  7 days ago
openchat:latest 537a4e03b649    4.1 GB  12 days ago
llama3:latest   365c0bd3c000    4.7 GB  12 days ago
删除模型
ollama rm llama3
deleted 'llama3'

查看ollama支持的模型

library (ollama.com)

image-20240608163353767

这里以qwen2为例,讲解一些注意事项。

image-20240608163452931

下面readme有一些模型的介绍。

在这里插入图片描述

模型一般会有多个tag,就类似于github上面有多个分支一样。

同一个模型首先会按参数数量分,如72b、7b、1.5b、0.5b,参数越多的模型越大,需要的算力也就越大。

image-20240608163800965

所以给ollama run qwen2启动的时候可以指定模型tag,例如ollama run qwen2:7b。

选择tag后,右上角会出现运行的命令,直接copy去运行就行了。

Docker Desktop

简介

官网地址:Docker Desktop

Docker Desktop 是一个由 Docker Inc. 开发的桌面应用软件,用于在 Windows、macOS 和 Linux 操作系统上运行本地容器。它提供了一种简单且易于使用的界面来启动和管理 Docker 容器,并提供了对一些常用工具(如 Kubernetes)的支持。

注:这个就需要魔法才能稳定访问。

现在有非常多比较优秀的项目支持openai,所以理论上支持openai的项目就支持ollama。

开源项目一般都会提供docker镜像来简化部署,所以我们就使用docker来跑相关项目。

下载

docker-desktop

安装

安装之前需要开启windows对WSL的支持,如果版本过低,需要手动升级到WSL2。

具体可以参照这篇博客:Windows10上开启WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows - TaylorShi - 博客园 (cnblogs.com)

WSL2弄好后,就可以安装docker desktop程序了。

安装完后点击运行启动引擎,它会创建两个WSL虚拟机。

配置

docker desktop使用WSL2运行容器,它自己本身就是两个wsl虚拟机。

wsl --list
适用于 Linux 的 Windows 子系统分发:
docker-desktop(默认)
docker-desktop-data

这个虚拟机默认也是在C盘,因为docker 镜像一般也比较大,所以需要放到其他盘去。

需要先退出docker desktop软件。

导出这两个虚拟机:

wsl --export docker-desktop D:\AI\docker-desktop.tar
wsl --export docker-desktop-data D:\AI\docker-desktop-data.tar

删除两个虚拟机:

wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

导入虚拟机到其他盘:

wsl --import docker-desktop D:\AI\dockerdesktop D:\AI\docker-desktop.tar --version 2
wsl --import docker-desktop-data D:\AI\dockedesktopdata D:\AI\docker-desktop-data.tar --version 2

到此就完成了迁移了。

开机自启

设置开启自启,这样可以无感使用本地AI。

Open WebUI

简介

官网:Open WebUI

帮助文档:🏡 Home | Open WebUI

Open WebUI 是一个可扩展的、功能丰富且用户友好的自托管网络界面,旨在完全离线运行。它支持多种LLM跑批程序,包括Ollama和与OpenAI兼容的应用程序接口(API)。

提供类似于chatgpt网页端对话功能。

部署

打开docker desktop命令运行下面命令:

docker run -d -p 80:8080 --add-host=host.docker.internal:host-gateway -v D:\AI\webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

成功之后访问:

localhost

即可看到登录界面

image-20240608171049749

刚部署,需要点击注册(Sign up),注册一个账号,第一个注册的账号自动获得管理员权限。

配置

image-20240608171406283

点击右下角的Settings进入设置。

设置为中文

image-20240608171536262

配置模型为ollama

URL:http://host.docker.internal:11434

image-20240608171722359

配置好后,就能自动获取到本地已安装的模型了。

image-20240608171913321

对话测试

1717838477736

大功告成,尽情享受。

Open WebUI还支持文生图,后续搭建文生图模型时再介绍如何配置。

continue插件

简介

官网地址:Continue

文档地址:Continue

Continue 允许您在集成开发环境(IDE)中创建自己的AI代码助手。使用开源的VS Code和JetBrains扩展保持您的开发者工作流程畅通无阻。

下面以vscode为例。

安装

Continue - Codestral, GPT-4o, and more - Visual Studio Marketplace

配置

image-20240608172952859

我的配置如下:

{
  "models": [
    {
      "title": "qwen2:7b",
      "provider": "ollama",
      "model": "qwen2:7b",
      "apiBase": "http://localhost:11434"
    },
    {
      "title": "openchat",
      "provider": "ollama",
      "model": "openchat",
      "apiBase": "http://localhost:11434"
    }
  ],
  "customCommands": [
    {
      "name": "test",
      "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
      "description": "Write unit tests for highlighted code"
    }
  ],
  "tabAutocompleteModel": {
    "title": "qwen2:7b",
    "provider": "ollama",
    "model": "qwen2:7b",
    "apiBase": "http://localhost:11434"
  },
  "allowAnonymousTelemetry": true,
  "embeddingsProvider": {
    "provider": "transformers.js"
  }
}

models对话配置:

title:标题

provider:使用ollama的话就填ollama

model:填模型名称

apiBase:填ollama监听地址

tabAutocompleteModel是代码补全配置,我这里选择使用qwen2做代码补全。

使用

查看官网的使用教程,下面是官网对快捷键的介绍,建议都看一看。

🧑‍🎓 How to use Continue | Continue

openai-translator

简介

官网地址:GitHub - openai-translator/openai-translator: 基于 ChatGPT API 的划词翻译浏览器插件和跨平台桌面端应用 - Browser extension and cross-platform desktop application for translation based on ChatGPT API.

已开发Bob插件bob-plugin-openai-translator,利用ChatGPT API在macOS上实现全局选词翻译。鉴于非macOS用户的需求,特别创建了浏览器插件,以便让他们也能通过ChatGPT进行选词翻译。

  1. 支持三种翻译模式:翻译、润色、总结
  2. 支持 55 种语言的相互翻译、润色和总结功能
  3. 支持实时翻译、润色和总结,以最快的速度响应用户,让翻译、润色和总结的过程达到前所未有的流畅和顺滑
  4. 支持自定义翻译文本
  5. 支持一键复制
  6. 支持 TTS
  7. 有桌面端应用,全平台(Windows + macOS + Linux)支持!
  8. 支持截图翻译
  9. 支持生词本,同时支持基于生词本里的单词生成帮助记忆的内容
  10. 同时支持 OpenAIAzure OpenAI Service

下载与安装

下载地址:Releases · openai-translator/openai-translator · GitHub

下载exe版本即可。OpenAI.Translator_0.4.19_x64-setup.exe

然后直接安装。

配置

image-20240608173926970

划词翻译

参考官方文档:openai-translator/CLIP-EXTENSIONS-CN.md at main · openai-translator/openai-translator · GitHub

image-20240608174219409

沉浸式翻译

简介

官网地址:沉浸式翻译 - 双语对照网页翻译插件 | PDF翻译 | 视频字幕翻译 (immersivetranslate.com)

沉浸式翻译:全网口碑炸裂的双语对照网页翻译插件
你可以完全免费地使用它来实时翻译外语网页,PDF翻译,EPUB电子书翻译,视频双语字幕翻译等。
还可以自由选择调用OpenAI (ChatGPT)、DeepL、Gemini等人工智能引擎来翻译上述内容。
在手机上也可以随时随地用哦,真正帮助你打破信息壁垒,选择下方的平台,立刻开始体验:)

安装

沉浸式翻译 - 网页翻译插件 | PDF翻译 | 免费 - Microsoft Edge Addons

配置

image-20240608174534851

在这里插入图片描述

注:APIKEY一定要填ollama

接口地址写:http://localhost:11434/v1/chat/completions

使用

image-20240608174904404

ComfyUI

简介

官网:GitHub - comfyanonymous/ComfyUI: The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interface.

参考教程:Comflowy 介绍 – Comflowy

"最具强大且模块化的稳定扩散图形用户界面和后台。此界面将允许您使用基于图/节点/流程图的接口设计并执行高级稳定扩散管道。

安装

建议在wsl开一个ubuntu虚拟机,然后安装部署在虚拟机里。

image-20240608175300394

安装成功之后可以参照docker迁移虚拟机方法,把它迁移到其他盘,因为文生图模型非常大。

在cmd中运行wsl进入到ubuntu20.04的shell

执行下面命令:

安装git、python3.10

sudo apt install git python3.10

下载源码

git clone https://github.com/comfyanonymous/ComfyUI.git

部署

cd ComfyUI
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt

使用

下载模型

这个需要开启魔法访问。

Models - Hugging Face

image-20240608180857409

HuggingFace
你可以将 HuggingFace 理解为 AI 届的 Github。上面会有不少人或组织会将他们的模型分享到上面。你可以通过 HuggingFace 的搜索功能来搜索你想要的模型。

一般你会看到两种后缀的模型:

  • safetensors:这种模型一般用的是 numpy 格式保存,这就意味着它只保存了张量数据,没有任何代码,加载这类文件会更安全和更快。
  • ckpt:这种文件是序列化过的,这意味着它们可能会包含一些恶意代码,加载这类模型就可能会带来安全风险。

所以在上述的案例中,我会推荐你下载 safetensors 格式的模型。

另外,我建议你在搜索模型的时候,需要看看是不是该模型的官方发的,一般我会看模型的下载数,一般下载数越多的模型,越有可能是官方发的。

image-20240608181406137

下载https://huggingface.co/stabilityai/stable-diffusion-2-1/blob/main/v2-1_768-ema-pruned.safetensors

把你windows的下载路径替换“/mnt/d/windows/Downloads/xx”

mv /mnt/d/windows/Downloads/xx ComfyUI/models/checkpoints/
运行
python main.py

image-20240608181117222

进入http://127.0.0.1:8188即可开始文生图了。
在这里插入图片描述

配置Open Webui使用Comfy UI文生图

image-20240608182408895

地址:

http://host.docker.internal:8188

效果:

image-20240608182616970

首先,使用文本生成模型撰写一个用于图像生成的提示。

完成响应后,您可以点击图片图标以生成图片。

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 20:10:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 20:10:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 20:10:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 20:10:05       20 阅读

热门阅读

  1. 对称二叉树-力扣

    2024-06-08 20:10:05       10 阅读
  2. 【进程池与线程池 协程】

    2024-06-08 20:10:05       6 阅读
  3. Linux c fread/fseek 函数

    2024-06-08 20:10:05       11 阅读
  4. clickhouse去重复数据解决方案

    2024-06-08 20:10:05       11 阅读
  5. 零基础入门学习Python第二阶05MySQL详解01

    2024-06-08 20:10:05       13 阅读
  6. 360数字安全:2024年1月勒索软件流行态势分析报告

    2024-06-08 20:10:05       11 阅读
  7. 【名词解释】Unity中的Toggle组件及其使用示例

    2024-06-08 20:10:05       8 阅读
  8. mac m1使用docker安装mysql5.7,并且开启binlog

    2024-06-08 20:10:05       9 阅读
  9. 代码随想录35期总结

    2024-06-08 20:10:05       12 阅读