The Katanemo Arch-Function collection of large language models (LLMs) is a collection state-of-the-art (SOTA) LLMs specifically designed for
function calling
tasks. The models are designed to understand complex function signatures, identify required parameters, and produce accurate function call outputs based on natural language prompts. Achieving performance on par with GPT-4, these models set a new benchmark in the domain of function-oriented tasks, making them suitable for scenarios where automated API interaction and function execution is crucial.
In summary, the Katanemo Arch-Function collection demonstrates:
State-of-the-art performance
in function calling
Accurate parameter identification and suggestion
, even in ambiguous or incomplete inputs
High generalization
across multiple function calling use cases, from API interactions to automated backend tasks.
Optimized
low-latency, high-throughput
performance, making it suitable for real-time, production environments.
Key Features
Functionality
Definition
Single Function Calling
Call only one function per user query
Parallel Function Calling
Call the same function multiple times but with different set of parameter values
Multiple Function Calling
Call different functions per user query
Parallel & Multiple
Perform both parallel and multiple function calling
Training Details
Katanemo Arch-Function collection is built on top of the
Qwen 2.5
. A blog with technical details leading to our models will be published soon.
Performance Benchmarks
We evaluate Katanemo Arch-Function series on the
Berkeley Function-Calling Leaderboard (BFCL)
. For each model family, we select the one with the highest rank. The results are shwon below:
Rank
Model
Overall
Single Turn
Multi Turn
Hallucination
Non-live (AST)
Non-live (Exec)
Live (AST)
Overall
Relevance
Irrelevance
1
GPT-4-turbo-2024-04-09
59.49%
82.65%
83.80%
73.39%
21.62%
70.73%
79.79%
3
xLAM-8x22b-r
59.13%
89.75%
89.32%
72.81%
15.62%
97.56%
75.23%
Arch-Function-7B
57.48%
87.50%
86.80%
72.19%
13.75%
82.93%
79.54%
Arch-Function-3B
56.23%
85.10%
89.16%
70.72%
12.28%
90.24%
73.98%
7
mistral-large-2407
55.82%
84.12%
83.09%
67.17%
20.50%
78.05%
48.93%
9
Claude-3.5-Sonnet-20240620
54.83%
70.35%
66.34%
71.39%
23.5%
63.41%
75.91%
Arch-Function-7B
53.61%
82.60%
87.36%
68.19%
8.62%
87.80%
75.90%
11
o1-mini-2024-09-12
53.43%
75.48%
76.86%
71.17%
11.00%
46.34%
88.07%
12
Gemini-1.5-Flash-Preview-0514
53.01%
77.10%
71.23%
71.17%
13.12%
60.98%
76.15%
Requirements
The code of Arch-Function-7B has been in the Hugging Face
transformers
library and we advise you to install latest version:
pip install transformers>=4.37.0
How to use
We use the following example to illustrate how to use our model to perform function calling tasks. Please note that, our model works best with our provided prompt format. It allows us to extract JSON output that is similar to the
function-calling mode of ChatGPT
.
Single Turn Example
import json
from typing importAny, Dict, Listfrom transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "katanemo/Arch-Function-7B"
model = AutoModelForCausalLM.from_pretrained(
model_name, device_map="auto", torch_dtype="auto", trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Please use our provided prompt for best performance
TASK_PROMPT = """You are a helpful assistant.""".strip()
TOOL_PROMPT = """# ToolsYou may call one or more functions to assist with the user query.You are provided with function signatures within <tools></tools> XML tags:<tools>{tool_text}</tools>""".strip()
FORMAT_PROMPT = """For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:<tool_call>{"name": <function-name>, "arguments": <args-json-object>}</tool_call>""".strip()
# Define available tools
get_weather_api = {
"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"],
},
},
}
openai_format_tools = [get_weather_api]
defconvert_tools(tools: List[Dict[str, Any]]):
return"\n".join([json.dumps(tool) for tool in tools])
# Helper function to create the system prompt for our modeldefformat_prompt(tools: List[Dict[str, Any]]):
tool_text = convert_tools(tools)
return (
TASK_PROMPT
+ "\n\n"
+ TOOL_PROMPT.format(tool_text=tool_text)
+ "\n\n"
+ FORMAT_PROMPT
+ "\n"
)
system_prompt = format_prompt(openai_format_tools)
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "What is the weather in Seattle?"},
]
inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=512,
do_sample=False,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
)
response = tokenizer.decode(outputs[0][len(inputs[0]) :], skip_special_tokens=True)
print(response)
Then you should be able to see the following output string in JSON format:
Arch-Function-7B.gguf huggingface.co is an AI model on huggingface.co that provides Arch-Function-7B.gguf's model effect (), which can be used instantly with this katanemo Arch-Function-7B.gguf model. huggingface.co supports a free trial of the Arch-Function-7B.gguf model, and also provides paid use of the Arch-Function-7B.gguf. Support call Arch-Function-7B.gguf model through api, including Node.js, Python, http.
Arch-Function-7B.gguf huggingface.co is an online trial and call api platform, which integrates Arch-Function-7B.gguf's modeling effects, including api services, and provides a free online trial of Arch-Function-7B.gguf, you can try Arch-Function-7B.gguf online for free by clicking the link below.
katanemo Arch-Function-7B.gguf online free url in huggingface.co:
Arch-Function-7B.gguf is an open source model from GitHub that offers a free installation service, and any user can find Arch-Function-7B.gguf on GitHub to install. At the same time, huggingface.co provides the effect of Arch-Function-7B.gguf install, users can directly use Arch-Function-7B.gguf installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
Arch-Function-7B.gguf install url in huggingface.co: