本地搭建AI环境

本地搭建AI

这几天刚刚看到好兄弟分享的一段关于本地搭建AI的短视频,于是我按照视频里的讲解,进行了实践。感觉非常棒!!,马上整理成文字与大家分享一下。

在本地启动并运行大型语言模型,运行llama3、phi3和其他模型,自定义并创建您自己的。

安装Ollama

首先进入Ollama网站,在浏览器的地址栏输入:https://ollama.com/,直接进入网站,如下图所示:

Screenshot 2024-05-08 at 19.10.04

根据你的操作系统,点击Download进行下载。

本人的操作系统是macOS,芯片是M3。下载之后,直接进行安装。

检验是否安装成功

输入 Ollama 命令,正常的得出命令行输出,表示已经安装成功,下面有 ollama 的常用命令

localhost:~ root# ollama
Usage:ollama [flags]ollama [command]Available Commands:serve       Start ollamacreate      Create a model from a Modelfileshow        Show information for a modelrun         Run a modelpull        Pull a model from a registrypush        Push a model to a registrylist        List modelscp          Copy a modelrm          Remove a modelhelp        Help about any commandFlags:-h, --help      help for ollama-v, --version   Show version informationUse "ollama [command] --help" for more information about a command.

ollama模型库

跳转到https://ollama.com/library。进入到模型库主页,如下图所示:

Screenshot 2024-05-08 at 19.36.45

运行模型库

本案例利用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 的主要特点有:

  1. 容器化:Docker 将应用程序和服务打包到一个容器中,这个容器可以包含所需的库、依赖项、配置文件等。
  2. 轻量级:Docker 容器非常轻量,通常只有几十兆到几百兆大小,可以快速启动和关闭。
  3. 可移植性:Docker 容器可以在不同的环境中运行,无需担心不同操作系统、库版本等问题。
  4. 高效率:Docker 可以提高开发和部署速度,因为它可以快速创建和销毁容器。

Docker 的使用场景非常广泛,包括:

  1. 微服务架构:Docker 可以帮助实现微服务架构,使得应用程序变得更加灵活、可维护和可扩展。
  2. DevOps:Docker 可以帮助实现 DevOpsWorkflow,使得开发、测试、生产环境中的应用程序之间实现了更好的隔离和重用。
  3. 云计算:Docker 可以帮助实现云计算,提供一个灵活的容器化平台,使得应用程序可以快速部署到不同的云环境中。
下载docker

docker下载地址:https://www.docker.com/products/docker-desktop/,下载界面如下图所示:

Screenshot 2024-05-08 at 20.52.44

验证安装docker成功

只需要运行下面的命令

docker run hello-world

如果返回消息中带有:成功,表明安装成功。

2. docker部署lobechat

通过docker部署,只需要一两行命令,非常简单。启动docker,界面如下:

Screenshot 2024-05-08 at 21.21.16

输入如下命令:

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 psdocker logs)来管理和检查容器。

注意

  • 如果你已经拉取了该镜像,可以使用 docker images 命令查看当前可用的镜像。
  • 如果你想更新已有的镜像,可以使用 docker pull 命令重新拉取最新版本的镜像。

3. 体验

打开浏览器,在地址栏输入:localhost:10084,如果从其他电脑登录,直接输入http://+你的本机ip地址:10084。进入之后,界面布局如下图所示:

Screenshot 2024-05-08 at 21.44.22

点击上图箭头所指的Start Now按钮,进入如下界面:

本案例选择Llama3模型,如果没有安装,直接按照提示点击下载,这样就可以免费使用Llama3模型了。如下图所示:

Screenshot 2024-05-08 at 22.07.37

以上就是完整的搭建过程。请大家快去体验吧,搭建自己的AI本地环境。

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

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

相关文章

自然语言处理(NLP)技术有哪些运用?

目录 一、自然语言处理(NLP)技术有哪些运用? 二、Python进行文本的情感分析 1、NLTK库: 2、TextBlob库: 三、错误排除 一、自然语言处理(NLP)技术有哪些运用? 自然语言处理(NLP&#xff09…

区块链 | NFT 水印:Review on Watermarking Techniques(一)

🍍原文:Review on Watermarking Techniques Aiming Authentication of Digital Image Artistic Works Minted as NFTs into Blockchains 1 应用于 NFT 的水印技术 常见的水印技术类型可以分为: 可见 v i s i b l e \mathsf{visible} visi…

循环神经网络(RNN)

大家好,这里是七七,这两天在写关于神经网络相关的知识,面对的是有一定基础的读者哦。 一、RNN核心思想 RNN的核心思想就是曾经的输入造成的影响,会以致影响之后的输入,即隐含层的输出取决于历史数据的全部输入。 三个…

Infuse for Mac激活版:高清影音播放软件

对于热爱影音娱乐的Mac用户来说,Infuse for Mac是一个不容错过的选择。它以其简洁的操作界面和强大的播放功能,为用户带来了全新的影音播放体验。 Infuse for Mac支持广泛的音视频格式,无需额外转换,即可轻松播放您喜爱的影片。无…

Mybatis Plus二级缓存 使用@CacheNamespace 失效@CacheNamespace和@CacheNamespaceRef

1、注解 CacheNamespace(flushInterval 100000,eviction LruCache.class,readWrite false,size 1024)2、xml配置 <cache eviction "LRU" flushInterval "100000" readOnly "true" size "1024"/> 二级缓存&#xff0c;配置文…

【Linux 性能详解】CPU性能分析工具篇

目录 uptime mpstat 实时监控 查看特定CPU核心 pidstart 监控指定进程 组合多个监控类型 监控线程资源 按用户过滤进程 vmstart 用途 基本用法 输出字段 perf execsnoop dstat 通俗解释 技术层面解释 使用示例 总结 uptime uptime 是一个在 Linux 和 Unix…

上班不想用脑子写代码了怎么办?那就试试Baidu Comate啊宝贝

本文目录 前言1、视频编程实战1.1、熟悉代码库中的代码1.2、参考现有代码编写新代码 2、下载使用教程3、使用体验3.1、AutoWork 产品测评3.2、解决有关ajax请求后重定向问题3.3、询问编程相关知识3.3.1、cookie和session的区别与联系3.3.2、数据库中主键外键的相关知识 4、问题…

基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调)

