|
|
--- |
|
|
library_name: transformers |
|
|
tags: |
|
|
- LAM |
|
|
- tooluse |
|
|
- function calling |
|
|
license: mit |
|
|
datasets: |
|
|
- Salesforce/xlam-function-calling-60k |
|
|
--- |
|
|
|
|
|
# Model Card for Model ID |
|
|
|
|
|
ActionGemma is a LargeActionModel inspired from Salesforce/xLAM and trained on it's dataset. this is a combination of multi-lingual capabilities of Gemma with Function calling capabilites from xLAM dataset |
|
|
Now you have a Action /function calling Model for all the languages supported by gemma2 |
|
|
|
|
|
|
|
|
## Model Details |
|
|
|
|
|
Base Model : Gemma2-9B-it |
|
|
Fine-Tuned on : xLAM dataset |
|
|
|
|
|
### Model Description |
|
|
|
|
|
<!-- Provide a longer summary of what this model is. --> |
|
|
|
|
|
This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated. |
|
|
|
|
|
- **Developed by:** KishoreK |
|
|
- **Funded by [optional]:** [More Information Needed] |
|
|
- **Shared by [optional]:** [More Information Needed] |
|
|
- **Model type:** [More Information Needed] |
|
|
- **Language(s) (NLP):** [More Information Needed] |
|
|
- **License:** [More Information Needed] |
|
|
- **Finetuned from model [optional]:** Gemma2-9B-it |
|
|
|
|
|
### Model Sources [optional] |
|
|
|
|
|
<!-- Provide the basic links for the model. --> |
|
|
|
|
|
- **Repository:** [More Information Needed] |
|
|
- **Paper [optional]:** [More Information Needed] |
|
|
- **Demo [optional]:** [More Information Needed] |
|
|
|
|
|
## Uses |
|
|
|
|
|
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. --> |
|
|
|
|
|
### Direct Use |
|
|
|
|
|
<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. --> |
|
|
tokenizer in built have a chat template as follows |
|
|
``` |
|
|
tokenizer = AutoTokenizer.from_pretrained("KishoreK/ActionGemma-9B") |
|
|
tokenizer.chat_template = """{{ bos_token }} |
|
|
{% for message in messages %} |
|
|
{% if message['role'] == 'tools' %} |
|
|
{{ '<unused0>\n' + message['content'] + '<unused1>\n'}} |
|
|
{% else %} |
|
|
{{ '<start_of_turn>' + message['role'] + '\n' + message['content'] | trim + '<end_of_turn>\n' }} |
|
|
{% endif %} |
|
|
{% endfor %} |
|
|
|
|
|
{% if add_generation_prompt %} |
|
|
{{ '<start_of_turn>assistant\n' }} |
|
|
{% endif %} |
|
|
""" |
|
|
``` |
|
|
you can utilise this or modify based on this syntax. |
|
|
|
|
|
``` |
|
|
task_instruction = """ |
|
|
You are an expert in composing functions. You are given a question and a set of possible functions. |
|
|
Based on the question, you will need to make one or more function/tool calls to achieve the purpose. |
|
|
If none of the functions can be used, point it out and refuse to answer. |
|
|
If the given question lacks the parameters required by the function, also point it out. |
|
|
""".strip() |
|
|
|
|
|
get_weather_api = { |
|
|
"name": "get_weather", |
|
|
"description": "Get the current weather for a location", |
|
|
"parameters": { |
|
|
"type": "object", |
|
|
"properties": { |
|
|
"location": { |
|
|
"type": "string", |
|
|
"description": "The city and state, e.g. San Francisco, New York" |
|
|
}, |
|
|
"unit": { |
|
|
"type": "string", |
|
|
"enum": ["celsius", "fahrenheit"], |
|
|
"description": "The unit of temperature to return" |
|
|
} |
|
|
}, |
|
|
"required": ["location"] |
|
|
} |
|
|
} |
|
|
|
|
|
search_api = { |
|
|
"name": "search", |
|
|
"description": "Search for information on the internet", |
|
|
"parameters": { |
|
|
"type": "object", |
|
|
"properties": { |
|
|
"query": { |
|
|
"type": "string", |
|
|
"description": "The search query, e.g. 'latest news on AI'" |
|
|
} |
|
|
}, |
|
|
"required": ["query"] |
|
|
} |
|
|
} |
|
|
|
|
|
openai_format_tools = [get_weather_api, search_api] |
|
|
|
|
|
def convert_to_xlam_tool(tools): |
|
|
'''''' |
|
|
if isinstance(tools, dict): |
|
|
return { |
|
|
"name": tools["name"], |
|
|
"description": tools["description"], |
|
|
"parameters": {k: v for k, v in tools["parameters"].get("properties", {}).items()} |
|
|
} |
|
|
elif isinstance(tools, list): |
|
|
return [convert_to_xlam_tool(tool) for tool in tools] |
|
|
else: |
|
|
return tools |
|
|
|
|
|
user_query = "अमेरिका के राष्ट्रपति कौन है?" |
|
|
tools = openai_format_tools |
|
|
messages = [{ |
|
|
"role" : "system", |
|
|
"content" : task_instruction |
|
|
},{ |
|
|
"role" : "user", |
|
|
"content" : user_query |
|
|
},{ |
|
|
"role": "tools", |
|
|
"content": json.dumps(convert_to_xlam_tool(tools)) |
|
|
}] |
|
|
|
|
|
print(tokenizer.decode(tokenizer.apply_chat_template(messages, add_generation_prompt=True))) |
|
|
``` |
|
|
|
|
|
sample response from applied chat template |
|
|
``` |
|
|
<bos> |
|
|
<start_of_turn>system |
|
|
You are an expert in composing functions. You are given a question and a set of possible functions. |
|
|
Based on the question, you will need to make one or more function/tool calls to achieve the purpose. |
|
|
If none of the functions can be used, point it out and refuse to answer. |
|
|
If the given question lacks the parameters required by the function, also point it out.<end_of_turn> |
|
|
|
|
|
<start_of_turn>user |
|
|
अमेरिका के राष्ट्रपति कौन है?<end_of_turn> |
|
|
|
|
|
<unused0> |
|
|
[{"name": "get_weather", "description": "Get the current weather for a location", "parameters": {"location": {"type": "string", "description": "The city and state, e.g. San Francisco, New York"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"], "description": "The unit of temperature to return"}}}, {"name": "search", "description": "Search for information on the internet", "parameters": {"query": {"type": "string", "description": "The search query, e.g. 'latest news on AI'"}}}]<unused1> |
|
|
|
|
|
|
|
|
<start_of_turn>assistant |
|
|
``` |
|
|
invoking model with this prompt |
|
|
``` |
|
|
model = AutoModelForCausalLM.from_pretrained("KishoreK/ActionGemma-9B", use_cache=True) |
|
|
outputs = model.generate(inputs, max_new_tokens=512, do_sample=False, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id) |
|
|
print(tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True)) |
|
|
``` |
|
|
output for the question |
|
|
``` |
|
|
[{"name": "search", "arguments": {"query": "US President"}}] |
|
|
``` |
|
|
chat template, inference are referenced from xLAM documentation. |
|
|
[More Information Needed] |
|
|
|
|
|
### Downstream Use [optional] |
|
|
|
|
|
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
### Out-of-Scope Use |
|
|
|
|
|
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Bias, Risks, and Limitations |
|
|
|
|
|
<!-- This section is meant to convey both technical and sociotechnical limitations. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
### Recommendations |
|
|
|
|
|
<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. --> |
|
|
|
|
|
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. |
|
|
|
|
|
## How to Get Started with the Model |
|
|
|
|
|
Use the code below to get started with the model. |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Training Details |
|
|
|
|
|
### Training Data |
|
|
|
|
|
<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
### Training Procedure |
|
|
|
|
|
<!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. --> |
|
|
|
|
|
#### Preprocessing [optional] |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
|
|
|
#### Training Hyperparameters |
|
|
|
|
|
- **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision --> |
|
|
|
|
|
#### Speeds, Sizes, Times [optional] |
|
|
|
|
|
<!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Evaluation |
|
|
|
|
|
<!-- This section describes the evaluation protocols and provides the results. --> |
|
|
|
|
|
### Testing Data, Factors & Metrics |
|
|
|
|
|
#### Testing Data |
|
|
|
|
|
<!-- This should link to a Dataset Card if possible. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
#### Factors |
|
|
|
|
|
<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
#### Metrics |
|
|
|
|
|
<!-- These are the evaluation metrics being used, ideally with a description of why. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
### Results |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
#### Summary |
|
|
|
|
|
|
|
|
|
|
|
## Model Examination [optional] |
|
|
|
|
|
<!-- Relevant interpretability work for the model goes here --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Environmental Impact |
|
|
|
|
|
<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly --> |
|
|
|
|
|
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). |
|
|
|
|
|
- **Hardware Type:** [More Information Needed] |
|
|
- **Hours used:** [More Information Needed] |
|
|
- **Cloud Provider:** [More Information Needed] |
|
|
- **Compute Region:** [More Information Needed] |
|
|
- **Carbon Emitted:** [More Information Needed] |
|
|
|
|
|
## Technical Specifications [optional] |
|
|
|
|
|
### Model Architecture and Objective |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
### Compute Infrastructure |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
#### Hardware |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
#### Software |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Citation [optional] |
|
|
|
|
|
<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. --> |
|
|
|
|
|
**BibTeX:** |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
**APA:** |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Glossary [optional] |
|
|
|
|
|
<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. --> |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## More Information [optional] |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Model Card Authors [optional] |
|
|
|
|
|
[More Information Needed] |
|
|
|
|
|
## Model Card Contact |
|
|
|
|
|
email : Kishorekunisetty123@gmail.com |