RRoy 发表于 2024-7-16 17:19:08

让你的所有苹果设备实现AI大模型自由!私有化部署大...

本帖最后由 RRoy 于 2024-7-16 17:19 编辑

上期的【保姆级教程】小爱同学+AI!魔改小爱音箱,接入本地AI大模型,打造你的专属语音助手!不少小伙伴表示感兴趣,这一期我们继续搞大模型,同样用Ollama。

通过这篇文章,我们最终会实现:

大模型跑在本地的Mac上,通过ngrok穿透,让所有能联网的 iOS 生态系统(macOS、iOS、WatchOS、Vision Pro)中的所有设备都能用上端侧大模型,实现无过滤、安全、私密和多模态的体验。

MacBook:





iPhone:





Vision Pro:





实际演示:
https://dfrobot.loll.cc/video/RPReplay.MP4




1. Mac安装端侧大模型
这部分上一期已经完成的可以直接跳到下一部分2. 在Mac上使用ngrok。
1.1 安装Ollama
在准备我们的本地大模型之前,我们先安装Ollama。

Ollama你也可以理解成一个容器平台类似的东西,我们的本地AI模型是跑在Ollama上(因为本机不通过Ollama直接跑模型的话需要搞一堆复杂的配置,跑Ollama上就会简单很多)

我们直接来到官网:https://ollama.com/



点击Download下载,



选择自己的操作系统下载即可。

下载完成之后也一样打开。



就是这个小羊驼。

接着,我们同样然后Mac上打开“终端”

输入ollama -v



出现版本号证明我们安装好了。

浏览器上访问:http://localhost:11433/或者http://127.0.0.1:11433/

会出现Ollama is running


1.2 下载本地AI模型
接下来我们就可以来下载本地AI模型了。

细心的小伙伴可能已经发现了,刚ollama的右上角有一个“Models”



点进去就能看到有很多模型可以下载。



比如非常火的llama3、阿里的千问等等。



然后我们看到每个模型的下面有蓝色的8B、70B的字样,这个其实就是参数量(B代表Billion,十亿),一般来说,参数量越大,模型越牛逼。当然也越消耗机器的性能,如果你机器的配置足够高的话,可以下载参数量大一些的模型试试。

比如这个llama3的700亿参数的模型,大小是40G左右,(对比GPT-4 估计拥有约 1.8 万亿个参数)



下载方法是:ollama run llama3:70b

Mac上打开“终端”



它就会自己去下载这个40G的模型了。

当然相信绝大多数人都跑不动这个“大”模型(机器性能不够)

所以最近有一个词火了起来"小语言模型“(SLM,Small Language Model),对应于”大语言模型“(LLM,Large Language Model)

小语言模型的最大优势就是参数小但是性能不弱,对机器的配置要求也会低一些,之后甚至可能可以在手机、树莓派这些设备上很好运行。

4 月底,微软发布了其 Phi-3 SLM 系列,拥有 38 亿到 140 亿个参数(3.8B——14B之间)。

在一系列测试中,微软最小的模型 Phi-3-mini 与 OpenAI 的 GPT-3.5(1750 亿个参数)不相上下,其表现也优于谷歌的 Gemma(70 亿个参数)。



测试通过向模型提出有关数学、哲学、法律等方面的问题,评估了模型对语言的理解能力。

更有趣的是,拥有 70 亿个参数的微软 Phi-3-small 在许多基准测试中的表现都明显优于 GPT-3.5。

资料来自:https://m.ithome.com/html/779732.htm

所以我们就来装一个Phi-3试试吧。





Mac上打开“终端”

运行:
ollama run phi3

第一次ollama会去下载这个模型,下载完之后会出现这个个交互界面:



其实这个时候我们已经可以和模型对话了。

直接输入:hi

它会回复我们:



我们先输入:/bye 退出,一会儿再来用它。


2. 在Mac上使用ngrok
本地大模型搞定了,Mac本机上已经可以访问了,但是这还不够。

我们现在想要在我们的iPhone上或者iPad上也能访问,希望在任何地方都能用上这个部署的模型,应该怎么做呢?

我们可以借助ngrok这个东西来完成。

ngrok是一个反向代理工具,它允许你将本地运行的服务器暴露到公网上,提供一个通过互联网可访问的公网URL。这使得无需进行复杂的网络配置或拥有公网IP,你就可以轻松地进行Web开发测试、演示或其他需要公网访问的场景。ngrok支持多种协议,包括HTTP、HTTPS和TCP,并提供安全的隧道服务。使用ngrok可以极大地简化开发和测试过程,提高效率。

刚刚上面提到,ollama运行的时候,访问http://localhost:11433/或者http://127.0.0.1:11433/



会显示Ollama is running,但是由于localhost和127.0.0.1都是本地地址,只有本地可以访问,我们借助ngrok这个工具,把http://localhost:11433/或者http://127.0.0.1:11433/变成一个类似www.baidu.com的地址,是不是就可以在任何有互联网的地方访问了?!
2.1 下载ngrok
打开浏览器,访问ngrok的官方网站:https://ngrok.com/



点击网站上的“Sign up”进行注册,或者“Log in”如果你已经有账号。

验证邮箱:



点击邮件链接之后,这个之后会有一个二维码,让你用1Password, Google Authenticator, 或者Microsoft Authenticator这几个APP来扫描,做二步验证用的。



记得保存好后面的代码,万一手机丢了可以恢复。
2.2 安装ngrok




可以看到提供了两种安装方式:

(一)通过homebrew来安装:
brew install ngrok/ngrok/ngrok

做一个账号绑定:
ngrok config add-authtoken 2j5XZ1512rSs4pjUn6Nj_4HWtzdaklejawo12343alodjieHZ

(二)通过普通方式安装(记得同样需要账号绑定):


2.3 使用ngrok
在终端中,你可以通过下面的命令来启动一个HTTP隧道,代理本地的某个端口(如代理本地的11434端口):


ngrok http 11434 --host-header="localhost:11434"

运行该命令后,ngrok会提供一个公网可访问的URL,通过这个URL可以访问到你本地运行的服务。
2.4 确认ngrok运行
当你运行ngrok命令后,终端会显示当前隧道的状态,包括公网URL等信息。

运行情况:



每次运行会变的:



我们需要的就是
Forwarding                  https://09e1-173-81-26-133.ngrok-free.app -> http://localhost:11434

https://09e1-173-81-26-133.ngrok-free.app 这个是我们需要的网址。

注意,不要关闭这个窗口。

在任意设备(只要能联网)访问它:



点击Visit site

显示这个Ollama is running说明成功了!



使用ngrok可以非常方便地将你的本地服务器暴露到公网上,非常适合进行Web开发的测试和演示。记得每次使用时都要检查安全设置,确保不会暴露敏感数据。
3. Enchanted app下载
OK,万事俱备,就差一个用户访问的前端了,这边我们可以用Enchanted这个APP。

Enchanted 是一款适用于 iOS 和 macOS 的应用程序,可使用 Ollama 与私有自托管语言模型(如 Llama2、Mistral 或 Vicuna)进行聊天。

GitHub地址:https://github.com/AugustDev/enchanted?tab=readme-ov-file

App Store下载地址:https://apps.apple.com/gb/app/enchanted-llm/id6474268307



Enchanted支持如下功能:

[*]文本转语音(朗读)
[*]API 调用中包含的对话历史
[*]暗/亮模式
[*]对话历史存储在您的设备上
[*]支持Markdown(优雅显示表格/列表/代码块)
[*]语音提示
[*]为提示添加图像附件
[*]指定系统提示用于每次对话
[*]编辑消息内容或使用不同模型提交消息
[*]删除单个对话/删除所有对话记录
[*]macOS Spotlight 面板 Ctrl+⌘+K快速调出
[*]所有功能离线工作
4. 连接Enchanted与本地Ollama


到设置里面,填入我们刚刚的那个公网可访问的URL,就可以使用了!

模型展示


5. 使用与演示




语音输入暂时只支持英文貌似。

我说你好,识别成了Yeehaw





支持文本转语音(同样不支持中文):





官方演示视频:


https://dfrobot.loll.cc/video/Enchanted%20v1.4.3.mp4


赶紧玩起来吧!

此文首发于:DF创客社区

转载请注明来源信息



Ski 发表于 2024-7-17 11:00:04

可以可以{:6_213:}

RRoy 发表于 2024-7-24 15:24:20

Ski 发表于 2024-7-17 11:00
可以可以

{:5_125:}
页: [1]
查看完整版本: 让你的所有苹果设备实现AI大模型自由!私有化部署大...