基于EBAZ4205矿板的图像处理&#xff1a;12图像二值化(阈值可调) 我的项目是基于EBAZ4205矿板的阈值可调的图像阈值二值化处理&#xff0c;可以通过按键调整二值化的阈值&#xff0c;key1为阈值加1&#xff0c;key4为阈值减1&#xff0c;key2为阈值加10&#xff0c;key5为阈值…

【bug记录】清除僵尸进程,释放GPU显存

目录 1. 为什么会出现这种情况&#xff1f;2. 解决方案方法一&#xff1a;使用 fuser 命令方法二&#xff1a; 3. 小贴士 在进行深度学习或其他需要GPU支持的任务时&#xff0c;我们有时会发现虽然没有可见的进程在执行&#xff0c;但GPU资源却意外地被占用。这种情况往往会阻碍…

AI换脸原理(4)——人脸对齐(关键点检测)参考文献2DFAN:代码解析

注意,本文属于人脸关键点检测步骤的论文,虽然也在人脸对齐的范畴下。 1、介绍 在本文中,重点介绍了以下几项创新性的成果,旨在为人脸关键点检测领域带来新的突破。 首先,成功构建了一个卓越的2D人脸关键点检测基线模型。这一模型不仅集成了目前最优的关键点检测网络结构,…

sqlite3命令行工具无法退出问题处理

一、背景&#xff1a; 软件使用的后台数据库为sqlite&#xff0c;linux主机系统层面使用sqlite3命令行工具登录数据库后&#xff0c;无法执行sql脚本&#xff0c;无法退出sqlite3。无法执行ctrlc&#xff0c;执行ctrlz后sqlite3前台进程被中断&#xff0c;但是该进程没有退出。…

Spring-依赖查找

依赖查找 根据名称进行查找 实时查找 BeanFactory beanFactory new ClassPathXmlApplicationContext("beans.xml"); Object bean beanFactory.getBean("personHolder"); System.out.println(bean);xml如下: <bean id"person" class&qu…

运维自动化工具:Ansible 概念与模块详解

目录 前言 一、运维自动化工具有哪些 二、Ansible 概述 1、Ansible 概念 2、Ansible 特点 3、Ansible 工作流程 4、Ansible 架构 4.1 Ansible 组成 4.2 Ansible 命令执行来源 5、Ansible 的优缺点 三、Ansible 安装部署 1、环境部署 2、管理节点安装 Ansible 3、…

Golang | Leetcode Golang题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; func sortColors(nums []int) {p0, p2 : 0, len(nums)-1for i : 0; i < p2; i {for ; i < p2 && nums[i] 2; p2-- {nums[i], nums[p2] nums[p2], nums[i]}if nums[i] 0 {nums[i], nums[p0] nums[p0], nums[i]p0}} }

模型全参数训练和LoRA微调所需显存的分析

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

k8s调度原理以及自定义调度器

kube-scheduler 是 kubernetes 的核心组件之一&#xff0c;主要负责整个集群资源的调度功能&#xff0c;根据特定的调度算法和策略&#xff0c;将 Pod 调度到最优的工作节点上面去&#xff0c;从而更加合理、更加充分的利用集群的资源&#xff0c;这也是我们选择使用 kubernete…

java--io流(一)

1. 前置知识 字符集是什么&#xff1f; 字符集&#xff08;Character Set&#xff09;是一组字符的集合&#xff0c;它定义了可以在计算机系统中使用的所有字符。字符集可以包括字母、数字、标点符号、控制字符、图形符号等。字符集使得计算机能够存储、处理和显示各种语言和…

嵌入式Linux学习第四天启动方式学习

嵌入式Linux学习第四天 今天学习I.MX6U 启动方式详解。I.MX6U有多种启动方式&#xff0c;可以从 SD/EMMC、NAND Flash、QSPI Flash等启动。 启动方式选择 BOOT 的处理过程是发生在 I.MX6U 芯片上电以后&#xff0c;芯片会根据 BOOT_MODE[1:0]的设置来选择 BOOT 方式。BOOT_M…

Linux——基础IO2

引入 之前在Linux——基础IO(1)中我们讲的都是(进程打开的文件)被打开的文件 那些未被打开的文件呢&#xff1f; 大部分的文件都是没有被打开的文件&#xff0c;这些文件在哪保存&#xff1f;磁盘(SSD) OS要不要管理磁盘上的文件&#xff1f;(如何让OS快速定位一个文件) 要…

数据仓库与数据挖掘实验练习3-4(实验二2024.5.8)

练习3 1.简单文件操作练习 import pandas as pd # 读取文件 pd.read_csv(pokemon.csv) # 读取 CSV 文件的函数调用&#xff0c;它将文件中的数据加载到 DataFrame 中&#xff0c;并指定了 Pokemon 列作为索引列。 pd.read_csv(pokemon.csv,index_colPokemon)#查看类型 type(p…