dyang415's picture
Update README.md
96c196d verified
metadata
license: apache-2.0
tags:
  - function
  - function-calling
  - tool-using

[Deprecation]:

Please use the new empower functions v1.1 models family.

v1.1 is fully compatible with the existing prompts and has much better accuracy and a longer context window.

Empower Functions Model

image/png

https://github.com/empower-ai/empower-functions

Empower Functions is a family of LLMs(large language models) that offer GPT-4 level capabilities for real-world "tool using" use cases, with full compatibility support to be served as a drop-in replacement.

This is the llama3-empower-functions-large model, which requires 4XA100 to run. For smaller models that can run on more affordable devices, please visit the empower-functions collection

Key Features

  • Automatic tool using, able to decide when to use tools and when to converse, optimized for long conversations
  • Parallel call, supports calling one function multiple times, multiple functions, or a combination of both
  • Sequential calling, supports calling multiple functions sequentially to fulfill the user request
  • Streaming

Family of Models

Model Specs Links Notes
llama3-empower-functions-small 8k context, based on Llama3 8B model, GGUF Most cost-effective, locally runnable
empower-functions-medium 32k context, based on Mixtral 8x7B model Balance in accuracy and cost
llama3-empower-functions-large 8k context, based on Llama3 70B model Best accuracy

Hardware Requirement

We have tested and the family of models in following setup:

  • empower-functions-small: fp16 on 1xA100 40G, GGUF and 4bit GGUF on Macbook M2 Pro with 32G RAM, in minimal the 4bit GGUF version requires 7.56G RAM.
  • empower-functions-medium: fp16 on 2xA100 80G
  • empower-functions-large: fp16 on 4xA100 80G

Usage

There are three ways to use the empower-functions model. You can either directly prompt the raw model, run it locally through llama-cpp-python, or use our hosted API

Evaluation

We benchmarked our model against a few other options, on three datasets:

  • Single Turn Dataset: The model is evaluated for its ability to execute a precise function call, assessing both the accuracy of the selected function and the arguments.

  • Parallel Call Dataset: In this scenario, the model demonstrates its capacity to handle multiple (2-6) function calls within a single message, a feature not supported by Fireworks and Anyscale.

  • Multi-Turn Dataset: Designed to simulate a complex real-world environment, such as a healthcare appointment booking system, the model navigates between natural conversation, initiating function calls, asking clarifying questions, and, when necessary, transferring to customer service. The assessment focuses on the accuracy of intent classification and the correctness of function calls.

For more detailed evaluation result, please refer to our github repo

Demo App

Check our healthcare appointment booking demo

Want to customize the model? Please contact us at [email protected]