目录
🍅点击这里查看所有博文
随着人工智能技术的飞速发展,AI已经不再是遥不可及的高科技概念,而是逐渐融入到我们的日常生活中。从智能手机的语音助手到家庭中的智能音箱,再到工业自动化和医疗诊断,AI的应用无处不在。然而,要想真正掌握并应用这些技术,不仅需要理论知识,更需要实践操作。这正是嵌入式AI学习的核心所在。
嵌入式系统,作为现代电子设备的核心,其与AI技术的结合,为智能设备的开发提供了无限可能
。从简单的自动化任务到复杂的图像和语音识别,嵌入式AI开发板成为了学习这些技术的理想平台。它们不仅易于操作,而且功能强大,能够满足从初学者到专业人士的各种需求。
对于大多数人来说,日常生活中的无时无刻都能接触的到AI应用。比如平时最常见的停车场的车牌识别
、上班打卡机的人脸识别
、能自由对话的语音助手
等等。它们都有一个共同的特点,就是体积小巧且功能强大。这些应用的落地都离不开嵌入式AI。
随着AI技术的不断发展和普及,我们的生活将变得更加智能、便捷和高效。未来,AI将继续深入到更多领域,为我们的生活带来更多惊喜和便利。无论是智能家居
、智能交通
、智能医疗
还是智能制造
,AI都将扮演着重要的角色,推动着科技的不断进步和社会的发展。
因此,学习和掌握AI技术变得愈发重要。只有不断学习、实践和创新
,我们才能更好地应对未来的挑战和机遇。
本系列博客所述资料均来自互联网资料
,并不是本人原创(只有博客是自己写的)。出于热心,本人将自己的所学笔记整理并推出相对应的使用教程,方面其他人学习。为国内的AI事业发展尽自己的一份绵薄之力,没有为自己谋取私利的想法
。若出现侵权现象,请告知本人,本人会立即停止更新,并删除相应的文章和代码。
文章目录
- 目录
- 安装ollama
- 配置局域网访问
- 部署通义千问
- 安装ollama-webui
安装ollama
安装ollama
,该工具是一个大模型聚合平台。可以方便管理各种语言模型。运行curl -fsSL https://ollama.com/install.sh | sh
执行安装步骤,输入密码Mind@123
。
(base) HwHiAiUser@orangepiaipro:~$ curl -fsSL https://ollama.com/install.sh | sh
>>> Downloading ollama...
######################################################################## 100.0%##O#-#
>>> Installing ollama to /usr/local/bin...
[sudo] password for HwHiAiUser:
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
提示开发板没有GPU显卡(WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
)运行的性能可能较为低下,不知道具体是啥原因暂且忽略吧。
输入ollama --version
验证是否安装成功,得到结果ollama version is 0.2.7
说明一切正常。
(base) HwHiAiUser@orangepiaipro:~/Downloads/byte-unixbench/UnixBench$ ollama --version
ollama version is 0.2.7
配置局域网访问
设置Ollama
配置支持局域网访问,修改/etc/systemd/system/ollama.service
文件,在Environment
下面再添加一行Environment="OLLAMA_HOST=0.0.0.0:11434"
保存即可。
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/home/HwHiAiUser/.local/bin:/usr/local/Ascend/ascend-toolkit/latest/bin:/usr/local/Ascend/ascend-toolkit/latest/compiler/ccec_compiler/bin:/usr/local/miniconda3/bin:/usr/local/miniconda3/condabin:/usr/local/Ascend/ascend-toolkit/laster/bin:/usr/local/Ascend/ascend-toolkit/laster/compiler/ccec_compiler/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin "
Environment="OLLAMA_HOST=0.0.0.0:11434"
[Install]
WantedBy=default.target
运行sudo systemctl daemon-reload
重载systemctl
,紧接着运行sudo service ollama restart
重启服务,最后通过curl http://192.168.101.8:11434
测试,若返回Ollama is running
则代表设置成功。
(base) HwHiAiUser@orangepiaipro:~$ sudo systemctl daemon-reload
(base) HwHiAiUser@orangepiaipro:~$ sudo service ollama restart
(base) HwHiAiUser@orangepiaipro:~$ curl http://192.168.101.8:11434
Ollama is running(base)
部署通义千问
根据ollama官方文档的描述,最少要有8G的内存才能使用7B的语言模型。
Model | Parameters | Size | Download |
---|---|---|---|
Llama 3 | 8B | 4.7GB | ollama run llama3 |
Llama 3 | 70B | 40GB | ollama run llama3:70b |
Phi 3 Mini | 3.8B | 2.3GB | ollama run phi3 |
Phi 3 Medium | 14B | 7.9GB | ollama run phi3:medium |
Gemma 2 | 9B | 5.5GB | ollama run gemma2 |
Gemma 2 | 27B | 16GB | ollama run gemma2:27b |
Mistral | 7B | 4.1GB | ollama run mistral |
Moondream 2 | 1.4B | 829MB | ollama run moondream |
Neural Chat | 7B | 4.1GB | ollama run neural-chat |
Starling | 7B | 4.1GB | ollama run starling-lm |
Code Llama | 7B | 3.8GB | ollama run codellama |
Llama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
LLaVA | 7B | 4.5GB | ollama run llava |
Solar | 10.7B | 6.1GB | ollama run solar |
Note: You should have at least 8 GB of RAM available to run the 7B models, 16 GB to run the 13B models, and 32 GB to run the 33B models.
而我们的开发板一共就搭载了8G内存,出掉系统的开销,剩下可以用的也就6.3G。
(base) HwHiAiUser@orangepiaipro:~/Downloads/byte-unixbench/UnixBench$ free -h
total used free shared buff/cache available
Mem: 7.4Gi 859Mi 2.9Gi 49Mi 3.6Gi 6.3Gi
Swap: 0B 0B 0B
从表格来看,可选项只有Moondream 2
和Phi 3 Mini
。实际上官方的仓库内有很多的语言模型,我们只要找一个小于8B的就行。测试选用阿里系发布的通义千问大模型部署。运行命令ollama run qwen:0.5b
安装通义千问0.5B
。这个安装就比较费时了,在等待安装的过程中可以再开一个终端,继续下一步跳过等待的过程。
(base) HwHiAiUser@orangepiaipro:~$ ollama run qwen:0.5b
pulling manifest
pulling fad2a06e4cc7... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 394 MB
pulling 41c2cf8c272f... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 7.3 KB
pulling 1da0581fd4ce... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 130 B
pulling f02dd72bb242... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 59 B
pulling ea0a531a015b... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 485 B
verifying sha256 digest
writing manifest
removing any unused layers
success
部署完成后控制台是可以直接访问的,只不过控制台还是显得不够高端只能自己用,其他人想要使用该怎么办呢。
(base) HwHiAiUser@orangepiaipro:~$ ollama run qwen:0.5b
>>> 你好
您好!有什么可以帮助您的吗?
>>> 你是谁
我是来自阿里云的大规模语言模型,我叫通义千问。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持和解答。
>>>
安装ollama-webui
安装ollama
的前端交互界面,这里就用到了我们刚刚开发环境中安装的docker
。运行下面的命令安装open-webui
的容器。
(base) HwHiAiUser@orangepiaipro:~$ docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
ea235d1ccf77: Pull complete
26f13e32d8cd: Pull complete
e569c3fca503: Pull complete
8cae6dc67aef: Pull complete
153915d34d13: Pull complete
761886d9fb03: Pull complete
4f4fb700ef54: Pull complete
004754e7f3d1: Pull complete
4495941f96a2: Pull complete
2bb7e3b0ae41: Downloading [=======> ] 40.45MB/288.1MB
abd18b7d3c36: Download complete
49800a7fbb5c: Downloading [==> ] 32.38MB/727.9MB
25281b23f845: Downloading [==============================> ] 32.91MB/54.66MB
67196eb5d079: Waiting
85f88c980917: Waiting
48fbf4ab6c66: Waiting
安装完成后通过http://{ip}:{port}
访问open-webui
,我们这边使用的访问地址就是http://192.168.101.8:3000
,第一次登录需要注册账户。
注册完成会自动登录,登录进去后,必须找到管理员面板。
点击设置,先修改外部连接的Ollama API
的地址。我这边修改为http://192.168.101.8:11434
,点击后面的刷新按钮,确定弹窗提示已验证服务器连接。随后建议关掉OpenAI API的访问按钮,最后点击保存。
如果连接的Ollama API
这一步报错WebUI could not connect to Ollama
呢,这大概率是因为没有正确配置局域网访问导致的。
可以做如下测试,在开发板中执行curl http://192.168.101.8:11434
会报错Connection refused
。sudo lsof -i :11434
去查看端口状态显示localhost
,说明Ollama
被配置为只能使用localhost
去访问。
(base) HwHiAiUser@orangepiaipro:~$ curl http://192.168.101.8:11434
curl: (7) Failed to connect to 192.168.101.8 port 11434 after 0 ms: Connection refused
(base) HwHiAiUser@orangepiaipro:~$ sudo lsof -i :11434
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ollama 10749 ollama 3u IPv4 53543 0t0 TCP localhost:11434 (LISTEN)
(base) HwHiAiUser@orangepiaipro:~$ curl http://localhost:11434/
Ollama is running(base)
由于我们这边Ollama
被安装在了宿主机中,Ollama-webui
被安装到docker中,两者之间的网络环境是不一样的,无法在docker中通过localhost:11434
访问到Ollama
。这边我们需要修改一下配置文件,参考上面安装Ollama
提到的配置局域网访问即可。
回到主页,选择刚刚安装的千问0.5B,就可以快乐的玩耍啦。