--- license: cc-by-sa-4.0 datasets: - glaiveai/glaive-function-calling --- # glaive-function-calling-v1 glaive-function-calling-v1 is a 2.7B parameter open source chat model trained on data generated from Glaive’s synthetic data generation platform, which has similar function calling abilities as gpt-3.5 and gpt 4. The model is capable of having multi-turn conversations and intelligently choosing when to execute a function (provided at the beginning of the conversation as a system prompt) based on the conversation. The model is trained on top of the https://huggingface.co/replit/replit-code-v1-3b model. ## Usage: You can run the model in the following way- ``` from transformers import AutoModelForCausalLM , AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("glaiveai/glaive-function-calling-v1", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained("glaiveai/glaive-function-calling-v1", trust_remote_code=True).half().cuda() inputs = tokenizer(prompt,return_tensors="pt").to(model.device) outputs = model.generate(**inputs,do_sample=True,temperature=0.1,top_p=0.95,max_new_tokens=100) print(tokenizer.decode(outputs[0],skip_special_tokens=True)) ``` This model uses the following prompt format- ``` SYSTEM: You are an helpful assistant who has access to the following functions to help the user, you can use the functions if needed- { "name": "plan_holiday", "description": "Plan a holiday based on user's interests", "parameters": { "type": "object", "properties": { "destination": { "type": "string", "description": "The destination of the holiday", }, "duration": { "type": "integer", "description": "The duration of the trip in holiday", }, }, "required": ["destination", "duration"], }, } USER: I am thinking of having a 10 day long vacation in Greece, can you help me plan it? ``` Based on which the model outputs- ``` ASSISTANT: {"name": "plan_holiday", "arguments": '{ "destination": "Greece", "duration": 10 }'} ``` The model precedes all function invocations with ``. The response of the function call should be sent to the model as- ``` FUNCTION CALL: {"places_to_visit":["Athens","Santorini","Mykonos"]} ``` The model can do multi-turn conversation in the above format. We're working on providing an inference server which can act as a drop in replacement to the OpenAI API, you can follow [this](https://github.com/glaive-ai/function-calling-server) repo for the server. ## Known Limitations: - While the model does well on function calling use-cases, it doesn't always generalize very well to other chat use-cases. This is intentional as our thesis at Glaive is to provide use-case specialised model that are only used for the given task. - The model may sometimes hallucinate functions, v2 of the model will be aimed to fix that with a bigger dataset.