如何本地运行Llama 2大语言模型并实现无公网IP远程访问


随着ChatGPT 和open Sora 的热度剧增,大语言模型时代,开启了AI新篇章,大语言模型的应用非常广泛,包括聊天机器人、智能客服、自动翻译、写作助手等。它们可以根据用户输入的文本生成相应的响应,提供个性化的建议和服务,目前大部分大语言模型的产品都是基于网络线上的,如果我们本地想自己部署一个自己的大语言模型,该如何操作呢,下面介绍一款可以在自己本地部署运行的大语言模型Llama 2

Llama 2是一款开源的大语言模型,其中训练的数据目前已经达到7B级别,在上下文长度为4K下的单轮与多轮对话中表现出色,部署运行Llama 2同时需要借助一个框架Ollama.

Ollama是一个强大的框架,设计用于在Docker容器中部署大型语言模型(LLM)。它的主要功能是简化在Docker容器内部署和管理LLM的过程。Ollama通过提供简单的安装指令,使用户能够轻松地在本地运行大型开源语言模型.

借助Ollama 框架可以很方便运行Llama2大语言模型,同时,为了方便与模型进行交互,还需要部署一个web交互 界面Chatbot-Ollama.

Chatbot-Ollama是一个基于Ollama框架的聊天机器人前端应用。它利用Ollama框架提供的接口和功能,将大型语言模型(LLM)集成到聊天机器人中,使其能够与用户进行交互,并提供各种聊天机器人服务。

Chatbot-Ollama 接入本地Ollama框架运行的Llama2大语言模型,使我们可以很轻松简便在本地创建一个聊天机器人.Chatbot-Ollama 同时也是基于docker本地部署的,本地部署,只能局限于本地访问,无法做到提供远程给其他人访问,下面我们还需要安装一个内网穿透工具cpolar,使得本地聊天机器人可以被远程访问.

Cpolar是一款强大的内网穿透软件,它能够在多个操作系统上无缝运行,包括Windows、MacOS和Linux,因此无论您使用哪种操作系统,都可以轻松将本地内网服务器的HTTP、HTTPS、TCP协议端口映射为公网地址端口,使得公网用户可以轻松访问您的内网服务,无需部署至公网服务器.

下面我们通过群晖Docker来演示如何结合上面介绍的技术来运行一个自己的本地聊天机器人并且发布到公网访问.本地部署,对设备配置要求高一些,如果想要拥有比较好的体验,可以使用高配置的服务器设备.

1. 拉取相关的Docker镜像

运行Llama 2需要借助Ollama镜像,对语言模型进行交互需要用到Chatbot-Ollama前端界面,所以我们需要拉取这两个docker镜像,本例群晖版本由于无法直接在群晖控制面板docker界面搜索下载镜像,所以采用命令行方式进行镜像下载,首先开启群晖ssh连接,然后使用工具通过ssh连接上群晖,分别执行下面docker命令 拉取

*拉取Ollama镜像命令

sudo docker  pull ollama/ollama:latest

*拉取Chatbot-Ollama镜像命令

sudo docker  pull ghcr.io/ivanfioravanti/chatbot-ollama:main

拉取成功后,我们可以在Docker界面看到拉取的两个镜像,下面开始运行两个镜像,首先运行ollama

<
### 局域网内访问本地部署的大语言模型服务 为了使局域网内的其他设备能够访问本地部署的大语言模型服务,需确保该服务已正确配置开放给网络中的其它主机。对于Llama 2这类大语言模型的服务端设置,通常涉及几个关键步骤来保障其可被远程访问。 #### 配置Web服务器以支持外部连接 当安装像Llama 2这样的LLM时,初始设定可能仅允许来自同一台计算机的请求。要让这个服务能接受来自同一个局域网内部不同机器发出的数据包,则需要调整相应的防火墙规则以及应用程序本身的监听地址[^1]。 例如,在Linux环境下可以使用`ufw`(Uncomplicated Firewall) 来管理进出流量: ```bash sudo ufw allow 80/tcp sudo ufw enable ``` 这会打开HTTP默认使用的TCP 80端口用于接收外界传入的通信尝试;当然具体端口号取决于实际应用所占用的那个值。 接着修改服务程序启动参数使其不仅限于localhost而是面向所有IP接口监听,比如通过编辑配置文件或命令行选项指定绑定至 `0.0.0.0` 而不是 `127.0.0.1`. #### 使用Ollama作为示例说明 针对特定平台如Ollama,可以通过一系列预定义好的指令来进行必要的初始化工作之后再考虑联网事宜。一旦完成了基本环境搭建和服务激活(`systemctl start ollama`),下一步便是确认API接口是否已经准备好处理远端客户的查询请求[^2]. 假设目标是在一台充当服务器角色的工作站上执行上述过程,希望家庭/办公室里的笔记本电脑或者其他智能装置也能顺利调用此资源,则除了前述提到的技术手段外还需要注意两点: - **路由器转发**: 如果存在NAT(Network Address Translation),则应适当设置端口映射使得公网下的客户端也可以间接触及私有LAN里边的目标节点。 - **安全考量**: 开放任何互联网服务前务必评估潜在风险采取相应防护措施防止未授权入侵行为发生。 最后测试连通性的简易方式之一是从另一部同处一室但不属于相同物理硬件上的终端发起curl命令向新设立起来的语言理解引擎发送简单问题看看能否得到预期答复。 ```bash curl http://<server_ip>:<port>/api/v1/query -d '{"prompt":"你好"}' ``` 这里 `<server_ip>` 是指代运行OLLAMA实例那台PC对外宣称的身份标识符(即IPv4 地址),而 `<port>` 则对应之前提及过的对外开放的具体数值。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大海里的番茄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值