WordLlama:在消費級GPU上奔跑的“瘦子” 原創(chuàng)
David Miller表示該模型的目標很明確:彌合尖端 AI 研究和實際應(yīng)用之間的差距。他認識到,許多現(xiàn)有 NLP模型需要大量的計算資源,并且通常局限于專有系統(tǒng),從而限制了它們的可訪問性。作為回應(yīng),WordLlama被設(shè)計為既輕量級又高效,使更廣泛的用戶能夠在不犧牲質(zhì)量的情況下將高性能 NLP 集成到他們的工作流程中。
WordLlama一個開源、快速、輕量級 (16MB) NLP 工具包,它是一種用于NLP和單詞嵌入的實用型模型,它類似于GloVe、Word2Vec或FastText。它首先從最先進的LLM(例如 LLaMA3 70B)中提取Token Embedding的編碼表,并且訓(xùn)練一個小型的、無上下文的通用Embedding模型。
它在基準測試中優(yōu)于GloVe 300d等流行的單詞模型,同時大小明顯更?。J模型為16MB vs >2GB)。重要的是它能根據(jù)實際生產(chǎn)的需要靈活截斷Token的嵌入維度,有點類似“俄羅斯套娃模式”。最大的模型 (1024維) 可以截斷為 64、128、256 或 512維度使用。
它支持二進制嵌入模型以加快計算速度,在CPU上面也是能夠快速運行,WordLlama 非常適合輕量級 NLP 任務(wù),例如訓(xùn)練 sklearn 分類器、執(zhí)行語義匹配、重復(fù)數(shù)據(jù)刪除、排名和聚類。它非常適合創(chuàng)建 LLM 輸出評估器。因為它的緊湊設(shè)計,任何人可以在短短幾個小時內(nèi)在消費類GPU 上訓(xùn)練模型。它的速度和多功能性使其成為探索性分析和各類應(yīng)用的絕佳助手。
上圖WL在64/128/256/512/1024等不同維度在不同任務(wù)上與其他同類的對比。WordLlama支持多語言,可以跨各種語言進行訓(xùn)練和部署。它處理多種語言的能力擴大了它在客戶服務(wù)、內(nèi)容生成和許多其他需要多功能語言功能領(lǐng)域的應(yīng)用潛力。下面為它的實例代碼,輕巧便用。
from wordllama import WordLlama
# 加載默認的 WordLlama 模型
wl = WordLlama.load()
# 計算兩個句子之間的相似度
similarity_score = wl.similarity("我去了車那里", "我去了當鋪")
print(similarity_score) # 輸出: 0.06641249096796882
# 根據(jù)與查詢的相似度對文檔進行排名
query = "我去了車那里"
candidates = ["我去了公園", "我去了商店", "我去了卡車", "我去了車輛"]
ranked_docs = wl.rank(query, candidates)
print(ranked_docs)
# 輸出:
# [
# ('我去了車輛', 0.7441646856486314),
# ('我去了卡車', 0.2832691551894259),
# ('我去了商店', 0.19732814982305436),
# ('我去了公園', 0.15101404519322253)
# ]
# 其他推理方法
# 模糊去重
wl.deduplicate(candidates, threshold=0.8)
# 使用 kmeans/kmeans++ 初始化進行標簽
wl.cluster(docs, k=5, max_iteratinotallow=100, tolerance=1e-4)
# 根據(jù)查詢過濾候選項
wl.filter(query, candidates, threshold=0.3)
# 根據(jù)查詢返回前k 個字符串
wl.topk(query, candidates, k=3)
本文轉(zhuǎn)載自 ??魯班模錘??,作者: 龐德公
