🚀 Arch-Agent-3B GGUFモデル
Arch-Agent-3B GGUFモデルは、高度な関数呼び出しとエージェントベースのアプリケーションに最適化された最先端の大規模言語モデルです。複雑なタスクを効率的に処理し、外部APIとのシームレスな統合を実現します。
🚀 クイックスタート
Arch-Agent-3Bモデルを使用するには、まず必要なライブラリをインストールする必要があります。以下のコマンドを実行して、最新バージョンのtransformers
ライブラリをインストールしてください。
pip install transformers>=4.51.0
✨ 主な機能
- マルチターン関数呼び出し:複数の対話ターンにわたって文脈の連続性を維持し、入れ子または進化するツールの使用を伴う自然な会話を可能にします。
- マルチステップ関数呼び出し:複雑なタスクを完了するために一連の関数呼び出しを計画して実行します。中間結果に基づいて動的に適応し、目標をサブタスクに分解します。
- エージェント機能:複雑なエージェントタスクの高度な意思決定とワークフロー管理を行い、ツールの調整とエラー回復をシームレスに行います。
📦 インストール
依存ライブラリのインストール
pip install transformers>=4.51.0
💻 使用例
基本的な使用法
import json
from typing import Any, Dict, List
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "katanemo/Arch-Agent-3B"
model = AutoModelForCausalLM.from_pretrained(
model_name, device_map="auto", torch_dtype="auto", trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
TASK_PROMPT = (
"You are a helpful assistant designed to assist with the user query by making one or more function calls if needed."
"\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\n"
"You are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{tool_text}"
"\n</tools>\n\nFor each function call, return a json object with function name and arguments within "
"""<tool_call></tool_call> XML tags:\n<tool_call>\n{{"name": <function-name>, """
""""arguments": <args-json-object>}}\n</tool_call>"""
)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "str",
"description": "The city and state, e.g. San Francisco, New York",
},
"unit": {
"type": "str",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature to return",
},
},
"required": ["location"],
},
},
}
]
def format_prompt(tools: List[Dict[str, Any]]):
tool_text = "\n".join(
[json.dumps(tool["function"], ensure_ascii=False) for tool in tools]
)
return TASK_PROMPT.format(tool_text=tool_text)
system_prompt = format_prompt(tools)
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "What is the weather in Seattle?"},
]
model_inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt", return_dict=True
).to(model.device)
generated_ids = model.generate(**model_inputs, max_new_tokens=32768)
generated_ids = [
output_ids[len(input_ids) :]
for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
📚 ドキュメント
モデル生成詳細
このモデルは、llama.cpp のコミット 73e53dc8
を使用して生成されました。
量子化について
標準のIMatrix量子化は、低ビット深度で特にMixture of Experts (MoE) モデルで性能が低下することがわかっています。この問題を解決するために、llama.cpp
の --tensor-type
オプションを使用して、重要なレイヤーを手動でより高い精度に調整しています。具体的な実装はこちらを参照してください: Layer bumping with llama.cpp
パフォーマンスベンチマーク
Katanemo Arch-Agentシリーズは、Berkeley Function-Calling Leaderboard (BFCL) で評価されています。一般的に使用されるモデルと比較した結果(2025年6月14日現在)は以下の通りです。
⚠️ 重要提示
評価にはYaRNスケーリングを使用してモデルをデプロイし、すべてのArch-Agentモデルは64Kのコンテキスト長で評価されています。
🔧 技術詳細
量子化アプローチ
通常のIMatrix量子化では、低ビット深度での性能が不十分です。そこで、llama.cpp
の --tensor-type
オプションを使って重要なレイヤーの精度を手動で上げることで、量子化レベルに対する精度を大幅に向上させています。この方法はモデルファイルサイズを増やしますが、精度向上には効果的です。
📄 ライセンス
Arch-Agentコレクションは、Katanemoライセンス の下で配布されています。
その他の情報
テストについて
このモデルを使用して、AIネットワーク監視の小規模オープンソースモデルの限界をテストしています。具体的には、以下の点をテストしています。
- ライブネットワークサービスに対する関数呼び出し
- 以下のタスクを処理しながら、モデルをどれだけ小さくできるか
- 自動化されたNmapセキュリティスキャン
- 量子対応チェック
- ネットワーク監視タスク
テスト用のAIアシスタント
- TestLLM:現在の実験的モデルで、huggingfaceのDockerスペースで2つのCPUスレッドでllama.cppを使用しています。ゼロコンフィギュレーションでセットアップでき、ロード時間は30秒です(推論は遅いですがAPIコストはかかりません)。トークン制限がなく、コストが低いです。
- TurboLLM:gpt-4.1-miniを使用しており、非常に高い性能を発揮しますが、OpenAIがトークンごとに課金するため、トークン使用量に制限があります。量子ネットワーク監視エージェントで.NETコードを実行するカスタムコマンドプロセッサを作成でき、リアルタイムのネットワーク診断と監視、セキュリティ監査、侵入テスト(Nmap/Metasploit)などが可能です。
- HugLLM:最新のオープンソースモデルを使用しており、Hugging Face Inference 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)" ただし、Quantum Network Monitor Agent をインストールして、.NETコードを実行する必要があります。これは非常に柔軟で強力な機能ですが、注意して使用してください。
最後に
このモデルファイルの作成、量子ネットワーク監視サービスの実行、およびNovitaとOpenAIからの推論の費用はすべて私の私費で負担しています。モデル作成と量子ネットワーク監視プロジェクトの背後にあるすべてのコードはオープンソースです。役に立つものがあれば自由に使用してください。
もしこの仕事を評価していただける場合は、コーヒーを買ってくれる ことをご検討ください。あなたの支援により、サービスコストをカバーし、すべての人のトークン制限を引き上げることができます。
また、仕事の機会やスポンサーシップも歓迎しています。ありがとうございます! 😊