Ollama 本地运行大模型(LLM)完全指南

news2024/9/20 10:30:25

文章介绍了 Ollama 本地运行大模型(LLM)的方方面面, 包括安装运行、对话、自定义模型、系统提示配置、调试、开发、存储、如何作为服务、OpenAI 的兼容等。

这一年来,我已经习惯了使用线上大模型 API 来工作,只要网络在,就可以很方便地使用, 同时还能享受比较好的性能。

不过前两周的时候和一个客户聊系统,他们虽然现在没有应用大模型相关的能力,也没有计划安排 GPU 算力, 不过他们还是执着地要在本地进行大模型的部署。我想这也是很多企业不可改变的现状。

对于这部分需求,社区自然是已经有了很好而且很多的解决方案,比如 Ollama,这个 Github 已经 80.3K 星标的项目。本来这类工具做的易用性非常好(简单),一般是拿来看官网文档直接用就好,不过我在使用的时候发现,他的官网是没有专门的文档页面, 只有连接到 Github 的 Markdown,搞得我连运行起来之后的默认端口都要问一下 AI。

图片

所以我就想还是写篇文章,就把我看到的有用的信息都整理了一下,相信对大家也有点用,同时好让大家对 Ollama 有一个比较全面的了解。

文章包含以下内容:

  • • 软件安装以及使用容器运行
  • • 模型下载、运行、对话
  • • 导入自定义模型
  • • 定制系统提示
  • • CLI 命令全解
  • • REST API 介绍
  • • Python API 介绍
  • • 日志和 Debug
  • • Ollama 作为一个服务使用
  • • 模型的存储
  • • OpenAI 兼容性
  • • 并发等常见问题

Ollama 介绍

Ollama是一个专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的开源工具。它让用户无需深入了解复杂的底层技术,就能轻松地加载、运行和交互各种LLM模型。

本地和服务器Ollama 最初是被设计为本地(主要是开发)运行LLM的工具,当然现在也可以在服务器(面向用户并发提供服务)上使用,并且兼容 OpenAI 接口,可以作为 OpenAI 的私有化部署方案。

Ollama 的特点:

  • • 本地部署:不依赖云端服务,用户可以在自己的设备上运行模型,保护数据隐私。
  • • 多操作系统支持:无论是 Mac、Linux 还是 Window,都能很方便安装使用。
  • • 多模型支持:Ollama 支持多种流行的LLM模型,如Llama、Falcon等,用户可以根据自己的需求选择不同的模型,一键运行。
  • • 易于使用:提供了直观的命令行界面,操作简单,上手容易。
  • • 可扩展性:支持自定义配置,用户可以根据自己的硬件环境和模型需求进行优化。
  • • 开源:代码完全开放,用户可以自由查看、修改和分发,虽然没有很多人会去修改。

安装

MacOS

苹果电脑安装很简单,下载 Zip 解压,运行即可:

https://ollama.com/download/Ollama-darwin.zip

安装运行 Ollama.app 之后,系统任务栏上会有一个应用程序图标,点击可以关闭 Ollama 服务。

在这里插入图片描述
MacOS 任务栏

Windows

Windows 现在还处于预览版,官方也提供了安装包,安装过程不再赘述。

https://ollama.com/download/OllamaSetup.exe

Linux

Linux 直接 Shell 脚本执行:

curl -fsSL https://ollama.com/install.sh | sh

Docker

除了直接安装,我们还可以通过 Docker 运行,官方提供了镜像 ollama/ollama[1], 可以直接运行。

由于 Docker 有一层封装,所以使用 CPU 和 GPU 需要不同的配置。

CPU 模式

先说 CPU 模式运行,这个不需要什么配置和驱动,直接就可以运行,这也是 Ollama 的优势。

# CPU 模式
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
NVIDIA GPU

前面的命令运行时直接使用 CPU 来进行推理的,适合普通电脑没有 GPU 资源的场景。如果想要在容器(Docker)内使用 GPU 进行推理,配置稍微麻烦一下。

在 Docker 中使用 Nvidia GPU 的过程大家可以参考 NVIDIA 容器工具包文件安装文档[2]。

首先是为 Linux 发行版安装 NVIDIA GPU 驱动程序,安装过程也不是很复杂,以 APT(Ubuntu、Debian 等系统适用)为例。

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \    
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

然后配置容器运行时,并重新启动容器服务进程(下面以 Docker 为例,Containerd/Kubernetes 可以参考文末文档):

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

