原文:
towardsdatascience.com/how-to-chat-with-any-open-source-llm-for-free-with-your-iphone-5fa7549efa9a
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fa516472e529eac563770b2712b60cf2.png
开源 “ChatGPT” UI 演示。图片由作者提供。
烦于支付昂贵的订阅费,或者担心将您的个人数据与 OpenAI 分享?
如果有免费且更安全的替代方案,使用非常强大的开源模型会怎样?
如果您对此感兴趣,那么这份指南就是为您准备的。让我们一起在我们的 iPhone 上构建自己的 “ChatGPT”,由最强大的开源模型驱动!
在后端,我们将利用Ollama和 Google Colab 的免费 T4 GPU来服务 LLMs。对于前端,我们将使用Enchanted,一个优雅的开源 iOS 应用程序,来与 Llama 2、Mistral、Phi-2 等模型进行交互。
在本指南结束时,您将拥有一个强大的 AI 在您的指尖——而且一分钱都不用花。最好的部分是?您可以轻松地在根据您的需求切换到最佳开源模型之间!
准备好了吗?让我们深入探讨!
关键组件的快速概述
要构建我们的开源 “ChatGPT”,我们将使用以下关键组件:
Google Colab 笔记本
Ollama:一个开源工具,允许本地运行开源大型语言模型,如 Llama 2。
NGrok:一个工具,可以以最小的努力将本地开发服务器暴露给互联网。本质上,它为您的主机创建了一个安全隧道,允许您在本地开发机器上共享一个网络服务,而无需更改防火墙设置或部署到公共服务器。
Enchanted:一个开源的 iOS/iPad 移动应用程序,用于与私有托管模型进行聊天。
Google Colab
Google Colab 是由 Google 托管的免费云服务,允许任何人通过浏览器编写和执行 Python 代码。
即使是免费账户,它也提供了访问 12GB RAM 的 T4 GPU,这对于运行 Mistral 7B 或 Llama 7B 这样的模型来说已经足够了。因为运行 7B 模型需要 8GB 的 RAM。
Ollama
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d96fbff02aa4319ad48e51b1b592df67.png
Ollamaollama.ai/
Ollama 对于我来说,是最好也是最简单的方式之一,可以快速开始使用开源 LLMs。它支持包括最强大的 LLMs,如 Llama 2、Mistral、Phi-2,您可以在 ollama.ai/library 上找到可用模型的列表。
Ngrok
Ngrok 是一个易于使用的工具,允许开发者以最小的努力将本地开发服务器暴露给互联网。本质上,它为您的主机创建了一个安全隧道,允许您在本地开发机器上共享一个网络服务,而无需更改防火墙设置或部署到公共服务器。
Enchanted
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e60d0158211b332bedfd0caf56babbb0.png
Enchanted LLM
Enchanted 是一款 iOS/iPad 移动应用程序,用于与开源模型如 Llama 2、Mistral 等进行聊天。
它具有简单优雅的界面,连接到您的私有 Ollama 模型。它提供以下功能:
- 支持最新的 Ollama Chat API
- 对话历史包含在 API 调用中
- 暗色/亮色模式
- 对话历史存储在您的设备上
- 支持 Markdown(优雅地显示表格/列表/代码块)
- 语音提示
- 用于提示的图片附件
- 指定每个对话使用的系统提示
- 编辑消息内容或使用不同模型提交消息
- 删除单个对话 / 删除所有对话
来源:Enchanted Github
您需要什么
在深入技术设置之前,请确保您有以下条件:
1. Google Colab 账户
要使用 Google Colab,您首先需要登录您的 Google 账户,并通过colab.research.google.com/访问 Google Colab。
2. NGrok 账户和令牌
前往 NGrok 网站 并注册,如果您还没有账户的话。否则,登录,并请求一个 “Authtoken”。请安全地保存此令牌;我们将在我们的分步指南中稍后使用它。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ee5b21a0b11a2eaca14c3c3bd006b8f7.png
需要 Authtoken。图片由作者提供。
3. 从 App Store 下载 Enchanted
通过以下链接在您的 iPhone 上下载并安装 Enchanted 应用程序:apps.apple.com/gb/app/enchanted-llm/id6474268307。
步骤指南
第一步 – 在 Google Colab 上运行 Ollama
首先,打开一个新的 Google Colab 笔记本。为了确保我们正在使用 GPU,点击菜单中的“运行时”,选择“更改运行时类型”,然后选择“T4 GPU”作为硬件加速器。
现在,我们需要安装与 Ngrok 相关的依赖项并配置 authtoken。
!pip install aiohttp pyngrok !ngrok config add-authtoken[YOUR_NGROK_AUTHTOKEN]然后,我们使用以下命令安装 Ollama。
!curl https://ollama.ai/install.sh|sh现在,是时候在 NGrok 旁边运行 Ollama 了。在这个例子中,我们将配置 Ollama 同时运行 Mistral 和 Codellama 模型。这种设置允许我们稍后切换模型,为我们的聊天应用提供灵活性。
为了管理这些,我们将作为单独的后台进程运行它们:
Ollama 将在
localhost:11434上启动模型。然后,NGrok 将将端口
11434公开到互联网,并带有公共 URL。
执行以下代码片段以启动 Ollama 和 NGrok:
importosimportasyncio# Set LD_LIBRARY_PATH so the system NVIDIA libraryos.environ.update({'LD_LIBRARY_PATH':'/usr/lib64-nvidia'})asyncdefrun_process(cmd):print('>>> starting',*cmd)p=awaitasyncio.subprocess.create_subprocess_exec(*cmd,stdout=asyncio.subprocess.PIPE,stderr=asyncio.subprocess.PIPE,)asyncdefpipe(lines):asyncforlineinlines:print(line.strip().decode('utf-8'))awaitasyncio.gather(pipe(p.stdout),pipe(p.stderr),)awaitasyncio.gather(run_process(['ollama','serve']),run_process(['ollama','pull','mistral']),run_process(['ollama','pull','codellama']),run_process(['ngrok','http','--log','stderr','11434']),)运行代码后,请关注日志。您将找到 NGrok 生成的公共 URL。让我们记下这个 URL,因为我们将在下一步中使用它通过 Enchanted 应用程序将我们的模型与 iPhone 连接起来。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a79959b4ef4637d69744723639d5222f.png
日志示例。图片由作者提供。
第二步 – 在 Enchanted App 中配置端点
此步骤将连接 LLM 模型与您的 iPhone。
现在,切换到你的 iPhone,打开神秘应用,进入应用设置。指定你的服务器端点,使用我们在上一步登录时记录的公共 URL。它应该看起来像这样:“bb51-34-29-149-225.ngrok.io”。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/55788ba24a7362ea13b04510182d47dd.png
神秘应用设置。图片由作者提供
第 3 步 – 尝试并享受乐趣
好了!现在我们可以用我们的 iPhone 与 Mistral 7B 和 Codellama 进行聊天。
首先,让我们选择 Codellama 模型,并要求它给我们一个在 Python 中实现神经网络的代码示例。不错!
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d746d6436e730f7c84b8b8145864f5e8.png
与 codellama 的演示。图片由作者提供。
然后,迅速切换到 Mistral 7B,并考虑询问一些关于庆祝农历新年时可以准备哪些典型菜肴的想法(灵感来源于我的朋友汉·HELOIR,博士 ☕️最新文章“使用 AI 庆祝:Mistral 和 LLaVA 在树莓派上的农历新年技巧”)。
https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4ae6b3e3361a15fb4e9c7c608ece6b39.png
与 Mistral 的演示。图片由作者提供
结束语
我对我用开源 ChatGPT 获得的结果非常满意,包括响应的质量和令牌生成的速度。我对 UI 也非常满意,它非常简单易用。
我希望你喜欢这个指南,并从中获得灵感去探索开源 AI 的广阔天地。不要犹豫,回到 Ollama 并尝试不同的模型。每个模型都有其独特的优势和功能,提供不同的体验。
如同往常,你可以在这里找到我的 Google Colab 笔记本。
在你离开之前!🦸🏻♀️
如果你喜欢我的故事,并想支持我:
给 Medium 一些爱💕(点赞、评论和突出显示),你的支持对我来说意义重大。👏
在 Medium 上关注我并订阅以获取我的最新文章🫶