Ollama介绍与使用指南
Ollama 是一个强大的本地推理大模型平台,旨在简化模型的本地部署、管理和推理工作流。它允许用户在本地机器上拉取、管理、运行大模型,并提供多种访问方式,包括本地 CLI、HTTP 接口以及通过 OpenAI 客户端的集成。这篇文章将详细介绍 Ollama 的功能,如何使用 Ollama 拉取模型、运行模型,并通过多种方式访问推理服务。
一、Ollama的主要功能
Ollama 的核心功能包括:
-
本地模型管理:Ollama 支持从官方模型库或自定义模型库拉取预训练模型,并在本地保存和加载。它支持各种流行的模型格式(如 ONNX、PyTorch、TensorFlow)。
-
高效推理:通过 GPU/CPU 的加速,Ollama 提供高效的模型推理,适合本地化应用或需要控制数据隐私的场景。
-
多种接口访问:Ollama 支持命令行(CLI)、HTTP 接口访问推理服务,并通过 OpenAI 客户端实现更广泛的集成。
-
环境变量配置:通过灵活的环境变量,用户可以自定义推理设备(GPU/CPU)、缓存路径、并发数、日志级别等。
接下来我们将详细介绍 Ollama 的安装、常用命令、如何拉取和运行模型、以及不同方式访问 Ollama 推理服务。
二、Ollama的安装与基本配置
1. 安装 Ollama
1.1 获取桌面软件
安装桌面软件可以去官网下载:ollama
image
1.2 命令行安装
要安装 Ollama,首先需要在系统中安装 Ollama CLI 工具。可以通过以下命令安装:
# macOS 用户 brew install ollama # Linux 用户(以 Ubuntu 为例) curl -s https://ollama.com/install | bash # Windows 用户可以通过 WSL2 安装,参考官网文档获取更多细节
1.3 docker镜像
去下载官方镜像Ollama Docker image。一般高端计算显卡都放在远程,推荐使用docker容器化安装。本文的后续操作也是基于容器化安装。 启动命令按照docker正常启动就行,可以参考我的启动命令,自行修改
docker run -d --gpus=all \ -e OLLAMA_KEEP_ALIVE=-1 \ -e OLLAMA_NUM_PARALLEL=4 \ -e OLLAMA_FLASH_ATTENTION=1 \ -v /data3/alex/ollama:/root/.ollama \ -p 23153:11434 --name ollama-vincent docker.io/ollama/ollama:0.3.11
2. 配置 Ollama
Ollama 允许通过环境变量进行配置。常见的环境变量包括:
-
OLLAMA_MODEL_PATH:指定模型存储路径
-
OLLAMA_DEVICE:选择推理使用的设备(如
cpu
或gpu
) -
OLLAMA_LOG_LEVEL:设置日志级别(如
debug
,info
)
例如:
export OLLAMA_MODEL_PATH=~/ollama_models export OLLAMA_DEVICE=gpu export OLLAMA_LOG_LEVEL=debug
更多环境变量可以参考命令的输出:
root@6b5c84c53d0e:/# 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 per GPU OLLAMA_MAX_QUEUE Maximum number of queued requests OLLAMA_MODELS The path to the models directory OLLAMA_NUM_PARALLEL Maximum number of parallel requests OLLAMA_NOPRUNE Do not prune model blobs on startup OLLAMA_ORIGINS A comma separated list of allowed origins OLLAMA_SCHED_SPREAD Always schedule model across all GPUs OLLAMA_TMPDIR Location for temporary files OLLAMA_FLASH_ATTENTION Enabled flash attention OLLAMA_LLM_LIBRARY Set LLM library to bypass autodetection OLLAMA_GPU_OVERHEAD Reserve a portion of VRAM per GPU (bytes) OLLAMA_LOAD_TIMEOUT How long to allow model loads to stall before giving up (default "5m")
三、常用的 Ollama 命令
Ollama 提供了多种命令,方便用户进行模型管理和推理。下面介绍一些常用的命令。
1. 查看帮助信息
要查看 Ollama 支持的所有命令及其用法,可以使用以下命令:
ollama help
这将列出所有支持的命令和相关说明,例如 run
、list
、pull
等。
2. 查看可用模型
要查看 Ollama 官方支持的模型,可以运行以下命令:
ollama list
这将返回一个可用模型的列表,包括模型的名称、版本等信息。
3. 拉取模型
要拉取某个模型到本地进行推理,使用 pull
命令。例如,拉取一个名为 llama2
的模型:
ollama pull llama2
该命令会将模型下载并存储在本地的 OLLAMA_MODEL_PATH
路径中。如果没有指定该路径,Ollama 会使用默认存储路径。
4. 删除模型
如果不再需要某个模型,可以使用 remove
命令将其从本地删除:
ollama remove llama2
5. 检查模型状态
使用 ollama ps
命令可以查看当前模型的状态,包括是否已加载到内存中,设备信息等:
root@6b5c84c53d0e:/# ollama ps NAME ID SIZE PROCESSOR UNTIL qwen2:7b-instruct e0d4e1163c58 5.7 GB 100% GPU Forever qwen2.5:1.5b 65ec06548149 2.0 GB 100% GPU Forever qwen2.5:0.5b a8b0c5157701 1.3 GB 100% GPU Forever llama3.2:3b-instruct-fp16 195a8c01d91e 8.5 GB 100% GPU Forever glm4:9b 5b699761eca5 6.6 GB 100% GPU Forever
四、运行模型
模型拉取完成后,Ollama 提供了简便的方式来运行推理任务。以下介绍如何通过命令行、HTTP 接口和 OpenAI 客户端访问推理服务。
1. 通过命令行运行模型
要在命令行中运行模型进行推理,可以使用 run
命令。例如,运行 llama2
模型并输入一句话让其进行推理:
ollama run llama2 "Hello, how are you today?"
输出将显示模型生成的结果。run
命令支持传递不同的参数,例如设置生成的最大长度、温度等参数:
ollama run llama2 "Hello!" --max_length 50 --temperature 0.8
最好是直接进入本地交互环境
`root@6b5c84c53d0e:/# ollama run qwen2:7b-instruct >>> 你能做什么,你是什么模型 我是一个大型语言模型,被训练来生成与各种主题相关的文本内容。我可以帮助解答问题、提供信息、进行对话、撰写文章、故事或邮件等。尽管我的 能力在不断扩展和优化中,但我并不能执行需要实际物体操作或者具有特定领域专业知识的任务。 我是通义千问大模型的增强版本,名为通义万相,主要用于处理语言生成任务,并以图像形式输出结果。通过将自然语言指令转化为图像,我可以帮助 用户获得创意设计、插画、图像修改以及其他基于视觉的需求。我的核心功能是理解文本输入并将其转换为与之相关的高质量图像输出。 请注意,在某些情况下我可能会犯错误或者给出不准确的回答,请您根据实际情况进行判断和验证信息的正确性。我会不断地学习和进步,希望在帮助 用户解决问题和提供有价值的信息方面发挥积极作用。 >>>`
2. 通过 HTTP 访问
Ollama 还提供了 HTTP 接口,允许用户通过 REST API 调用模型进行推理。
启动 HTTP 服务
首先,需要启动 Ollama 的 HTTP 服务,可以通过以下命令启动服务:
ollama serve
这将启动一个本地 HTTP 服务器,默认情况下监听 localhost:11434
。你可以通过浏览器或 Postman 访问 API 进行测试。 如果使用上面的容器化安装,启动容器以后,服务已经启动了,使用ollama ps 命令就能看到已经running的模型服务。
发起 HTTP 请求
使用 curl
命令发起 HTTP 请求,调用 llama2
模型进行推理:
curl -X POST http://localhost:11434/v1/models/llama2/completions \ -H "Content-Type: application/json" \ -d '{ "prompt": "Tell me a joke", "max_length": 50, "temperature": 0.7 }'
该请求将返回模型生成的文本。响应格式为 JSON,例如:
{ "id": "cmpl-5sWYxF", "object": "text_completion", "created": 1690243381, "model": "llama2", "choices": [ { "text": "Why don't scientists trust atoms? Because they make up everything!" } ] }
也支持chat调用接口
curl --location 'http://localhost:11434/v1/chat/completions' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen2:7b-instruct", "stream": false, "messages": [ { "role": "user", "content": "你是谁,可以做什么?" } ], "temperature": 0 }'
{ "id": "chatcmpl-568", "object": "chat.completion", "created": 1727494268, "model": "qwen2:7b-instruct", "system_fingerprint": "fp_ollama", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "我是阿里云开发的一款超大规模语言模型,我叫通义千问。我可以生成各种文本内容、回答问题、提供信息咨询等任务。你可以问我各种问题或者需要创作一些文本,我会尽力帮助你。如果你有任何需求,请随时告诉我!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 14, "completion_tokens": 55, "total_tokens": 69 } }
3. 通过 OpenAI 客户端访问
Ollama 支持通过 OpenAI 的 API 客户端访问本地的模型推理服务,这样你可以使用类似调用 OpenAI API 的方式来调用本地的 Ollama 模型。
配置 OpenAI 客户端
首先,需要将 OpenAI 客户端的 API 请求重定向到本地 Ollama 服务。你可以使用以下命令指定 Ollama 服务的 API 密钥和本地 API 端点:
export OPENAI_API_KEY=ollama-api-key export OPENAI_API_BASE_URL=http://localhost:11434/v1
此时,任何通过 OpenAI 客户端发起的请求将会转发给 Ollama 的本地服务。
通过 OpenAI 客户端发起请求
使用 OpenAI Python SDK 或其他 OpenAI 客户端库调用 Ollama 模型进行推理。例如,使用 Python 调用 llama2
模型:
import openai openai.api_key = 'ollama-api-key' openai.api_base = 'http://localhost:11434/v1' response = openai.Completion.create( model="llama2", prompt="What is the capital of France?", max_tokens=50 ) print(response.choices[0].text.strip())
该代码将通过本地的 Ollama 服务运行 llama2
模型,并返回结果。
五、Ollama的并发与性能优化
Ollama 支持通过设置环境变量来优化并发处理和性能。常用的性能优化配置包括:
-
并发限制:通过
OLLAMA_CONCURRENCY
设置最大并发请求数。例如:export OLLAMA_CONCURRENCY=4
-
批处理大小:通过
OLLAMA_MAX_BATCH_SIZE
设置批处理推理的最大大小,优化推理吞吐量。例如:export OLLAMA_MAX_BATCH_SIZE=16
-
缓存管理:通过
OLLAMA_CACHE_PATH
设置缓存路径,加速重复推理请求的处理。
六、日志与调试
Ollama 提供详细的日志功能,帮助开发者进行调试和性能监控。通过 OLLAMA_LOG_LEVEL
环境变量,用户可以控制日志的详细程度,例如:
export OLLAMA_LOG_LEVEL=debug
日志文件可以通过 OLLAMA_LOG_FILE
指定路径进行存储。例如:
export OLLAMA_LOG_FILE=~/ollama_logs/debug.log
日志级别包括 debug
、info
、warn
和 error
。设置为 debug
级别时,系统会记录详细的调试信息,帮助开发者排查问题。
七、总结
Ollama 是一个强大的本地大模型推理平台,支持用户通过命令行、HTTP API 和 OpenAI 客户端进行多样化的模型调用。通过合理配置环境变量和优化推理流程,Ollama 能够为用户提供高效的本地化推理解决方案。
无论是在隐私敏感的本地化环境中,还是需要高性能的大规模推理任务,Ollama 都是一个理想的选择。
零基础入门AI大模型
今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
有需要的小伙伴,可以点击下方链接免费领取【保证100%免费
】
1.学习路线图
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
(都打包成一块的了,不能一一展开,总共300多集)
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
5.免费获取
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码或者点击以下链接都可以免费领取【保证100%免费】
本文转自 https://mp.weixin.qq.com/s/G19_LDj6PZAfvZc8CID-yg,如有侵权,请联系删除。