搜索
首页科技周边人工智能为了保护客户隐私,使用Ruby在本地运行开源AI模型

为了保护客户隐私,使用Ruby在本地运行开源AI模型

Mar 18, 2024 pm 09:40 PM
人工智能安全敏感数据

译者 | 陈峻

审校 | 重楼

最近,我们实施了一个定制化的人工智能(AI)项目。鉴于甲方持有着非常敏感的客户信息,为了安全起见,我们不能将它们传递给OpenAI或其他专有模型。因此,我们在AWS虚拟机中下载并运行了一个开源的AI模型,使之完全处于我们的控制之下。同时,Rails应用可以在安全的环境中,对AI进行API调用。当然,如果不必考虑安全问题,我们更倾向于直接与OpenAI合作。

为了保护客户隐私,使用Ruby在本地运行开源AI模型

下面,我将和大家分享如何在本地下载开源的AI模型,让它运行起来,以及如何针对其运行Ruby脚本。

为什么要定制?

这个项目的动机很简单:数据安全。在处理敏感的客户信息时,最可靠的做法通常是在公司内部进行。因此,我们需要定制化的AI模型,在提供更高级别的安全控制和隐私保护方面发挥作用。

开源模式

在过去的6个月里,市场上出现了诸如:MistralMixtralLama等大量开源的AI模型。它们虽然没有GPT-4那么强大,但是其中不少模型的性能已经超过了GPT-3.5,而且随着时间的推移,它们会越来越强。当然,该选用哪种模型,则完全取决于您的处理能力和需要实现的目标。

由于我们将在本地运行AI模型,因此选择了大小约为4GBMistral。它在大多数指标上都优于GPT-3.5。尽管Mixtral的性能优于Mistral,但它是一个庞大的模型,至少需要48GB内存才能运行。

参数

在谈论大语言模型(LLM)时,我们往往会考虑提到它们的参数大小。在此,我们将在本地运行的Mistral模型是一个70亿参数的模型(当然,Mixtral拥有700亿个参数,而GPT-3.5大约有1750亿个参数)。

通常,大型语言模型使用基于神经网络的技术。神经网络是由神经元组成的,每个神经元与下一层的所有其他神经元相连。

为了保护客户隐私,使用Ruby在本地运行开源AI模型

如上图所示,每个连接都有一个权重,通常用百分比表示。每个神经元还有一个偏差(bias),当数据通过某个节点时,偏差会对数据进行修正。

神经网络的目的是要“学到”一种先进的算法、一种模式匹配的算法。通过在大量文本中接受训练,它将逐渐学会预测文本模式的能力,进而对我们给出的提示做出有意义的回应。简单而言,参数就是模型中权重和偏差的数量。它可以让我们了解神经网络中有多少个神经元。例如,对于一个70亿参数的模型来说,大约有100层,每层都有数千个神经元。

在本地运行模型

要在本地运行开源模型,首先必须下载相关应用。虽然市场上有多种选择,但是我发现最简单,也便于在英特尔Mac上运行的是Ollama

虽然Ollama目前只能在MacLinux上运行,不过它未来还能运行在Windows上。当然,您可以在Windows上使用WSL(Windows Subsystem for Linux)来运行Linux shell

Ollama不但允许您下载并运行各种开源模型,而且会在本地端口上打开模型,让您能够通过Ruby代码进行API调用。这便方便了Ruby开发者编写能够与本地模型相集成的Ruby应用。

获取Ollama

由于Ollama主要基于命令行,因此在MacLinux系统上安装Ollama非常简单。您只需通过链接https://www.php.cn/link/04c7f37f2420f0532d7f0e062ff2d5b5下载Ollama,花5分钟左右时间安装软件包,再运行模型即可。

为了保护客户隐私,使用Ruby在本地运行开源AI模型

安装首个模型

在设置并运行Ollama之后,您将在浏览器的任务栏中看到Ollama图标。这意味着它正在后台运行,并可运行您的模型。为了下载模型,您可以打开终端并运行如下命令:

