qwen2:7b本地化部署:Ollama更新、设置、api调用qwen2服务

Ollama绝对是最简单的一种大模型部署方式,尽管该方式不支持function calling,但对于我们进行大模型的初步开发与探索已经足够。

本篇介绍了如何使用Ollama本地化部署qwen2:7b,以及进行Ollama的参数设置以及使用api调用qwen2的api服务的方法。

一、安装或者升级Ollama

运行qwen2需要Ollama版本 ollama>=0.1.42

可以通过ollama -v命令检查安装的版本。

我这里已经升级到0.1.44了满足条件。我之前是0.1.32,不满足版本要求的话,运行qwen2会显示乱码。

以下记录如何更新服务器上的Ollama版本。

官方的教程是直接使用命令:

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

但实际执行的时候90%都会遇到网络问题不成功,只能用备用方案:

1、通过本地下载安装文件,再上传到服务器。

  1. 本地使用浏览器访问https://ollama.com/download/ollama-linux-amd64触发下载;
  2. 将下载的文件重命名为ollama;
  3. 通过winscp工具或者scp命令,将其上传至服务器目录:/usr/bin/
  4. 给文件赋予可执行权限:chmod +x /usr/bin/ollama
  5. 如果不能调到最新的Ollama,可以修改环境变量的读取顺序:export PATH=“/usr/bin:/usr/local/bin:/bin:$PATH”,也可以替换之前目录使用的ollama程序:例如我之前的Ollama程序在/usr/local/bin/ollama,将该文件直接替换为最新的即可。

2、Ollama相关设置

在服务器的环境变量中设置Ollama相关的参数:

  • OLLAMA_HOST:这个变量定义了Ollama监听的网络接口。通过设置OLLAMA_HOST=0.0.0.0,我们可以让Ollama监听所有可用的网络接口,从而允许外部网络访问。
  • OLLAMA_MODELS:这个变量指定了模型镜像的存储路径。通过设置OLLAMA_MODELS=/data/model/ollama_models,我们可以将模型镜像存储在/data目录下,避免默认目录下存储空间不够的情况。
  • OLLAMA_KEEP_ALIVE:这个变量控制模型在内存中的存活时间。设置OLLAMA_KEEP_ALIVE=24h可以让模型在内存中保持24小时,提高访问速度。
  • OLLAMA_PORT:这个变量允许我们更改Ollama的默认端口。例如,设置OLLAMA_PORT=8080可以将服务端口从默认的11434更改为8080。(我这里没有设置)
  • OLLAMA_NUM_PARALLEL:这个变量决定了Ollama可以同时处理的用户请求数量。设置OLLAMA_NUM_PARALLEL=4可以让Ollama同时处理两个并发请求。
  • OLLAMA_MAX_LOADED_MODELS:这个变量限制了Ollama可以同时加载的模型数量。设置OLLAMA_MAX_LOADED_MODELS=4可以确保系统资源得到合理分配。

在linux上通过设置ollama的环境变量:

(1)修改~/.bashrc文件
vi ~/.bashrc

在末行添加

export OLLAMA_MODELS=/data/model/ollama_models
export OLLAMA_HOST=0.0.0.0
export OLLAMA_KEEP_ALIVE=24h
export OLLAMA_NUM_PARALLEL=4
export OLLAMA_MAX_LOADED_MODELS=4
(2)在当前会话中生效
source ~/.bashrc

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

3、启动Ollama服务

(1)启动命令
ollama serve
(2)后台启动命令
nohup ollama serve  >/dev/null 2>&1 &

该命令将不保存日志信息,如果需要日志信息,将>/dev/null修改为想要保存的日志文件路径即可。

二、使用Ollama拉取并运行qwen2

使用命令

ollama run qwen2

会自动拉取镜像。等拉取完毕就可以进行对话了。

也可以使用ollama pull qwen2,再使用ollama run qwen2也可以运行,都是一样的。

我们可以看到拉取默认拉取的是4.4GB的模型。

到Ollama的模型仓库中看看可用的模型:

library (ollama.com)

同时我们看到该模型其实是经过Q4量化过的模型,难怪4.4G。我们看一下显存占用:

nvidia-smi

占用5.8G显存

加上本身Ollama本身的服务,1.8G,不到8个G的显存。

这么说8G显存就能在本地运行qwen2:7b了。是不是非常的惊喜!!!而且经过我们工作中的使用,其实Ollama提供的qwen2:7b模型已经具有相当好的效果,比起chatGLM等其他同规格参数模型,qwen2:7b是最好的,真的强。

三、api调用Ollama部署的qwen2:7b

由于我没有修改Ollama的默认端口,服务将监听默认的11434端口。如果需要其他机器访问,而服务器开启了防火墙,我们则需要开放服务器的端口11434。

1、开启防火墙端口(如果服务器未开启防火墙则跳过)

打开防火墙某个端口

sudo firewall-cmd --permanent --add-port=11434/tcp

重载防火墙设置

sudo firewall-cmd --reload

这样我们就可以通过接口访问服务器提供的大模型服务了。

2、api方式调用qwen2:7b

Ollama部署的qwen2:7b是标准的Openai API格式,因此直接采用chatOpenai的调用方式即可,如下:

import os
from langchain.chat_models import ChatOpenAI
os.environ['OPENAI_API_KEY'] = 'none'
os.environ['OPENAI_BASE_URL'] = 'http://{服务器ip地址}:11434/v1'
# 使用qwen2-7b(实际为in4量化版本)
llm = ChatOpenAI(temperature=0, model_name='qwen2:7b')

{服务器ip地址}修改为服务器实际的ip地址。

3、调用测试

from langchain.chains.llm import LLMChain
from langchain_core.prompts import PromptTemplate

_prompt = """ 你是一个发言友好的AI助理。现在回答用户的提问:{question}。"""

prompt = PromptTemplate.from_template(_prompt)
chat_chain = LLMChain(llm=model, prompt=prompt, verbose=True)
q = "你好,你有什么功能?"
response = chat_chain.run(question=q,verbose=True)  # 终端用户的提问字符串
print(response)

看到模型回复如下:

证明已经部署完成,可以进行使用了。我们可以将其进行意图识别,或者完成一些文本摘要、实体提取任务都可以很愉快的完成、

四、补充说明

1、关于function calling

Ollama启动方式不支持function calling功能。

function calling在langchain的很多功能中具有重要的作用,例如路由链、提取链等都需要function calling。

官方说采用qwen-agent可以进行支持,但实际上为了我们的使用,我们可以采用其他方式进行部署,则可以支持function calling,例如Xinference部署,后续我可以再出具一篇教程、

2、关于langchain

还有关于上述测试api调用是否可用的代码,是关于langchain框架的,我这里示意的是langchain0.1.x版本的大模型链的定义方法,现0.2.x版本已经弃用。langchain0.2.x版本新增很多新的功能。我也正在学习,后续有时间我继续向大家分享。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值