这几天刚刚看到好兄弟分享的一段关于本地搭建AI的短视频,于是我按照视频里的讲解,进行了实践。感觉非常棒!!马上整理成文字与大家分享一下。
在本地启动并运行大型语言模型,运行llama3、phi3和其他模型,自定义并创建您自己的。
安装Ollama
首先进入Ollama网站,在浏览器的地址栏输入: https://ollama.com/,直接进入网站,如下图所示:
根据你的操作系统,点击Download进行下载。
本人的操作系统是macOS,芯片是M3。下载之后,直接进行安装。
检验是否安装成功
输入 Ollama 命令,正常的得出命令行输出,表示已经安装成功,下面有 ollama 的常用命令
localhost:~ root# ollama
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
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模型库
跳转到https://ollama.com/library。进入到模型库主页,如下图所示:
运行模型库
本案例利用llama3模型,在Terminal窗口下,在命令行输入如下命令:
localhost:~ root# ollama run llama3
运行结果如下:
>>> Send a message (/? for help)
然后输入如下问题:
>>> 你是谁?请用中文回答
我是一個基於人工智慧的聊天機器人,旨在與使用者進行自然语言对话。我可以理解和生成人类语言,可以回答问题、提供信息、甚至参与创作等。我的目的是为了帮助用户更好地了解我是一個基於人工智慧的聊天機器人,旨在與使用者進行自然语言对话。我可以理解和生成人类语言,可以回答问题、提供信息、甚至参与创作等。我的目的是为了帮助用户更好地了解世界,并且与我交流思想和经验。
(Note:I'm a chatbot powered by artificial intelligence, designed to engage in
natural language conversations with users. I can understand and generate
human-like language, answer questions, provide information, and even participate
in creative activities. My goal is to help users better understand the world and
exchange thoughts and experiences with me.]
>>> 请问你都有什么功能?用中文回答
我是一個多功能的chatbot,以下是我的一些主要功能:
1. **对话生成**:我可以和用户进行自然语言对话,回答问题、提供信息、甚至参与创作等。
2. **知识分享**:我拥有广泛的知识数据库,可以分享历史、科学、技术、文化等领域的知识。
3. **语言理解**:我可以理解用户的语言,并根据情况回答或回应。
4. **情感识别**:我可以识别用户的情感状态,提供合适的支持和建议。
5. **问题解决**:我可以帮助用户解决问题,找到答案,或者提供相关信息。
6. **创作协作**:我可以与用户合作创作文本、诗歌、短剧等内容。
7. **游戏互动**:我可以和用户一起玩游戏,如20 Questions、Hangman、Word Association 等。
8. **幽默分享**:我可以分享幽默和笑话,帮助用户度过难关的时刻。
这些功能让我能够与用户进行更加紧密的交流,提供更加个性化的服务。
可以看到llama3的功能还是很强大的。注意:请在问题后面加上用中文回答。否则回答的是英文答案。当然,如果你英文很好,可以忽略。
部署大模型前端界面
上面的步骤介绍的是在命令行下面直接运行模型,感觉界面不够友好。接下来教你搭建一个美观、友好的前端页面,这样用起来更方便,更高大上。然后就可以完全免费的享用大模型,想想都很爽。这个美观的大模型界面就是开源的LobeChat。
1. 安装docker
什么是docker
Docker 是一个开源的容器化平台,可以将应用程序和服务打包到一个轻量级的容器中,使得开发、测试、生产环境中的应用程序之间实现了更好的隔离和重用。
Docker 的主要特点有:
- 容器化:Docker 将应用程序和服务打包到一个容器中,这个容器可以包含所需的库、依赖项、配置文件等。
- 轻量级:Docker 容器非常轻量,通常只有几十兆到几百兆大小,可以快速启动和关闭。
- 可移植性:Docker 容器可以在不同的环境中运行,无需担心不同操作系统、库版本等问题。
- 高效率:Docker 可以提高开发和部署速度,因为它可以快速创建和销毁容器。
Docker 的使用场景非常广泛,包括:
- 微服务架构:Docker 可以帮助实现微服务架构,使得应用程序变得更加灵活、可维护和可扩展。
- DevOps:Docker 可以帮助实现 DevOpsWorkflow,使得开发、测试、生产环境中的应用程序之间实现了更好的隔离和重用。
- 云计算:Docker 可以帮助实现云计算,提供一个灵活的容器化平台,使得应用程序可以快速部署到不同的云环境中。
下载docker
docker下载地址: https://www.docker.com/products/docker-desktop/,下载界面如下图所示:
验证安装docker成功
只需要运行下面的命令
docker run hello-world
如果返回消息中带有:成功,表明安装成功。
**
- docker部署lobechat**
通过docker部署,只需要一两行命令,非常简单。启动docker,界面如下:
输入如下命令:
docker pull lobehub/lobe-chat:latest
docker pull 命令用于从 Docker Hub 或其他 Registry 中拉取镜像。lobehub/lobe-chat:这是Docker的镜像的名称,其中lobehub是镜像仓库的名称,lobe-chat是具体的镜像名称。latest:表示拉取该镜像的最新版本(tag)。如果没有指定版本标签,Docker默认会拉取latest标签的版本。执行这条命令后, Docker会将lobehub/lobe-chat镜像的最新版本下载到你的本地系统,以便你可以使用它创建和运行Docker容器。然后再运行一条命令就可以了:
docker run -d --name lobe-chat -p 10084:3210 -e ACCESS_CODE=lobe66 lobehub/lobe-chat:latest
解释一下这条命令,这个命令是使用 Docker 运行一个容器的命令。下面将分解该命令:
- -d: detached 模式,即在后台运行容器。这意味着容器将独立于终端会话运行。
- --name lobe-chat:为容器命名为 “lobe-chat”。这使得后期管理和识别容器变得更加容易。
- -p 10084:3210:将主机的端口 10084 映射到容器中的端口 3210。这允许你从外部访问容器中的服务,使用主机的 IP 地址和端口 10084。
- -e ACCESS_CODE=lobe66:设置一个环境变量 ACCESS__CODE,其值为 lobe66。这将为容器中的应用程序提供一个配置参数。
- 这个命令创建并启动一个名为 “lobe-chat” 的容器,从 lobehub/lobe-chat:latest 镜像中运行。该容器在 detached 模式下运行,端口 10084 在主机上映射到容器中的端口 3210,并将环境变量 ACCESS_ CODE 设置为 lobe66。这个lobe66在后面启动网页界面时会用到。到这里,已经安装部署完成lobechat。
结果,容器将在后台运行,你可以使用其他 Docker 命令(例如 docker ps 或 docker logs)来管理和检查容器。
注意
如果你已经拉取了该镜像,可以使用 docker images 命令查看当前可用的镜像。
如果你想更新已有的镜像,可以使用 docker pull 命令重新拉取最新版本的镜像。
3. 体验
打开浏览器,在地址栏输入:localhost:10084,如果从其他电脑登录,直接输入http://+你的本机ip地址:10084。进入之后,界面布局如下图所示:
点击上图箭头所指的Start Now按钮,进入如下界面:
本案例选择Llama3模型,如果没有安装,直接按照提示点击下载,这样就可以免费使用Llama3模型了。如下图所示:
以上就是完整的搭建过程。请大家快去体验吧,搭建自己的AI本地环境。