然后增加启动参数 --gpus=all 使用 GPU 模式启动容器:

# GPU 模式
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
AMD GPU

如果使用 AMD GPUs 来运行 Ollama, 使用 rocm 版本的镜像和以下命令运行:

docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

运行模型

本地运行

安装成功之后,运行模型只需要简单的一句命令:

ollama run llama3.1

如果是第一次运行, Ollama 会先从网络上下载模型(5个G左右),比如我下载速度是 2-5M/s,半个多小时之后就可以下载完成了。等待过程大家可以泡个茶休息下。

图片第一次运行模型需要下载

容器运行

在容器里面运行模型和在本机运行一样,使用 ollama run 命令:

docker exec -it ollama ollama run llama3

支持的模型

使用 ollama run <模型名> 来运行模型,第一次运行会先下载模型哦。

比如下载 「Llama 3.1」, 那么执行下面命令即可:

ollama run llama:3.1

下面列出常用的模型,以及其参数数量、文件大小、在 Ollama 中的模型名,比如 Meta 公司的 Llama 模型, 谷歌公司的 Gemma 模型,以及国内智谱的 GLM 模型、阿里云的千问模型。。

模型参数大小模型名
Llama3.18B4.7Gllama3.1
Llama3.1405B231Gllama3.1:405b
GLM49B5.5Gglm4
Qwen27B4.4Gqwen2
Qwen272B41Gqwen2:72b
Llama38B4.7Gllama3
Llama370B40Gllama3:70b
Phi33.8B2.3Gphi3
Phi314B7.9Gphi3:medium
Gemma29B5.5Ggemma2
Gemma227B16Ggemma2:27b
Mistral7B4.1Gmistral
Starling7B4.1Gstarling-lm
CodeLlama7B3.8Gcodellama
LLaVA7B4.5Gllava
Solar10.7B6.1Gsolar

完整的模型大家可以去 Ollama Library[3] 去搜索和查看。

图片Ollama Library

点击模型可以看到模型的介绍、参数列表、下载命令,等详细信息。

图片Ollama 模型介绍

部分模型的 Readme 里面还可以看到模型的评估报告:

图片Ollama Llama 3.1 评估

关于不同型号模型需要的内存运行 7B 型号的模型,需要至少拥有 8 GB 的 RAM ,运行 13B 型号的模型需要至少 16 GB 的 RAM, ,运行 33B 型号的模型需要至少 32 GB 的 RAM

自定义模型

除了内置支持的模型,你也可以使用 Ollama 来运行自定义模型。支持下面三种方式导入模型:

  • • GGUF
  • • PyTorch
  • • Safetensors

从 GGUF 导入

GGUF 是一种文件格式,用于存储使用 GGML 进行推理的模型以及基于 GGML 的执行器。

GGUF 是一种二进制格式,旨在快速加载和保存模型,并且易于读取。一般情况下,模型是使用 PyTorch 或其他框架开发的,然后转换为 GGUF 以在 GGML 中使用。

图片GGUF格式架构

GGUF 的更多介绍和特点我们不过多介绍,您可以访问 GGUF Github 站点[4]来获取相关信息。

使用 Ollama 导入 GGUF 模型非常简单,只需要如下三步:

  1. \1. 创建一个名为 的文件Modelfile,其中包含FROM要导入的模型的本地文件路径的指令。
FROM ./vicuna-33b.Q4_0.gguf

  1. \1. 在 Ollama 中创建模型,这一步我们可以指定模型的名称,比如 vicuna-33b-q4
ollama create vicuna-33b-q4 -f Modelfile

  1. \1. 经过上面两个步骤,我们就可以像运行内置模型一样运行刚刚导入的自定义模型了。
ollama run vicuna-33b-q4

从 PyTorch 或 Safetensors 导入

如果导入的模型是以下架构之一,则可以通过 Modelfile 直接导入 Ollama:

  • • LlamaForCausalLM
  • • MistralForCausalLM
  • • GemmaForCausalLM
FROM /path/to/safetensors/directory

如果不能支持的话,需要先使用 llama.cpp 转换成 GGUF 格式[5]:

常见的格式比如 HuggingFace、GGML、Lora 都支持,并提供了转换文件。

  • convert_hf_to_gguf.py
  • convert_hf_to_gguf_update.py
  • convert_llama_ggml_to_gguf.py
  • convert_lora_to_gguf.py

使用也很简单,比如转换 HuggingFace 模型。