ollama run mistral

由于Mistral约有4GB大小,因此您需要花一段时间完成下载。下载完成后,它将自动打开Ollama提示符,以便您与Mistral进行交互和通信。

为了保护客户隐私,使用Ruby在本地运行开源AI模型

下一次您再通过Ollama运行mistral时,便可直接运行相应的模型了。

定制模型

类似我们在OpenAI中创建自定义的GPT,通过Ollama,您可以对基础模型进行定制。在此,我们可以简单地创建一个自定义的模型。更多详细案例,请参考Ollama的联机文档。

首先,您可以创建一个Modelfile(模型文件),并在其中添加如下文本:

FROM mistral# Set the temperature set the randomness or creativity of the responsePARAMETER temperature 0.3# Set the system messageSYSTEM ”””You are an excerpt Ruby developer. You will be asked questions about the Ruby Programminglanguage. You will provide an explanation along with code examples.”””

上面出现的系统消息是AI模型做出特定反应的基础。

接着,您可以在终端上运行如下命令,以创建新的模型:

ollama create <model-name> -f './Modelfile</model-name>

在我们的项目案例中,我将该模型命名为Ruby

ollama create ruby -f './Modelfile'

同时,您可以使用如下命令罗列显示自己的现有模型:

ollama list

为了保护客户隐私,使用Ruby在本地运行开源AI模型

至此您可以用如下命令运行自定义的模型了:

Ollama run ruby

与Ruby集成

虽然Ollama尚没有专用的gem,但是Ruby开发人员可以使用基本的HTTP请求方法与模型进行交互。在后台运行的Ollama可以通过11434端口打开模型,因此您可以通过“https://www.php.cn/link/dcd3f83c96576c0fd437286a1ff6f1f0”访问它。此外,OllamaAPI的文档也为聊天对话和创建嵌入等基本命令提供了不同的端点。

在本项目案例中,我们希望使用/api/chat端点向AI模型发送提示。下图展示了一些与模型交互的基本Ruby代码:

为了保护客户隐私,使用Ruby在本地运行开源AI模型

