搜尋
首頁科技週邊人工智慧為了保護客戶隱私,使用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模型,因此選擇了大小約為4GB Mistral。它在大多數指標上都優於GPT-3.5。儘管Mixtral的效能優於Mistral,但它是一個龐大的模型,至少需要48GB記憶體才能運作。

參數

#在談論大語言模型(LLM )時,我們往往會考慮提到它們的參數大小。在此,我們將在本地運行的Mistral模型是一個70億參數的模型(當然,Mixtral700億個參數,而GPT-3.5大約有

## 1750

億個參數)。 為了保護客戶隱私,使用Ruby在本地運行開源AI模型

通常,大型語言模型使用基於神經網路的技術。神經網路是由神經元組成的,每個神經元與下一層的所有其他神經元相連。

############################如上所示,每個連線都有一個權重,通常用百分比表示。每個神經元還有一個偏差(bias),當資料通過某個節點時,偏差會對資料進行修正。 ############

神經網路的目的是要「學到」一種先進的演算法、一種模式匹配的演算法。透過在大量文本中接受訓練,它將逐漸學會預測文本模式的能力,進而對我們給予的提示做出有意義的回應。簡單而言,參數就是模型中權重和偏差的數量。它可以讓我們了解神經網路中有多少個神經元。例如,對於一個70億參數的模型來說,大約有#100#層,每層都有數千個神經元。

在本機運行模型

#要在本機上執行開源模型,首先必須下載相關應用。雖然市面上有許多選擇,但我發現最簡單,也便於在英特爾Mac#上運行的是Ollama

雖然Ollama目前只能在Mac#和Linux上運行,不過它未來還能運行在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 Program Program. explanation along with code examples.”””
上面出現的系統訊息是AI模型做出特定反應的基礎。

接著,您可以在終端機上執行以下命令,以建立新的模型:

ollama create -f './Modelfile
在我們的專案案例中,我將此模型命名為

#Ruby

ollama create ruby​​ -f './Modelfile'
同時,您可以使用以下命令羅列顯示自己的現有模型:

ollama list

至此您可以用如下指令執行自訂的模型了:為了保護客戶隱私,使用Ruby在本地運行開源AI模型

Ollama run ruby​​
#<h4>
<span>與Ruby整合</span><span></span>
</h4><p><span>雖然Ollama尚沒有專用的</span><span>gem</span><span>,但</span><span>Ruby</span><span>開發人員可以使用基本的</span><span>HTTP</span><span>#請求方法與模型互動。在背景運行的Ollama可以透過</span><span>11434</span><span>連接埠開啟模型,因此您可以透過「</span><span><a href="https://www.php.cn/link/dcd3f83c96576c0fd437286a1ff6f1f0" rel="nofollow" target="_blank">https://www.php.cn/link/ dcd3f83c96576c0fd437286a1ff6f1f0</a></span><span>」存取它。此外,Ollama</span><span>API</span><span>的文件也為聊天對話和建立嵌入等基本指令提供了不同的端點。 </span><span></span></p><p><span>在本專案案例中,我們希望使用</span><span>/api/chat</span><span>端點向AI模型發送提示。下圖展示了一些與模型互動的基本</span><span>Ruby</span><span>程式碼:</span><span></span></p><p style="text-align:center;"><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/171076920967027.png?x-oss-process=image/resize,p_40" class="lazy" alt="為了保護客戶隱私,使用Ruby在本地運行開源AI模型"></p><p><span>上述</span><span>Ruby</span><span>程式碼片段的功能包括:</span><span></span></p>#<ol>
<li>
<span>透過「</span><span>net/http</span><span>」、「</span><span>uri</span><span>」和「</span><span></span><span></span><span></span><span></span><span></span><span></span><span># #json</span><span>」三個函式庫,分別執行</span><span>HTTP</span>
</li>請求、解析<li>
<span>URI</span><span>、處理</span><span>JSON</span><span>資料。 </span><span></span><span></span><span>建立包含</span>
</li>API<li>
<span>#端點位址(</span><span>https://www.php. cn/link/dcd3f83c96576c0fd437286a1ff6f1f0/api/chat</span><span>)的</span><span>URI</span><span>物件。 </span><span></span><span>使用以</span><span>URI</span>
</li>為參數的<li>
<span>Net::HTTP::Post.new</span><span> #方法,建立新的</span><span>HTTP POST</span>
</li>#請求。 </ol><ol data-indent="1">
<li>
<span></span><span>請求的正文被設定為一個代表了雜湊值的</span><span>JSON</span><span>字串。此雜湊值包含了三個鍵:「模型」、「訊息」和「流」。其中,</span>
</li>
<li>
<span></span><span>模型鍵被設定為“</span>
</li>ruby<li>
<span>”,也就是我們的模型;</span> <span></span><span></span><span>訊息鍵被設定為數組,其中包含了代表使用者訊息的單一雜湊值;</span>
</li>
<li>
<span></span><span>#而流鍵被設定為</span>
</li>false<li>
<span>。 </span><span></span>
</li>
<li>
<span>系統引導模型該如何回應訊息。我們已經在Modelfile中予以了設定。 </span><span></span>
</li>
</ol><ol start="5">使用者資訊是我們的標準提示。 <li>
<span></span><span></span>
</li>模型會以輔助資訊回應。 <li>
<span></span><span></span><span></span><span>訊息雜湊遵循與AI模型交叉的模式。它帶有一個角色和內容。此處的角色可以是系統、使用者和輔助。其中,</span><span></span><span></span><span>HTTP</span><span>請求使用</span><span>Net::HTTP.start</span><span>方法被傳送。此方法會開啟與指定主機名稱和連接埠的網路連接,然後發送請求。連線的讀取逾時時間被設定為</span><span>120</span><span>秒,畢竟我運行的是</span><span>2019</span>
</li>版本英特爾<li>
<span></span><span></span><span></span><span></span>
</li>
</ol><h4>
<span></span><span></span>
</h4><p><span></span><span> Mac</span><span>,所以反應速度可能有點慢。而在對應的</span><span>AWS</span></p>伺服器上運行時,這將不是問題。 <p><strong><span></span><span></span>伺服器的回應被儲存在「</strong></p>response<p><span>」變數中。 </span><span></span></p><p><span><strong>案例小結</strong></span><a href="https://www.php.cn/link/005f91955ff9fc532184ba7566f088fd" rel="nofollow" target="_blank"><span><strong></strong>#如上所述,運行本地AI模型的真正價值體現在,協助持有敏感數據的公司,處理電子郵件或文件等非結構化的數據,並提取有價值的結構化資訊。在我們參加的專案案例中,我們對客戶關係管理(</span></a>CRM<span><strong>)系統中的所有客戶資訊進行了模型培訓。據此,用戶可以詢問其任何有關客戶的問題,而無需翻閱數百份記錄。 </strong></span></p>
######譯者介紹#####################陳峻(Julian Chen ),51CTO社群編輯,具有十多年的IT專案實施經驗,善於對內部和外部資源與風險實施管控,並專注於傳播網路與資訊安全知識與經驗。 #####################原文標題:################How To Run Open-Source AI Models Locally With Ruby ###############,作者:Kane Hooper################