首先克隆llama.cpp仓库,

git clone https://github.com/ggerganov/llama.cpp.git

安装必要的 Python 依赖:

pip install -r llama.cpp/requirements.txt

使用也很简单,传入 HuggingFace 的模型和输出位置等参数即可:

python llama.cpp/convert_hf_to_gguf.py vicuna-hf \
  --outfile vicuna-13b-v1.5.gguf \
  --outtype q8_0

定制系统提示

Ollama 支持运行系统模型时候,为每个模型定制系统提示(System Prompt)。

以智谱的 GLM 为例,来看看如何定制系统提示语。

首先确保我们下载了该模型:

ollama pull glm4

创建一个模型文件 Modelfile

在这里插入图片描述

然后运行模型:

ollama create glm4xiuxian -f ./Modelfile
ollama run glm4xiuxian

然后问问他「今天我要做什么」,看看大模型怎么回答:

图片GLM4 系统提示词 - 修真版

Ollama 相关命令

前面已经用到了很多 Ollama 命令,我们下载系统的看一下 Ollama 的 CLI 命令。

创建模型

ollama create用于从 Modelfile 创建模型。

ollama create mymodel -f ./Modelfile

ModelfileModelfile 是 模型的描述文件,类似用于构建 Docker 镜像的 Dockerfile

拉取和更新模型

ollama pull 用于拉取模型,如果模型已经存在,那么则更新本地模型。

ollama pull llama3

删除模型

如果模型不再使用,可以使用 ollama rm 从本机删除掉,以节省磁盘存储空间。下次使用的时候,仍然可以重新拉取。

ollama rm llama3

复制模型

ollama cp 命令可以复制一个模型,复制模型会占用双倍的磁盘空间。

ollama cp llama3 my-model

多行输入

