--- license: apache-2.0 datasets: - glaiveai/glaive-function-calling-v2 language: - en base_model: - Qwen/Qwen2.5-Coder-32B-Instruct pipeline_tag: text-generation library_name: transformers tags: - tools - functions --- # Qwen2.5-Coder-32B-Glaive-ToolCall ![image/png](https://cdn-uploads.huggingface.co/production/uploads/664589a52d210101d1eac6ad/IMisY9Pshs1fttddbaVoj.png) ## Model Description This model is a fine-tuned version of [Qwen/Qwen2.5-Coder-32B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) specifically enhanced for tool calling capabilities. The model has been trained using the [Glaive Function Calling v2](https://huggingface.co/datasets/glaiveai/glaive-function-calling-v2) dataset (`glaiveai/glaive-function-calling-v2`) to significantly improve its ability to understand, generate, and execute function calls in various programming and automation contexts. ## Model Details - **Base Model**: Qwen/Qwen2.5-Coder-32B-Instruct - **Model Type**: Large Language Model (LLM) with enhanced tool calling capabilities - **Architecture**: Transformer-based decoder model - **Parameters**: 32 billion parameters - **Fine-tuning Method**: LoRA (Low-Rank Adaptation) - **Training Dataset**: glaive-function-calling-v2 - **Language Support**: Multilingual ## Training Configuration - **Fine-tuning Type**: LoRA with rank 8, alpha 16 - **Training Epochs**: 3.0 - **Learning Rate**: 5e-5 with cosine scheduler - **Batch Size**: 2 per device with 8 gradient accumulation steps - **Context Length**: 2048 tokens - **Optimizer**: AdamW - **Precision**: BF16 - **Max Samples**: 100,000 ## Enhanced Capabilities ### Tool Calling Improvements This model demonstrates significant improvements in: 1. **Function Schema Understanding**: Enhanced ability to parse and understand complex function signatures and parameter requirements 2. **Context-Aware Tool Selection**: Improved decision-making for selecting appropriate tools based on user queries 3. **Parameter Extraction**: Better extraction and formatting of function parameters from natural language inputs 4. **Multi-step Tool Orchestration**: Enhanced capability to chain multiple tool calls for complex tasks 5. **Error Handling**: Improved error detection and recovery in tool calling scenarios ### Key Features - **Robust JSON Generation**: Produces well-formatted JSON for function calls with proper schema adherence - **Natural Language Integration**: Seamlessly integrates tool calls within conversational responses - **Code Generation with Tools**: Enhanced ability to generate code that incorporates external tool usage - **API Integration**: Improved understanding of REST APIs, GraphQL, and other web service interfaces ## Use Cases This model is particularly well-suited for: - **AI Assistants**: Building conversational AI that can interact with external systems - **Automation Workflows**: Creating intelligent automation scripts with dynamic tool usage - **Code Generation**: Generating code that integrates with APIs and external services - **Data Processing**: Automating data analysis and processing tasks with appropriate tools - **System Integration**: Building bridges between different software systems and services ## Usage Example ```python from transformers import AutoTokenizer, AutoModelForCausalLM import torch # Load the model and tokenizer model_name = "RekklesAI/Qwen2.5-Coder-32B-Glaive-ToolCall" tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True ) # Example prompt for tool calling prompt = """You have access to a weather API. Help me get the current weather for New York City. Available tools: - get_weather(location: str, units: str = "metric") -> dict User: What's the weather like in New York City?""" # Generate response inputs = tokenizer(prompt, return_tensors="pt") with torch.no_grad(): outputs = model.generate( inputs.input_ids, max_new_tokens=512, temperature=0.7, do_sample=True, pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) print(response) ``` ## Performance Metrics The model shows significant improvements in tool calling benchmarks: - **Function Call Accuracy**: Enhanced precision in generating syntactically correct function calls - **Parameter Extraction**: Improved accuracy in extracting relevant parameters from user queries - **Tool Selection**: Better performance in selecting appropriate tools for given tasks - **JSON Formatting**: Reduced errors in JSON structure and formatting ### Training Loss The following chart shows the training loss progression during the fine-tuning process: ![image/png](https://cdn-uploads.huggingface.co/production/uploads/664589a52d210101d1eac6ad/Sua8TvQq409lzzUJMXM0h.png) *Training loss curve demonstrating stable convergence over 3 epochs with the Glaive Function Calling v2 dataset.* ## Limitations - The model's tool calling capabilities are primarily trained on the patterns present in the Glaive Function Calling v2 dataset - Performance may vary for highly specialized or domain-specific tools not represented in the training data - Like all LLMs, the model may occasionally generate plausible-sounding but incorrect tool calls - The model requires careful prompt engineering for optimal tool calling performance ## Ethical Considerations - **Tool Safety**: Users should implement proper validation and sandboxing when allowing the model to execute actual tool calls - **Access Control**: Implement appropriate access controls and permissions for tools accessible to the model - **Data Privacy**: Be mindful of sensitive data that might be passed through tool calls - **Monitoring**: Implement logging and monitoring for tool usage in production environments ## Training Data The model was fine-tuned using the **Glaive Function Calling v2** dataset (`glaiveai/glaive-function-calling-v2`), a comprehensive and high-quality dataset specifically designed for training language models in function calling capabilities. ### Dataset Overview - **Dataset Size**: 113,000 training examples - **Format**: JSON with structured conversations - **Language**: English - **License**: Apache 2.0 - **Source**: [Glaive AI](https://huggingface.co/datasets/glaiveai/glaive-function-calling-v2) ### Dataset Characteristics The Glaive Function Calling v2 dataset is meticulously curated to provide diverse and realistic function calling scenarios: #### **Conversation Structure** - **System Messages**: Define the assistant's role and available functions with detailed schemas - **Multi-turn Dialogues**: Natural conversations between users and AI assistants - **Function Calls**: Properly formatted JSON function invocations - **Function Responses**: Realistic API responses and result handling - **Error Scenarios**: Examples of graceful error handling and capability limitations #### **Function Diversity** The dataset covers a wide range of function types and use cases: - **Utility Functions**: Email sending, calendar management, password generation - **Data Retrieval**: News headlines, stock prices, weather information - **Computational Tasks**: Mathematical calculations, unit conversions, data analysis - **Search Operations**: Movie searches, book lookups, general information retrieval - **Communication Tools**: Contact management, messaging systems - **Financial Services**: Exchange rates, loan calculations, investment data - **Content Creation**: Text generation, formatting, summarization #### **Quality Features** 1. **Realistic Scenarios**: Conversations mirror real-world user interactions with AI assistants 2. **Proper Error Handling**: Examples of polite refusals when functions are unavailable 3. **Parameter Validation**: Correct handling of required and optional function parameters 4. **Context Awareness**: Functions are called appropriately based on conversation context 5. **Natural Language Integration**: Seamless integration of function results into conversational responses #### **Training Examples Include**: - **Single Function Calls**: Simple, direct function invocations - **Multi-step Workflows**: Complex scenarios requiring multiple function calls - **Parameter Extraction**: Converting natural language requests into structured function parameters - **Response Formatting**: Presenting function results in user-friendly formats - **Capability Boundaries**: Clear communication of system limitations ### Dataset Impact on Model Performance This carefully curated dataset enables the model to: - **Understand Function Schemas**: Parse and comprehend complex function definitions - **Extract Parameters**: Accurately identify and format required function arguments from user queries - **Generate Valid JSON**: Produce syntactically correct function calls - **Handle Edge Cases**: Manage scenarios where requested functions are unavailable - **Maintain Conversational Flow**: Integrate function calling seamlessly into natural dialogue - **Provide Helpful Responses**: Transform function results into meaningful user communications ### Technical Implementation The dataset follows industry-standard formats for function calling: - OpenAI-compatible function schemas - Structured JSON for function definitions and calls - Clear separation between system instructions, user queries, and function responses - Consistent formatting across all examples This comprehensive training data ensures the model can handle real-world function calling scenarios with high accuracy and reliability, making it suitable for production deployment in AI assistant applications, automation workflows, and API integration tasks. ## Technical Specifications - **Framework**: Built using LLaMA-Factory - **Hardware Requirements**: Recommended 80GB+ VRAM for inference - **Quantization**: Compatible with various quantization methods (GPTQ, AWQ, etc.) - **Deployment**: Suitable for both cloud and on-premise deployment ## Citation If you use this model in your research or applications, please cite: ```bibtex @misc{qwen25-coder-glaive-toolcall, title={Qwen2.5-Coder-32B-Glaive-ToolCall}, author={[RekklesAI]}, year={2025}, note={Fine-tuned version of Qwen2.5-Coder-32B-Instruct with enhanced tool calling capabilities using Glaive dataset} } ``` ## License apache-2.0 ## Acknowledgments - **Qwen Team**: For the excellent base model Qwen2.5-Coder-32B-Instruct - **Glaive**: For providing the high-quality tool calling dataset - **LLaMA-Factory**: For the efficient fine-tuning framework --- *This model card follows the guidelines for responsible AI model documentation and transparency.*