当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 使用Ruby在本地运行开源AI模型以维护客户隐私

使用Ruby在本地运行开源AI模型以维护客户隐私

来源:51CTO.COM 2024-03-19 12:27:38 0浏览 收藏

为了在维护客户隐私的前提下使用 AI 模型,我们可以选择本地运行开源 AI 模型。本文将介绍如何使用 Ollama 在本地下载和运行 Mistral 模型,以及如何使用 Ruby 脚本与模型进行交互。通过这种方法,我们可以完全控制 AI 模型,并在安全的环境中对敏感数据进行处理。

译者 | 陈峻

审校 | 重楼

最近,我们实施了一个定制化的人工智能(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://olama.ai/下载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

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

ollama create ruby -f './Modelfile'

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

ollama list

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

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

Ollama run ruby

与Ruby集成

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

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

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

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

  1. 通过“net/http”、“uri”和“json”三个库,分别执行HTTP请求、解析URI和处理JSON数据。
  2. 创建包含API端点地址(http://localhost:11434/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模型以维护客户隐私》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于人工智能,安全的内容请关注golang学习网公众号!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
labstack/echo中的日志消息如何保存到文件labstack/echo中的日志消息如何保存到文件
上一篇
labstack/echo中的日志消息如何保存到文件
如何解密已加密的Windows 10磁盘BitLocker
下一篇
如何解密已加密的Windows 10磁盘BitLocker
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 茅茅虫AIGC检测:精准识别AI生成内容,保障学术诚信
    茅茅虫AIGC检测
    茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
    92次使用
  • 赛林匹克平台:科技赛事聚合,赋能AI、算力、量子计算创新
    赛林匹克平台(Challympics)
    探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
    100次使用
  • SEO  笔格AIPPT:AI智能PPT制作,免费生成,高效演示
    笔格AIPPT
    SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
    103次使用
  • 稿定PPT:在线AI演示设计,高效PPT制作工具
    稿定PPT
    告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
    99次使用
  • Suno苏诺中文版:AI音乐创作平台,人人都是音乐家
    Suno苏诺中文版
    探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
    97次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码