在 Ollama 的命令行里面,回车表示发送指令,如果需要多行输入,可以使用单引号 ( """ ) 来完成。

>>> """Hello,
... world!
... """

多模态模型

使用多模态模型,只需要输入文件图片地址,即可表示上传了这个图片文件。

>>> What's in this image? /Users/jmorgan/Desktop/smile.png
>The image features a yellow smiley face, which is likely the central focus of the picture.

run 参数提问

我们可以把提示词直接通过参数传递给大模型,该命令不会进入交互式输入模式。比如:

ollama run glm4xiuxian 今天我要做什么

图片

显示模型信息

ollama show glm4

注意,只有下载过之后的模型才能通过 show 命令来显示模型相关信息。

启动

当您想启动 Ollama 时可以使用 ollama serve。这样就不需要使用 Ollama 的客户端程序了。比如我们在 Linux 服务器上就可以这样使用。

ollama serve

启动之后,我们需要新开一个 Shell 窗口来运行模型:

./ollama run glm4

默认端口Ollama 服务的默认端口是 11435,无论是使用 App 启动,还是使用命令行启动,均是这个默认端口。

由于 命令行和 APP 都使用 11435 默认端口,我们再 GUI 工作的时候执行 ollama server 会提示端口已占用。我们可以通过环境变量指定一个新的端口,来同时运行两个 ollama 实例:

OLLAMA_HOST=127.0.0.1:11435 ollama serve

Serve 命令提供了很多环境变量,可以让你更自由的运行 Ollama 程序:

  • OLLAMA_DEBUG 显示其他调试信息(例如 OLLAMA_DEBUG=1)
  • OLLAMA_HOST ollama 服务器的 IP 地址(默认 127.0.0.1:11434)
  • OLLAMA_KEEP_ALIVE 模型在内存中保持加载状态的持续时间(默认“5 分钟”)
  • OLLAMA_MAX_LOADED_MODELS 每个 GPU 加载的最大模型数量
  • OLLAMA_MAX_QUEUE 排队请求的最大数量
  • OLLAMA_MODELS 模型目录的路径
  • OLLAMA_NUM_PARALLEL 并行请求的最大数量
  • OLLAMA_NOPRUNE 启动时不修剪模型 blob
  • OLLAMA_ORIGINS 允许来源的逗号分隔列表
  • OLLAMA_TMPDIR 临时文件的位置
  • OLLAMA_FLASH_ATTENTION 启用闪存注意
  • OLLAMA_LLM_LIBRARY 设置 LLM 库以绕过自动检测

REST API

Ollama 启动之后,会自动运行一个执行和管理模型的 API。

回答 API

在这里插入图片描述

聊天 API

在这里插入图片描述

除了上述最基本的用法,我们还可以指定响应格式、使用流式响应等。

比如使用流式 API:

在这里插入图片描述

或者非流式 API,直接返回结果:
在这里插入图片描述

更多用法可以参考 Ollama API 文档[6]。

Python API

Ollama 提供了 Python API,可以让 Python 程序快速与 Ollama 集成起来。

首先安装依赖库:

pip install ollama

聊天:

在这里插入图片描述

使用流式API:

在这里插入图片描述

另外,CLI 提供的指令在 Python 里面都有 API 对应。

聊天

ollama.create(model='example', modelfile=modelfile)

生成文本

ollama.generate(model='llama3', prompt='Why is the sky blue?')

列出模型

ollama.list()

显示模型信息

ollama.show('llama3')

创建模型

在这里插入图片描述

拉取模型

ollama.pull('llama3')

拷贝模型

ollama.copy('llama3', 'user/llama3')

删除模型

ollama.delete('llama3')

自定义客户端

创建客户端的时候可以指定 hosttimeout 两个参数:

在这里插入图片描述

错误处理

一般使用 ResponseError 来捕获异常,处理错误:

在这里插入图片描述

日志

Ollama 的日志文件存储在 ~/.ollama/logs/server.log,我们可以通过查看 这个日志文件来获取 Ollama 的运行信息,以及排查错误。

在 Mac 上直接打开文件即可查看日志:

图片

也可以通过命令行来查看:

cat ~/.ollama/logs/server.log

图片

如果是容器运行的话,更简单,直接查看容器的输出即可:

docker logs <container-name>

调试

LLM 窗口大小

默认情况下,Ollama 使用 2048 个标记的上下文窗口大小。

要在使用ollama run 的时候更改此设置,请使用/set parameter

/set parameter num_ctx 4096

使用API时,指定num_ctx参数:
在这里插入图片描述

GPU 使用

通过 PS 命令查看 模型是否加载到了 GPU 上。

PS 命令会返回当前内存中已经加载的模型:

图片

Processor 列显示模型被加载到哪个内存中:

  • 100% GPU 表示模型已完全加载到 GPU 中
  • 100% CPU 表示模型已完全加载到系统内存中
  • 48%/52% CPU/GPU 表示模型已部分加载到 GPU 和系统内存中

Ollama 作为服务使用

一直到前面为止, Ollama 运行起来都只能在本机使用,可以通过设置环境变量来让其他客户端访问。

Serve 命令

如果是使用 Serve 命令启动,那就比较简单,和我们前面改端口一样:

OLLAMA_HOST=0.0.0.0:11435 ollama serve

MacOS 应用程序

如果 Ollama 作为 macOS 应用程序运行,则应使用以下命令设置环境变量launchctl:

使用 launchctl setenv 设置环境变量,然后重新运行程序。

launchctl setenv OLLAMA_HOST "0.0.0.0"

使用代理

Ollama 支持使用 HTTP_PROXYHTTPS_PROXY 来配置代理。

如果是 Docker 运行,那么使用 -e HTTPS_PROXY=https://proxy.example.com 来设置环境变量即可。

模型存储

Ollama 会下载模型到本地,不同操作系统的模型位置分别是:

  • • MacOS:~/.ollama/models
  • • Linux:/usr/share/ollama/.ollama/models
  • • Windows:C:\Users\%username%\.ollama\models

如果你想将模型存储到不同位置,可以使用 OLLAMA_MODELS 环境变量来指定不同的目录。

并发

以下服务器设置可用于调整 Ollama 在大多数平台上处理并发请求的方式:

  • OLLAMA_MAX_LOADED_MODELS 可同时加载的最大模型数量(前提是它们适合可用内存)。默认值为 3 * GPU 数量或 3(用于 CPU 推理)。
  • OLLAMA_NUM_PARALLEL 每个模型同时处理的最大并行请求数。默认将根据可用内存自动选择 4 或 1。
  • OLLAMA_MAX_QUEUE Ollama 在繁忙时排队的最大请求数,在拒绝其他请求之前。默认值为 512

Ollama 处理并发请求的逻辑是:

  • • 如果有足够内存,则可以同时加载多个模型
  • • 对于某个模型,如果有足够内存,则可以并发处理请求
  • • 如果内存不足以加载新模型:所有请求都排队,直至新模型加载
  • • 之前的模型空闲时,会写在一个或多个模型腾出空间给新模型
  • • 排队的请求按顺序处理

OpenAI 兼容性

Ollama 与OpenAI API的部分内容提供了实验性的兼容性, 以帮助将现有应用程序连接到 Ollama。

使用 OpenAI Python 库

用法和 OpenAI 的客户端用法一样。

在这里插入图片描述

OpenAI JavaScript

在这里插入图片描述

CURL 工具

在这里插入图片描述

模型名称

有些程序依赖 OpenAI 默认的模型名称(例如 gpt-3.5-turbo), 无法修改或者指定模型,可以使用如下方法来解决。

复制一个你喜欢的模型为 gpt-3.5-turbo

ollama cp llama3 gpt-3.5-turbo

这样我们就可以李代桃僵来保证原有程序不变,依然传递 gpt-3.5-turbo 作为模型名称:

在这里插入图片描述

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2025毕业设计免费指导!!

本人专注于Android/java/PHP/Python/人工智能/数据库/微信小程序技术等领域的开发&#xff0c;以及有好几年的计算机毕业设计方面的实战开发经验和技术积累&#xff1b;尤其是在图像识别、网站开发和微信小程序的开发&#xff0c;很是熟悉和了解&#xff1b;本人也是多年的全栈…

DevOps实现CI/CD实战(六)- Jenkins集成k8s

十、 Jenkins集成k8s Jenkins在集成K8s之前&#xff0c;需要搭建k8s集群&#xff0c;具体搭建步骤&#xff0c;完整笔记 https://github.com/ITenderL/ITenderL.github.io/tree/main/docs/DevOps&#xff0c; 包括完整的DevOps的笔记。 1. 准备部署的yml文件 pipeline.yml …

祝福在茶礼丨酒茶香充满东方古韵特色的中秋礼盒,太惊艳了

中国是礼仪之邦&#xff0c;礼尚往来更是普通不过。象征东方古韵的茶礼成为现代送礼热门&#xff0c;尤其是逢年过节茶礼氛围更是浓郁&#xff0c;跃居礼单榜首。 中秋节作为团圆之节&#xff0c;送礼肯定少不了&#xff01;送茶礼的这几个理由你一定要知道&#xff01; 送茶即…

【动手学深度学习】06 矩阵计算(个人向笔记)

标量导数 这个比较简单&#xff0c;就是直接求导 亚导数 举了两个例子 梯度 下面是当 y 和 x 分别为向量和标量时求导的结果。一个为向量&#xff0c;一个为标量则结果为向量。两个都为向量结果为矩阵&#xff0c;两个都为标量结果为标量 当 y 为标量&#xff0c;x 为列…

关于腾讯IM消息ID不统一的问题?服务端的MsgKey和前端的msgID不一样

角色>前端&#xff1a;web、小程序、客户端&#xff08;ios、安卓&#xff09;&#xff1b;服务端&#xff1b;腾讯IM&#xff1b; 1、背景 IM消息ID不一致&#xff0c;本地没有缓存历史数据&#xff0c;导致在调用腾讯sdk方法时&#xff0c;id不一致报错问题 2、调研目的…

MySQL进阶篇4 - 锁

五、锁 5.1 概述 介绍 分类 5.2 全局锁 介绍 红色代表不可执行的操作&#xff0c;绿色代表可执行的操作 # mysqldump 是 MySQL 提供的数据备份的命令演示 # 如果想进行全库的逻辑备份&#xff0c;那么就需要在逻辑备份之前 # 手动的加上全局锁 flush tables with read …

flask下https教程

一、定义 linux 下flask https 协议 二、实现 linux 下flask https 协议 生成SSL证书和密钥文件。您可以使用工具如openssl来生成自签名SSL证书和密钥文件。运行以下命令生成证书和密钥文件&#xff1a; openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout…

HCIE和CCIE,哪个含金量更高点?

在现在内卷的大环境下&#xff0c;技术岗可谓人人自危&#xff0c;也因此各种认证的重视程度直线升高。 特别是华为认证的HCIE和思科认证的CCIE&#xff0c;它们都代表着网络技术领域的顶尖水平。 但面对这两个高含金量的认证&#xff0c;不得不让人问出这个问题&#xff1a;同…

找到办法了!一个站点,搞定所有访问权限需求

在知识库的构建与管理过程中&#xff0c;如何平衡信息的公开与私密性始终是一大挑战。传统方法往往需要建立多个具有不同访问权限的站点&#xff0c;操作繁琐且难以维护。尤其当企业需同时向公众和内部成员提供知识文章时&#xff0c;这一问题尤为突出。用户频繁反馈&#xff0…

振弦式渗压计安装流程全面指南

在大坝安全监测体系中&#xff0c;振弦式渗压计作为关键设备之一&#xff0c;承担着监测大坝内部渗流压力变化的重任。其安装质量直接关系到监测数据的准确性和大坝安全的评估。因此&#xff0c;制定一套科学、精细的安装流程&#xff0c;对于确保渗压计的正常运行和延长使用寿…

什么是生成式 AI?

人工智能 (AI) 通过使用机器学习与环境交互并执行任务来模仿人类行为&#xff0c;而无需明确指示要输出的内容。 生成式 AI 描述 AI 中用于创建原创内容的一类功能。 人员通常与聊天应用程序中内置的生成式 AI 交互。 此类应用程序的一个常见示例是 Microsoft Copilot&#xf…

Telephony STK 域选

在场测过程中,经常遇到STK功能不生效,点击STK会出现无响应的问题. 一般需要对比DUT和REF来确认问题所在。一般情况下,出现类似问题需要check是否域选是一致的。 测试机 对比机 对比机为展锐平台会出现弹框情况,从Log看,相关业务进行了报错回落,从IMS业务回落到了…

基于spring的博客系统(一)

通过前⾯课程的学习, 我们掌握了Spring框架和MyBatis的基本使⽤, 并完成了图书管理系统的常规功能 开发, 接下来我们系统的从0到1完成⼀个项⽬的开发&#xff1b; 1. 项⽬介绍 使⽤SSM框架实现⼀个简单的博客系统 共5个⻚⾯ 1. 用户登录 2. 博客发表⻚ 3. 博客编辑⻚ 4. 博客…

【Java算法】模拟

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 &#x1f9e3; 一.模拟算法 模拟算法和传统的算法有一些不同之处&#xff0c;更多的是对题目要求的理解&#xff0c;通过代码的方式去模拟实现一道题目在现实中的实现方法…

接口基础知识4概念纠正与补充说明

​接口基础知识4 1 请求方法的幂等性 幂等性的理解是没有问题的。但是请求方法和幂等性没有直接的关联。 在 REST API 设计中&#xff0c;幂等性非常重要&#xff0c;因为它保证了在重复请求的情况下&#xff0c;资源的状态始终保持一致&#xff0c;不会因为重复请求而发生副…

量化交易backtrader实践(一)_数据获取篇(1)_数据准备

我们需要使用backtrader来做量化交易回测&#xff0c;先解决一些前置问题&#xff1a; 需要回测哪几支股票&#xff0c;或者即时选取股票即时选取股票以什么形式&#xff0c;代码还是名称这些数据的格式是怎么样的&#xff0c;backtrader如何接收 在解决这些前置问题的过程中…

如何抽取一个特定页面从devExpress的例程集合中

https://download.csdn.net/download/haoyujie/89729356https://download.csdn.net/download/haoyujie/89729356相关资源。 devExpress界面库的例程的设计是有必要来吐槽的。其紧耦合和大捆绑&#xff0c;我认为是devExpress很重要的不友好&#xff0c;导致可用性差和学习曲线…

让AI算算国庆中秋,你究竟多休了几天

最近&#xff0c;2024年中秋和国庆的放假调休安排火速登上热搜&#xff1a; “上6休3&#xff0c;上3休2&#xff0c;上5休1&#xff0c;上2休7&#xff0c;再上5休1。” 是不是看着眼花缭乱&#xff1f;其实不仅你懵了&#xff0c;广大网友也集体抓狂&#xff1a;“这比高考…

Spring介绍和Log4j2

目录 一、模块组成二、基本用例-Spring框架基本使用、原理三、启用日志框架 Spring 有两个最核心模块&#xff1a; IoC 和 AOP。 IoC&#xff1a;Inverse of Control 的简写&#xff0c;译为“控制反转”&#xff0c;指把创建对象过程交给 Spring 进行管理。AOP&#xff1a;Asp…

python爬虫代理ip池搭建

最近大量爬取数据的时候总会遇到被封ip的情况&#xff0c;所有打算自己搭建一个代理ip池来使用。本次使用的是开源的ip代理池项目ProxyPool 1.下载redis数据库 redis安装 这里我选择直接下载redis的解压包形式&#xff0c;方便安装。下载地址&#xff1a;发布 TPORADOWSKI/RED…