kingabzpro commited on
Commit
4c8f81b
·
verified ·
1 Parent(s): d740867

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +116 -152
README.md CHANGED
@@ -3,199 +3,163 @@ library_name: transformers
3
  tags:
4
  - trl
5
  - sft
 
 
 
 
 
 
 
 
 
 
6
  ---
7
 
8
- # Model Card for Model ID
9
 
10
- <!-- Provide a quick summary of what the model is/does. -->
11
 
 
12
 
13
 
14
- ## Model Details
15
 
16
- ### Model Description
17
 
18
- <!-- Provide a longer summary of what this model is. -->
 
 
 
19
 
20
- This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
21
 
22
- - **Developed by:** [More Information Needed]
23
- - **Funded by [optional]:** [More Information Needed]
24
- - **Shared by [optional]:** [More Information Needed]
25
- - **Model type:** [More Information Needed]
26
- - **Language(s) (NLP):** [More Information Needed]
27
- - **License:** [More Information Needed]
28
- - **Finetuned from model [optional]:** [More Information Needed]
29
 
30
- ### Model Sources [optional]
31
 
32
- <!-- Provide the basic links for the model. -->
33
 
34
- - **Repository:** [More Information Needed]
35
- - **Paper [optional]:** [More Information Needed]
36
- - **Demo [optional]:** [More Information Needed]
 
 
37
 
38
- ## Uses
39
 
40
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
41
 
42
- ### Direct Use
43
 
44
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
45
 
46
- [More Information Needed]
 
 
47
 
48
- ### Downstream Use [optional]
49
 
50
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
51
 
52
- [More Information Needed]
53
 
54
- ### Out-of-Scope Use
 
55
 
56
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
57
 
58
- [More Information Needed]
 
59
 
60
- ## Bias, Risks, and Limitations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
- [More Information Needed]
 
 
 
 
 
 
65
 
66
- ### Recommendations
67
 
68
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
 
 
 
 
69
 
70
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
 
 
 
71
 
72
- ## How to Get Started with the Model
 
73
 
74
- Use the code below to get started with the model.
75
 
76
- [More Information Needed]
 
 
 
 
77
 
78
- ## Training Details
79
 
80
- ### Training Data
81
 
82
- <!-- 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. -->
 
 
 
 
83
 
84
- [More Information Needed]
85
 
86
- ### Training Procedure
87
 
88
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
89
 
90
- #### Preprocessing [optional]
 
 
91
 
92
- [More Information Needed]
93
 
94
 
95
- #### Training Hyperparameters
 
 
 
 
 
96
 
97
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
98
-
99
- #### Speeds, Sizes, Times [optional]
100
-
101
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
102
-
103
- [More Information Needed]
104
-
105
- ## Evaluation
106
-
107
- <!-- This section describes the evaluation protocols and provides the results. -->
108
-
109
- ### Testing Data, Factors & Metrics
110
-
111
- #### Testing Data
112
-
113
- <!-- This should link to a Dataset Card if possible. -->
114
-
115
- [More Information Needed]
116
-
117
- #### Factors
118
-
119
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
120
-
121
- [More Information Needed]
122
-
123
- #### Metrics
124
-
125
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
126
-
127
- [More Information Needed]
128
-
129
- ### Results
130
-
131
- [More Information Needed]
132
-
133
- #### Summary
134
-
135
-
136
-
137
- ## Model Examination [optional]
138
-
139
- <!-- Relevant interpretability work for the model goes here -->
140
-
141
- [More Information Needed]
142
-
143
- ## Environmental Impact
144
-
145
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
146
-
147
- 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).
148
-
149
- - **Hardware Type:** [More Information Needed]
150
- - **Hours used:** [More Information Needed]
151
- - **Cloud Provider:** [More Information Needed]
152
- - **Compute Region:** [More Information Needed]
153
- - **Carbon Emitted:** [More Information Needed]
154
-
155
- ## Technical Specifications [optional]
156
-
157
- ### Model Architecture and Objective
158
-
159
- [More Information Needed]
160
-
161
- ### Compute Infrastructure
162
-
163
- [More Information Needed]
164
-
165
- #### Hardware
166
-
167
- [More Information Needed]
168
-
169
- #### Software
170
-
171
- [More Information Needed]
172
-
173
- ## Citation [optional]
174
-
175
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
176
-
177
- **BibTeX:**
178
-
179
- [More Information Needed]
180
-
181
- **APA:**
182
-
183
- [More Information Needed]
184
-
185
- ## Glossary [optional]
186
-
187
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
188
-
189
- [More Information Needed]
190
-
191
- ## More Information [optional]
192
-
193
- [More Information Needed]
194
-
195
- ## Model Card Authors [optional]
196
-
197
- [More Information Needed]
198
-
199
- ## Model Card Contact
200
-
201
- [More Information Needed]
 
3
  tags:
4
  - trl
5
  - sft
6
+ license: apache-2.0
7
+ datasets:
8
+ - interstellarninja/hermes_reasoning_tool_use
9
+ language:
10
+ - en
11
+ metrics:
12
+ - accuracy
13
+ base_model:
14
+ - google/functiongemma-270m-it
15
+ pipeline_tag: text-generation
16
  ---