上述Ruby代码段的功能包括:

  1. 通过“net/http”、“uri”和“json”三个库,分别执行HTTP请求、解析URI和处理JSON数据。
  2. 创建包含API端点地址(https://www.php.cn/link/dcd3f83c96576c0fd437286a1ff6f1f0/api/chat)的URI对象。
  3. 使用以URI为参数的Net::HTTP::Post.new方法,创建新的HTTP POST请求。
  4. 请求的正文被设置为一个代表了哈希值的JSON字符串。该哈希值包含了三个键:“模型”、“消息”和“流”。其中,
  1. 模型键被设置为“ruby”,也就是我们的模型;
  2. 消息键被设置为一个数组,其中包含了代表用户消息的单个哈希值;
  3. 而流键被设置为false
  4. 系统引导模型该如何回应信息。我们已经在Modelfile中予以了设置。
  5. 用户信息是我们的标准提示。
  6. 模型会以辅助信息作出回应。
  1. 消息哈希遵循与AI模型交叉的模式。它带有一个角色和内容。此处的角色可以是系统、用户和辅助。其中,
  2. HTTP请求使用Net::HTTP.start方法被发送。该方法会打开与指定主机名和端口的网络连接,然后发送请求。连接的读取超时时间被设置为120秒,毕竟我运行的是2019款英特尔Mac,所以响应速度可能有点慢。而在相应的AWS服务器上运行时,这将不是问题。
  3. 服务器的响应被存储在“response”变量中。

案例小结

如上所述,运行本地AI模型的真正价值体现在,协助持有敏感数据的公司,处理电子邮件或文档等非结构化的数据,并提取有价值的结构化信息。在我们参加的项目案例中,我们对客户关系管理(CRM)系统中的所有客户信息进行了模型培训。据此,用户可以询问其任何有关客户的问题,而无需翻阅数百份记录。

译者介绍

陈峻(Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。

原文标题:How To Run Open-Source AI Models Locally With Ruby,作者:Kane Hooper

以上是为了保护客户隐私,使用Ruby在本地运行开源AI模型的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
7强大的AI提示每个项目经理现在需要掌握7强大的AI提示每个项目经理现在需要掌握May 08, 2025 am 11:39 AM

聊天机器人诸如Chatgpt之类的聊天机器人举例说明了生成的AI,为项目经理提供了功能强大的工具来简化工作流程并确保项目按计划和预算范围内保持。 但是,在制作正确的提示时有效使用铰链。 精确,细节

通过AI本身的有益协助,定义难以捉摸的AGI的含义不明的含义通过AI本身的有益协助,定义难以捉摸的AGI的含义不明的含义May 08, 2025 am 11:37 AM

定义人工智能(AGI)的挑战是重大的。 AGI进步的主张通常缺乏明确的基准,其定义是针对预定的研究方向而定制的。本文探讨了一种新颖的定义方法

IBM认为2025展示watsonx.data在生成AI中的作用IBM认为2025展示watsonx.data在生成AI中的作用May 08, 2025 am 11:32 AM

IBM WATSONX.DATA:简化企业AI数据堆栈 IBM将watsonx.data定位为企业的关键平台,旨在加速精确且可扩展的生成AI解决方案。 这是通过简化投诉来实现的

人形机器人机器的崛起即将到来。人形机器人机器的崛起即将到来。May 08, 2025 am 11:29 AM

在AI和材料科学领域的突破所推动的机器人技术的快速进步已准备好迎来人类机器人的新时代。 多年来,工业自动化一直是主要重点,但是机器人的功能迅速exp

Netflix重新修改界面 - 首次亮相AI搜索工具和类似Tiktok的设计Netflix重新修改界面 - 首次亮相AI搜索工具和类似Tiktok的设计May 08, 2025 am 11:25 AM

Netflix 界面十年来最大更新:更智能、更个性化,拥抱多元内容 Netflix 周三宣布对其用户界面进行十年来最大规模的改版,不仅外观焕然一新,还增加了更多关于每个节目的信息,并引入了更智能的 AI 搜索工具,能够理解模糊的概念(例如“氛围”),以及更灵活的结构,以便更好地展示公司在新兴的视频游戏、直播活动、体育赛事和其他新型内容方面的兴趣。 为了紧跟潮流,新的移动端竖屏视频组件将使粉丝更容易滚动浏览预告片和片段,观看完整节目或与他人分享内容。这让人联想起无限滚动且非常成功的短视频网站 Ti

在AGI之前很久:三个AI里程碑会挑战您在AGI之前很久:三个AI里程碑会挑战您May 08, 2025 am 11:24 AM

人工智能通用智能(AGI)的讨论日益增多,促使许多人思考当人工智能超越人类智能时会发生什么。这个时刻是近在咫尺还是遥遥无期,取决于你问谁,但我认为这并非我们应该关注的最重要的里程碑。哪些更早的人工智能里程碑会影响到每个人?哪些里程碑已经实现?以下是我认为已经发生的三件事。 人工智能超越人类弱点 在2022年的电影《社交困境》中,人文科技中心(Center for Humane Technology)的崔斯坦·哈里斯指出,人工智能已经超越了人类的弱点。这是什么意思?这意味着人工智能已经能够运用人类

Venkat Achanta在Transunion的平台转型和AI野心Venkat Achanta在Transunion的平台转型和AI野心May 08, 2025 am 11:23 AM

Transunion的首席技术官Ranganath Achanta在2021年末加入公司后加入公司以来,率先进行了重大的技术转变。

当对AI的信任跃升时,生产力会随之而来当对AI的信任跃升时,生产力会随之而来May 08, 2025 am 11:11 AM

建立信任至关重要,对于成功采用业务的AI是至关重要的。 考虑到业务流程中的人类因素,这尤其如此。 像其他任何人一样,员工对AI及其实施引起了人们的关注。 德勤研究人员是SC

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器