🚀 xLAM-2-32b-fc-r GGUF模型
xLAM-2-32b-fc-r GGUF模型是專為文本生成任務設計的先進模型,在多輪對話和函數調用等方面表現卓越。它基於先進的數據合成、處理和訓練管道構建,能夠將用戶意圖轉化為可執行的操作,為自動化工作流程提供強大支持。
🚀 快速開始
本模型可與多種推理框架兼容,以下是使用前需瞭解的框架版本要求:
- Transformers 4.46.1(或更高版本)
- PyTorch 2.5.1+cu124(或更高版本)
- Datasets 3.1.0(或更高版本)
- Tokenizers 0.20.3(或更高版本)
✨ 主要特性
- 多輪對話與函數調用:在多輪對話和函數調用任務中表現出色,能有效處理複雜交互。
- 高性能表現:在BFCL和τ-bench等基準測試中超越前沿模型,如GPT-4o和Claude 3.5。
- 兼容性強:完全兼容vLLM和基於Transformers的推理框架,方便集成和使用。
📦 安裝指南
安裝依賴庫
使用前請確保安裝了以下依賴庫:
pip install transformers==4.46.1 torch==2.5.1+cu124 datasets==3.1.0 tokenizers==0.20.3
安裝vLLM(用於推理)
pip install "vllm>=0.6.5"
下載工具解析插件
wget https://huggingface.co/Salesforce/xLAM-2-1b-fc-r/raw/main/xlam_tool_call_parser.py
💻 使用示例
基礎用法
使用Huggingface聊天模板與模型進行交互,示例代碼如下:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Salesforce/Llama-xLAM-2-3b-fc-r")
model = AutoModelForCausalLM.from_pretrained("Salesforce/Llama-xLAM-2-3b-fc-r", torch_dtype=torch.bfloat16, device_map="auto")
messages = [
{"role": "user", "content": "Hi, how are you?"},
{"role": "assistant", "content": "Thanks. I am doing well. How can I help you?"},
{"role": "user", "content": "What's the weather like in London?"},
]
tools = [
{
"name": "get_weather",
"description": "Get the current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state, e.g. San Francisco, CA"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"], "description": "The unit of temperature to return"}
},
"required": ["location"]
}
}
]
print("====== prompt after applying chat template ======")
print(tokenizer.apply_chat_template(messages, tools=tools, add_generation_prompt=True, tokenize=False))
inputs = tokenizer.apply_chat_template(messages, tools=tools, add_generation_prompt=True, return_dict=True, return_tensors="pt")
input_ids_len = inputs["input_ids"].shape[-1]
inputs = {k: v.to(model.device) for k, v in inputs.items()}
print("====== model response ======")
outputs = model.generate(**inputs, max_new_tokens=256)
generated_tokens = outputs[:, input_ids_len:]
print(tokenizer.decode(generated_tokens[0], skip_special_tokens=True))
高級用法(使用vLLM進行推理)
啟動OpenAI API兼容端點
vllm serve Salesforce/xLAM-2-1b-fc-r \
--enable-auto-tool-choice \
--tool-parser-plugin ./xlam_tool_call_parser.py \
--tool-call-parser xlam \
--tensor-parallel-size 1
使用OpenAI API進行測試
import openai
import json
client = openai.OpenAI(
base_url="http://localhost:8000/v1",
api_key="empty"
)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature to return"
}
},
"required": ["location"]
}
}
}
]
response = client.chat.completions.create(
model="Salesforce/xLAM-2-1b-fc-r",
messages=[
{"role": "system", "content": "You are a helpful assistant that can use tools."},
{"role": "user", "content": "What's the weather like in San Francisco?"}
],
tools=tools,
tool_choice="auto"
)
print("Assistant's response:")
print(json.dumps(response.model_dump(), indent=2))
📚 詳細文檔
模型系列
模型名稱 |
總參數數量 |
上下文長度 |
類別 |
下載模型 |
下載GGUF文件 |
Llama-xLAM-2-70b-fc-r |
70B |
128k |
多輪對話、函數調用 |
🤗 鏈接 |
NA |
Llama-xLAM-2-8b-fc-r |
8B |
128k |
多輪對話、函數調用 |
🤗 鏈接 |
🤗 鏈接 |
xLAM-2-32b-fc-r |
32B |
32k(最大128k)* |
多輪對話、函數調用 |
🤗 鏈接 |
NA |
xLAM-2-3b-fc-r |
3B |
32k(最大128k)* |
多輪對話、函數調用 |
🤗 鏈接 |
🤗 鏈接 |
xLAM-2-1b-fc-r |
1B |
32k(最大128k)* |
多輪對話、函數調用 |
🤗 鏈接 |
🤗 鏈接 |
注意:基於Qwen-2.5的模型默認上下文長度為32k,但可以使用YaRN(Yet Another Recursive Network)等技術實現最大128k的上下文長度。更多詳情請參考此處。
基準測試結果
Berkeley Function-Calling Leaderboard (BFCL v3)
不同模型在BFCL排行榜上的性能比較。排名基於整體準確率,這是不同評估類別的加權平均值。“FC”表示函數調用模式,與使用自定義“提示”提取函數調用相對。
τ-bench基準測試
τ-bench基準測試的成功率(pass@1),至少進行5次試驗並取平均值。我們的xLAM-2-70b-fc-r模型在τ-bench上的整體成功率達到56.2%,顯著優於基礎Llama 3.1 70B Instruct模型(38.2%)和其他開源模型,如DeepSeek v3(40.6%)。值得注意的是,我們的最佳模型甚至超過了專有模型,如GPT-4o(52.9%),並接近Claude 3.5 Sonnet(new)(60.1%)的性能。
Pass^k曲線衡量給定任務的所有5次獨立試驗成功的概率,對τ-retail(左)和τ-airline(右)領域的所有任務取平均值。值越高表示模型的一致性越好。
倫理考量
本版本僅用於支持學術論文的研究目的。我們的模型、數據集和代碼並非專門為所有下游用途設計或評估。強烈建議用戶在部署此模型之前評估並解決與準確性、安全性和公平性相關的潛在問題。鼓勵用戶考慮AI的常見侷限性,遵守適用法律,並在選擇用例時採用最佳實踐,特別是在高風險場景中,錯誤或濫用可能會對人們的生活、權利或安全產生重大影響。有關用例的進一步指導,請參考我們的AUP和AI AUP。
模型許可證
對於所有與Llama相關的模型,請同時遵循相應的Llama許可證和條款。Meta Llama 3根據Meta Llama 3社區許可證授權,版權所有 © Meta Platforms, Inc. 保留所有權利。
🔧 技術細節
模型生成詳情
本模型使用llama.cpp在提交版本238005c2
時生成。
超越IMatrix的量化
嘗試了一種新的量化方法,該方法有選擇地提高關鍵層的精度,超越了默認IMatrix配置提供的精度。在測試中,標準IMatrix量化在較低比特深度下表現不佳,特別是對於專家混合(MoE)模型。為了解決這個問題,使用llama.cpp
中的--tensor-type
選項手動將重要層的精度提高。具體實現可參考:使用llama.cpp進行層提升。雖然這會增加模型文件大小,但顯著提高了給定量化級別的精度。
📄 許可證
本模型採用CC BY-NC 4.0許可證。
額外信息
選擇合適的GGUF模型格式
點擊此處獲取選擇合適GGUF模型格式的信息
測試AI-Powered Quantum Network Monitor Assistant
如果您認為這些模型有用,請幫助測試AI-Powered Quantum Network Monitor Assistant,進行量子就緒安全檢查:
量子網絡監控器
量子網絡監控服務的完整開源代碼可在此處找到。如果您想自己進行模型量化,也可以找到相應的代碼GGUFModelBuilder。
測試方法
選擇一種AI助手類型:
TurboLLM
(GPT-4.1-mini)
HugLLM
(Hugginface開源模型)
TestLLM
(僅支持CPU的實驗性模型)
測試內容
測試小型開源模型在AI網絡監控方面的極限,具體包括:
- 針對即時網絡服務進行函數調用
- 模型在處理以下任務時的最小規模:
不同助手的特點
- TestLLM:當前的實驗性模型(在Huggingface Docker空間的2個CPU線程上運行llama.cpp)
- 零配置設置
- 加載時間30秒(推理速度慢,但無API成本),由於成本低,無令牌限制
- 尋求幫助!如果您對邊緣設備AI感興趣,歡迎合作!
- TurboLLM:使用gpt-4.1-mini
- 性能出色,但OpenAI按令牌收費,因此令牌使用受限
- 創建自定義cmd處理器,在量子網絡監控代理上運行.net代碼
- 即時網絡診斷和監控
- 安全審計
- 滲透測試(Nmap/Metasploit)
- HugLLM:最新的開源模型
- 在Hugging Face推理API上運行,使用Novita託管的最新模型表現出色
測試命令示例
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
"Create a cmd processor to .. (what ever you want)"
注意,您需要安裝量子網絡監控代理才能運行.net代碼。這是一個非常靈活和強大的功能,請謹慎使用!
支持作者
作者自掏腰包資助創建這些模型文件的服務器、運行量子網絡監控服務以及支付Novita和OpenAI的推理費用。模型創建和量子網絡監控項目背後的所有代碼都是開源的。如果您認可作者的工作,請考慮請作者喝咖啡 ☕。您的支持將有助於支付服務成本,並提高令牌限制。作者也歡迎工作機會或贊助。
感謝您的支持!😊