跳到主要內容
AI News HubLIVE
站內改寫2 分鐘閱讀

Scikit-Ollama:將Scikit-Learn與本地Ollama模型集成進行零樣本文本分類

文章摘要

本文介紹了scikit-ollama庫,它通過將本地運行的Ollama模型與scikit-learn接口相結合,實現了零樣本文本分類,無需雲API。文章詳細説明了如何設置環境、加載數據集、實例化分類器以及執行擬合和預測,並強調了該方法的成本效益和數據隱私優勢。

來源Machine Learning Mastery作者: Iván Palomares Carrascosa
Scikit-Ollama:將Scikit-Learn與本地Ollama模型集成進行零樣本文本分類
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

大型語言模型(LLM)與傳統機器學習工作流的集成不僅已經成為可能,而且正在改變我們處理這些模型的方式,無論是在成本還是安全性方面。不再僅僅依賴具有配額、流量瓶頸和數據隱私問題的商業雲API,scikit-ollama為此提供了有力的解決方案。該庫主要基於scikit-llm,彌合了友好的scikit-learn語法(用於訓練和使用經典機器學習模型)與LLM(特別是運行在Ollama上的免費本地模型)之間的差距。

本文探討如何設置這一集成,以構建一個高度實用的零樣本分類器,用於電影評論的情感預測,使用本地安裝的Llama 3模型。

分步指南

首先,由於scikit-ollama僅兼容Python 3.9或更高版本,請檢查當前開發環境中的Python版本。如果版本低於3.9,請升級。然後安裝scikit-ollama:

pip install scikit-ollama

安裝完成後,我們可以開始編碼。Scikit-LLM在其datasets模塊中提供了自己的數據集目錄。我們將使用其中一個基於文本的數據集,專門用於電影評論的情感分類。以下是加載數據並顯示示例評論及其情感標籤的代碼:

from skllm.datasets import get_classification_dataset
X, y = get_classification_dataset()
print(f"Sample text: {X[0]} \nLabel: {y[0]}")

輸出示例:

Sample text: I was absolutely blown away by the performances in 'Summer's End'. The acting was top-notch, and the plot had me gripped from start to finish. A truly captivating cinematic experience that I would highly recommend.
Label: positive

接下來是scikit-ollama本身。你需要在本地安裝Ollama,並確保你想要的模型(如llama3:latest)已下載。使用ollama pull命令獲取模型。然後,導入ZeroShotOllamaClassifier並實例化:

from skollama.models.ollama.classification.zero_shot import ZeroShotOllamaClassifier
clf = ZeroShotOllamaClassifier(model="llama3:latest")

重要的是要理解:llama3:latest是一個通用LLM,原本設計用於更多任務(如聊天、頭腦風暴等)。但通過scikit-ollama和底層的scikit-llm,我們將分類任務重新表述為語法約束的文本生成提示,使本地模型僅輸出所需內容,就像經典機器學習模型一樣,同時保留其強大的語言推理能力。這是scikit-ollama的核心價值:將LLM的力量與scikit-learn接口的簡潔性相結合。

現在應用經典的機器學習兩階段過程:擬合和預測。在零樣本LLM驅動的分類中,擬合併不更新權重,而是用於註冊候選標籤,引導模型進行上下文學習:

clf.fit(None, ["positive", "negative", "neutral"])

調用predict()時,本地Ollama實例處理每個輸入作為提示,並解析輸出以確保映射到零樣本分類標籤之一。代碼生成預測並顯示前三個結果:

predictions = clf.predict(X)
for text, prediction in zip(X[:3], predictions[:3]):
    print(f"Text: '{text}'")
    print(f"Predicted Sentiment: {prediction}\n")

輸出顯示模型正確預測了積極情感。本地模型僅輸出預期內容,如同經典機器學習模型,同時應用其強大的基於語言的內在推理。

總結

本文展示瞭如何用本地Ollama模型替換基於雲的LLM API,以在沒有訂閲費用或敏感文本數據離開機器的情況下執行推理任務。關鍵要素是scikit-ollama庫,它將本地集成優雅地封裝為另一個scikit-learn流水線。

展開要點與分析

文章情報

工程師進階

要點

  • scikit-ollama基於scikit-llm,將本地Ollama模型集成到scikit-learn工作流中。
  • 使用本地Llama 3模型進行電影評論情感分類,無需雲API。
  • fit/predict模式中,fit僅註冊候選標籤,預測時通過提示生成約束輸出。
  • 本地運行確保數據隱私,消除訂閲費用和流量瓶頸。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。