以上是為了保護客戶隱私,使用Ruby在本地運行開源AI模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
AI太空公司誕生了AI太空公司誕生了May 12, 2025 am 11:07 AM

本文展示了AI如何以Tomorrow.io為典型的例子來徹底改變空間行業。 與像SpaceX這樣的建立太空公司不同,SpaceX並非沒有AI的核心,明天是AI本地公司。 讓我們探索

印度的10個機器學習實習(2025)印度的10個機器學習實習(2025)May 12, 2025 am 10:47 AM

在印度(2025)登陸您夢想中的機器學習實習! 對於學生和早期職業專業人員來說,機器學習實習是一個有意義的職業的完美髮射台。 跨不同部門的印度公司 - 尖端的基因

嘗試Fellou AI並向Google和Chatgpt說再見嘗試Fellou AI並向Google和Chatgpt說再見May 12, 2025 am 10:26 AM

在過去的一年中,在線瀏覽的景觀經歷了重大轉變。 這種轉變始於增強,個性化的搜索結果,例如困惑和副駕駛等平台,並隨著Chatgpt的整合而加速了

個人黑客將是一隻非常兇猛的熊個人黑客將是一隻非常兇猛的熊May 11, 2025 am 11:09 AM

網絡攻擊正在發展。 通用網絡釣魚電子郵件的日子已經一去不復返了。 網絡犯罪的未來是超個性化的,利用了容易獲得的在線數據和AI來製作高度針對性的攻擊。 想像一個知道您的工作的騙子

教皇獅子座XIV揭示了AI如何影響他的名字選擇教皇獅子座XIV揭示了AI如何影響他的名字選擇May 11, 2025 am 11:07 AM

新當選的教皇獅子座(Leo Xiv)在對紅衣主教學院的就職演講中,討論了他的同名人物教皇里奧XIII的影響,他的教皇(1878-1903)與汽車和汽車和汽車公司的黎明相吻合

Fastapi -MCP初學者和專家教程-Analytics VidhyaFastapi -MCP初學者和專家教程-Analytics VidhyaMay 11, 2025 am 10:56 AM

本教程演示瞭如何使用模型上下文協議(MCP)和FastAPI將大型語言模型(LLM)與外部工具集成在一起。 我們將使用FastAPI構建一個簡單的Web應用程序,並將其轉換為MCP服務器,使您的L

dia-1.6b tts:最佳文本到二元格生成模型 - 分析vidhyadia-1.6b tts:最佳文本到二元格生成模型 - 分析vidhyaMay 11, 2025 am 10:27 AM

探索DIA-1.6B:由兩個本科生開發的開創性的文本對語音模型,零資金! 這個16億個參數模型產生了非常現實的語音,包括諸如笑聲和打噴嚏之類的非語言提示。本文指南

AI可以使指導比以往任何時候都更有意義AI可以使指導比以往任何時候都更有意義May 10, 2025 am 11:17 AM

我完全同意。 我的成功與導師的指導密不可分。 他們的見解,尤其是關於業務管理,構成了我的信念和實踐的基石。 這種經驗強調了我對導師的承諾

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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。