モデル概要
モデル特徴
モデル能力
使用事例
🚀 xLAM-2-3b-fc-r GGUFモデル
xLAM-2-3b-fc-r GGUFモデルは、特定の量子化方法を用いて生成されたテキスト生成モデルです。関数呼び出し、LLMエージェント、ツール使用などのシナリオに利用できます。このモデルは、多輪対話とツール使用において優れた性能を発揮し、複数のベンチマークテストで高い成績を収めています。
メタデータ情報
属性 | 詳細 |
---|---|
モデルタイプ | テキスト生成 |
訓練データ | Salesforce/APIGen-MT-5k、Salesforce/xlam-function-calling-60k |
言語 | en |
タグ | function-calling、LLM Agent、tool-use、llama、qwen、pytorch、LLaMA-factory |
ライブラリ名 | transformers |
ライセンス | cc-by-nc-4.0 |
🚀 クイックスタート
フレームワークバージョン要件
- Transformers 4.46.1(またはそれ以上のバージョン)
- PyTorch 2.5.1+cu124(またはそれ以上のバージョン)
- Datasets 3.1.0(またはそれ以上のバージョン)
- Tokenizers 0.20.3(またはそれ以上のバージョン)
基本的な使用例
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("====== チャットテンプレート適用後のプロンプト ======")
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("====== モデルの応答 ======")
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とTransformersベースの推論フレームワークと完全に互換性があります。
📦 インストール
vLLMを使用した推論
- 指定されたバージョンのvLLMをインストールします。
pip install "vllm>=0.6.5"
- ツールパーサープラグインをローカルパスにダウンロードします。
wget https://huggingface.co/Salesforce/xLAM-2-1b-fc-r/raw/main/xlam_tool_call_parser.py
- 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
💻 使用例
基本的な使用法
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("====== チャットテンプレート適用後のプロンプト ======")
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("====== モデルの応答 ======")
outputs = model.generate(**inputs, max_new_tokens=256)
generated_tokens = outputs[:, input_ids_len:] # 出力をスライスして新しく生成されたトークンのみを取得
print(tokenizer.decode(generated_tokens[0], skip_special_tokens=True))
高度な使用法
import openai
import json
# ローカルのvLLMエンドポイントを使用するようにクライアントを設定します。
client = openai.OpenAI(
base_url="http://localhost:8000/v1", # デフォルトのvLLMサーバーURL
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", # モデル名は関係ありません。vLLMはサービスのモデルを使用します。
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("アシスタントの応答:")
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などの技術を使用することで最大128kのコンテキスト長を実現できます。詳細についてはこちらを参照してください。
ベンチマークテスト結果
Berkeley Function-Calling Leaderboard (BFCL v3)
BFCLランキングでの異なるモデルの性能比較。ランキングは全体的な精度に基づいており、これはさまざまな評価カテゴリの加重平均です。「FC」は関数呼び出しモードを表し、カスタム「プロンプト」を使用して関数呼び出しを抽出することとは対照的です。
œÑ-benchベンチマーク
œÑ-benchベンチマークで、少なくとも5回の試行における平均成功率(pass@1)。当社の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(右)の分野のすべてのタスクについて平均したものです。値が高いほど、モデルの一貫性が高いことを示します。
🔧 技術詳細
モデル生成の詳細
このモデルは、llama.cppを使用して、コミットバージョン6adc3c3e
で生成されました。
量子化方法
新しい量子化方法を試行しました。この方法は、重要な層の精度を選択的に向上させ、デフォルトのIMatrix設定で提供される精度を上回ります。テストでは、標準のIMatrix量子化は低ビット深度では性能が低下し、特に混合専門家(MoE)モデルにおいて問題がありました。この問題を解決するために、llama.cpp
の--tensor-type
オプションを使用して、重要な層の精度を手動で向上させました。具体的な実装については、llama.cppを使用した層の向上を参照してください。これによりモデルファイルのサイズが増加しますが、与えられた量子化レベルでの精度が大幅に向上します。
📄 ライセンス
このモデルはCC BY-NC 4.0ライセンスの下で提供されています。すべてのLlama関連のモデルについては、対応するLlamaライセンスと条項に従ってください。Meta Llama 3はMeta Llama 3コミュニティライセンスの下でライセンスされており、著作権は © Meta Platforms, Inc. すべての権利が予約されています。
引用
もしあなたの研究や開発で当社のモデルやデータセットを使用した場合は、以下の論文を引用してください。
@article{prabhakar2025apigen,
title={APIGen-MT: Agentic PIpeline for Multi-Turn Data Generation via Simulated Agent-Human Interplay},
author={Prabhakar, Akshara and Liu, Zuxin and Zhu, Ming and Zhang, Jianguo and Awalgaonkar, Tulika and Wang, Shiyu and Liu, Zhiwei and Chen, Haolin and Hoang, Thai and others},
journal={arXiv preprint arXiv:2504.03601},
year={2025}
}
また、xLAMシリーズに関する他の優れた関連研究もご覧いただき、引用を検討していただけると幸いです。
@article{zhang2025actionstudio,
title={ActionStudio: A Lightweight Framework for Data and Training of Action Models},
author={Zhang, Jianguo and Hoang, Thai and Zhu, Ming and Liu, Zuxin and Wang, Shiyu and Awalgaonkar, Tulika and Prabhakar, Akshara and Chen, Haolin and Yao, Weiran and Liu, Zhiwei and others},
journal={arXiv preprint arXiv:2503.22673},
year={2025}
}
@article{zhang2024xlam,
title={xLAM: A Family of Large Action Models to Empower AI Agent Systems},
author={Zhang, Jianguo and Lan, Tian and Zhu, Ming and Liu, Zuxin and Hoang, Thai and Kokane, Shirley and Yao, Weiran and Tan, Juntao and Prabhakar, Akshara and Chen, Haolin and others},
journal={arXiv preprint arXiv:2409.03215},
year={2024}
}
@article{liu2024apigen,
title={Apigen: Automated pipeline for generating verifiable and diverse function-calling datasets},
author={Liu, Zuxin and Hoang, Thai and Zhang, Jianguo and Zhu, Ming and Lan, Tian and Tan, Juntao and Yao, Weiran and Liu, Zhiwei and Feng, Yihao and RN, Rithesh and others},
journal={Advances in Neural Information Processing Systems},
volume={37},
pages={54463--54482},
year={2024}
}
@article{zhang2024agentohana,
title={AgentOhana: Design Unified Data and Training Pipeline for Effective Agent Learning},
author={Zhang, Jianguo and Lan, Tian and Murthy, Rithesh and Liu, Zhiwei and Yao, Weiran and Tan, Juntao and Hoang, Thai and Yang, Liangwei and Feng, Yihao and Liu, Zuxin and others},
journal={arXiv preprint arXiv:2402.15506},
year={2024}
}
その他の情報
モデルテストのお誘い
もしこれらのモデルが役立つと感じたら、AI駆動の量子ネットワーク監視アシスタントのテストにご協力いただき、量子対応のセキュリティチェックを行っていただけると幸いです。 量子ネットワーク監視
量子ネットワーク監視サービスの完全なオープンソースコードはGitHubリポジトリで入手できます:量子ネットワーク監視ソースコード。もし自分でモデルの量子化を行いたい場合は、関連するコードも見つけることができます:GGUFModelBuilder
テストの説明
- AIアシスタントのタイプを選択します:
TurboLLM
(GPT-4.1-mini)HugLLM
(Huggingfaceのオープンソースモデル)TestLLM
(CPUのみをサポートする実験的なモデル)
- テスト内容:
- リアルタイムのネットワークサービスへの関数呼び出し
- 小さなモデルの自動化されたNmapセキュリティスキャン、量子対応チェック、およびネットワーク監視タスクでの性能テスト
各アシスタントの特徴
- TestLLM:現在の実験的なモデル(Hugging Face Docker空間の2つのCPUスレッド上でllama.cppを実行):
- ゼロコンフィギュレーション設定
- 読み込み時間約30秒(推論速度は遅いが、APIコストはかからず、トークン制限もありません)
- コラボレーションの募集:エッジデバイスAIに興味がある方は、ぜひご連絡ください!
- TurboLLM:gpt-4.1-miniを使用:
- 性能は優れていますが、OpenAIがトークンごとに課金するため、トークンの使用に制限があります。
- カスタムコマンドプロセッサを作成し、量子ネットワーク監視エージェント上で.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コードを実行する必要があります)
支援のリクエスト
このプロジェクトのサーバー費用や推論費用はすべて個人で負担しています。もしこの取り組みを評価していただける場合は、コーヒーをご招待いただけると幸いです。あなたの支援はサービスコストの支払いやトークン使用制限の緩和に役立ちます。また、仕事の機会やスポンサーシップの協力も大歓迎です。ご支援いただき、ありがとうございます!