17
 
18
+ # FunctionGemma Hermes Tool-Use (3K Fine-tuned)
19
 
20
+ This model is a **fine-tuned version of Google’s FunctionGemma (270M)**, trained on a curated subset of the **Hermes Tool-Use** dataset to improve **structured function calling**.
21
 
22
+ The goal of this fine-tuning is **higher accuracy and reliability** when selecting the correct tool and emitting a valid function call in the expected format.
23
 
24
 
25
+ ## 🚀 What’s Improved
26
 
27
+ Evaluation was run on a held-out validation set (50 examples):
28
 
29
+ | Metric | Before FT | After FT |
30
+ |------|-----------|----------|
31
+ | Tool Selection Accuracy | **92.0%** | **98.0%** |
32
+ | Absolute Gain | – | **+6.0%** |
33
 
34
+ This shows the model learns **better tool selection and call consistency**, even though the base model already performs strongly.
35
 
 
 
 
 
 
 
 
36
 
37
+ ## 🧠 Supported Output Format
38
 
39
+ The model emits function calls in **FunctionGemma-style** tags:
40
 
41
+ ```text
42
+ <start_function_call>
43
+ call:tool_name{args:<escape>{...}<escape>}
44
+ <end_function_call>
45
+ ````
46
 
47
+ This is compatible with downstream tool execution pipelines.
48
 
 
49
 
 
50
 
51
+ ## 📦 Installation
52
 
53
+ ```bash
54
+ pip install transformers accelerate sentencepiece
55
+ ```
56
 
 
57
 
 
58
 
59
+ ## 🔧 Usage Example (Function Calling)
60
 
61
+ ```python
62
+ from transformers import AutoProcessor, AutoModelForCausalLM
63
 
64
+ repo_id = "kingabzpro/functiongemma-hermes-3k-ft"
65
 
66
+ processor = AutoProcessor.from_pretrained(repo_id)
67
+ model = AutoModelForCausalLM.from_pretrained(repo_id)
68
 
69
+ # Tool definition (HF function schema)
70
+ tools = [
71
+ {
72
+ "type": "function",
73
+ "function": {
74
+ "name": "billboard_global_200",
75
+ "description": "Fetch Billboard Global 200 chart information for a specific date.",
76
+ "parameters": {
77
+ "type": "object",
78
+ "properties": {
79
+ "date": {
80
+ "type": "string",
81
+ "description": "Date in YYYY-MM-DD format",
82
+ "default": "2020-09-19",
83
+ }
84
+ },
85
+ "required": ["date"],
86
+ },
87
+ },
88
+ }
89
+ ]
90
 
91
+ messages = [
92
+ {
93
+ "role": "developer",
94
+ "content": (
95
+ "You are a function calling AI model. "
96
+ "Each function call must be enclosed in <tool_call> XML tags."
97
+ ),
98
+ },
99
+ {
100
+ "role": "user",
101
+ "content": (
102
+ "Which songs were at positions 1, 11, 21, 31, and 41 "
103
+ "on the Billboard Global 200 chart, and who sang them?"
104
+ ),
105
+ },
106
+ ]
107
 
108
+ inputs = processor.apply_chat_template(
109
+ messages,
110
+ tools=tools,
111
+ add_generation_prompt=True,
112
+ return_dict=True,
113
+ return_tensors="pt",
114
+ )
115
 
116
+ inputs = {k: v.to(model.device) for k, v in inputs.items()}
117
 
118
+ outputs = model.generate(
119
+ **inputs,
120
+ max_new_tokens=256,
121
+ pad_token_id=processor.eos_token_id,
122
+ )
123
 
124
+ gen = processor.decode(
125
+ outputs[0][inputs["input_ids"].shape[-1]:],
126
+ skip_special_tokens=True,
127
+ )
128
 
129
+ print(gen)
130
+ ```
131
 
132
+ ### Example Output
133
 
134
+ ```text
135
+ <start_function_call>
136
+ call:billboard_global_200{args:<escape>{"date": "2006-03-20"}<escape>}
137
+ <end_function_call>
138
+ ```
139
 
 
140
 
141
+ ## 🎯 Intended Use
142
 
143
+ * Tool / function calling research
144
+ * Agent systems and planners
145
+ * Structured API invocation
146
+ * Evaluation of tool-selection accuracy
147
+ * Lightweight function-calling demos (CPU / small GPU friendly)
148
 
 
149
 
 
150
 
151
+ ## ⚠️ Limitations
152
 
153
+ * Trained on a **subset (3K)** of Hermes Tool-Use data
154
+ * Focused on **tool selection**, not long-form reasoning
155
+ * Not instruction-tuned for general chat beyond tool use
156
 
 
157
 
158
 
159
+ ## 📜 Attribution
160
+
161
+ * Base model: **Google FunctionGemma**
162
+ * Dataset: **Hermes Tool-Use**
163
+ * Fine-tuning & evaluation: **kingabzpro**
164
+
165