🚀 Arch-Agent-32B GGUFモデル
Arch-Agent-32B GGUFモデルは、高度な関数呼び出しとエージェントベースのアプリケーション向けに設計された一連のモデルです。複雑な多段階タスクの処理に優れており、スマートなツール選択、適応的な計画立案、外部APIやサービスとのシームレスな統合を実現します。
🚀 クイックスタート
依存関係のインストール
このプロジェクトのコードはHugging Faceのtransformers
ライブラリに統合されています。最新バージョンのインストールをおすすめします。
pip install transformers>=4.51.0
すぐに始める
以下の例は、このモデルを使用して関数呼び出しタスクを実行する方法を示しています。このモデルは提供されるプロンプト形式と組み合わせて使用すると最適な結果が得られ、OpenAI関数呼び出しに似たJSON出力を抽出できます。
import json
from typing import Any, Dict, List
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "katanemo/Arch-Agent-32B"
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を使用し、コミットバージョン0142961a
で生成されました。
IMatrixを超える量子化
私は新しい量子化方法を試しています。この方法は、重要なレイヤーの精度を選択的に向上させ、デフォルトのIMatrix設定の制限を超えます。
テストでは、標準のIMatrix量子化は低ビット深度で、特にエキスパートミックス(MoE)モデルでは性能が低くなります。この問題を解決するために、llama.cpp
の--tensor-type
オプションを使用して重要なレイヤーの精度を手動で向上させました。具体的な実装は、llama.cppを使用したレイヤー精度の向上を参照してください。
これによりモデルファイルのサイズが増加しますが、与えられた量子化レベルでの精度が大幅に向上します。
性能ベンチマーク
私たちはバークレー関数呼び出しランキング(BFCL)でKatanemo Arch-Agentシリーズを評価しました。一般的なモデルとの比較結果(2025年6月14日現在)は以下の通りです。
⚠️ 重要な注意
評価では、YaRNスケーリング技術を使用してモデルをデプロイし、多輪評価を行いました。すべてのArch-Agentモデルのコンテキスト長は64Kです。
🔧 技術詳細
モデル情報
属性 |
詳細 |
ベースモデル |
Qwen/Qwen2.5-Coder-32B-Instruct |
モデルタイプ |
テキスト生成 |
ライブラリ名 |
transformers |
量子化実験
量子化の過程で、標準のIMatrix量子化は低ビット深度で、特にエキスパートミックス(MoE)モデルでは性能が低くなります。そのため、新しい量子化方法を採用し、llama.cpp
の--tensor-type
オプションを使用して重要なレイヤーの精度を手動で向上させました。これによりモデルファイルのサイズが増加しますが、精度が大幅に向上します。
📄 ライセンス
Arch-AgentシリーズのモデルはKatanemoライセンスに従って配布されます。
📋 モデルテストの招待
テストプロジェクトの紹介
もしこれらのモデルが役に立つと思われる場合は、私のAI駆動の量子ネットワーク監視アシスタントのテストを手伝っていただけると幸いです。量子対応セキュリティチェックを行います。
量子ネットワーク監視
量子ネットワーク監視サービスの完全なオープンソースコードは、私のGitHubリポジトリ(名称にNetworkMonitorが含まれるリポジトリ)で見つけることができます。量子ネットワーク監視ソースコード。もし自分でモデルの量子化を行いたい場合は、GGUFModelBuilderで私が使用したコードを見つけることができます。
テスト方法
AIアシスタントのタイプを選択します。
TurboLLM
(GPT-4.1-mini)
HugLLM
(Huggingfaceオープンソースモデル)
TestLLM
(CPUのみをサポートする実験的モデル)
テスト内容
私はAIネットワーク監視における小型オープンソースモデルの限界を探求しています。具体的には以下の内容です。
- リアルタイムネットワークサービスに対する関数呼び出し
- モデルが以下のタスクを処理できる最小規模を調査する
- 自動的なNmapセキュリティスキャン
- 量子対応チェック
- ネットワーク監視タスク
各アシスタントの特徴
TestLLM - 現在の実験的モデル(Huggingface 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)"
注意:量子ネットワーク監視エージェントをインストールする必要があります。これは非常に柔軟で強力な機能ですので、慎重に使用してください!
サポートと感謝
私は自費でサーバーを資金提供し、これらのモデルファイルを作成し、量子ネットワーク監視サービスを実行し、NovitaとOpenAIの推論費用を支払っています。モデル作成と量子ネットワーク監視プロジェクトのすべてのコードはオープンソースです。もしこれらの内容が役に立ったと思われる場合は、自由に使用してください。
もしあなたが私の仕事を認めてくれるなら、コーヒーを奢ってくれることを検討してみてください ☕。あなたの支援はサービスコストの支払いに役立ち、すべての人のトークン使用制限を引き上げることができます。
私はまた、仕事の機会やスポンサーシップも歓迎します。ご支援いただき、ありがとうございます!