hirundo 0.1.21__py3-none-any.whl → 0.2.3.post1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hirundo/__init__.py +19 -3
- hirundo/_constraints.py +2 -3
- hirundo/_iter_sse_retrying.py +7 -4
- hirundo/_llm_pipeline.py +153 -0
- hirundo/_run_checking.py +283 -0
- hirundo/_urls.py +1 -0
- hirundo/cli.py +1 -4
- hirundo/dataset_enum.py +2 -0
- hirundo/dataset_qa.py +106 -190
- hirundo/dataset_qa_results.py +3 -3
- hirundo/git.py +7 -8
- hirundo/labeling.py +22 -19
- hirundo/storage.py +25 -24
- hirundo/unlearning_llm.py +599 -0
- hirundo/unzip.py +3 -3
- {hirundo-0.1.21.dist-info → hirundo-0.2.3.post1.dist-info}/METADATA +42 -10
- hirundo-0.2.3.post1.dist-info/RECORD +28 -0
- {hirundo-0.1.21.dist-info → hirundo-0.2.3.post1.dist-info}/WHEEL +1 -1
- hirundo-0.1.21.dist-info/RECORD +0 -25
- {hirundo-0.1.21.dist-info → hirundo-0.2.3.post1.dist-info}/entry_points.txt +0 -0
- {hirundo-0.1.21.dist-info → hirundo-0.2.3.post1.dist-info}/licenses/LICENSE +0 -0
- {hirundo-0.1.21.dist-info → hirundo-0.2.3.post1.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hirundo
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.3.post1
|
|
4
4
|
Summary: This package is used to interface with Hirundo's platform. It provides a simple API to optimize your ML datasets.
|
|
5
5
|
Author-email: Hirundo <dev@hirundo.io>
|
|
6
6
|
License: MIT License
|
|
@@ -18,7 +18,7 @@ Keywords: dataset,machine learning,data science,data engineering
|
|
|
18
18
|
Classifier: License :: OSI Approved :: MIT License
|
|
19
19
|
Classifier: Programming Language :: Python
|
|
20
20
|
Classifier: Programming Language :: Python :: 3
|
|
21
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: pyyaml>=6.0.1
|
|
@@ -34,8 +34,9 @@ Requires-Dist: httpx-sse>=0.4.0
|
|
|
34
34
|
Requires-Dist: tqdm>=4.66.5
|
|
35
35
|
Requires-Dist: h11>=0.16.0
|
|
36
36
|
Requires-Dist: requests>=2.32.4
|
|
37
|
-
Requires-Dist: urllib3>=2.
|
|
37
|
+
Requires-Dist: urllib3>=2.6.3
|
|
38
38
|
Requires-Dist: setuptools>=78.1.1
|
|
39
|
+
Requires-Dist: docutils<0.22.0
|
|
39
40
|
Provides-Extra: dev
|
|
40
41
|
Requires-Dist: pyyaml>=6.0.1; extra == "dev"
|
|
41
42
|
Requires-Dist: types-PyYAML>=6.0.12; extra == "dev"
|
|
@@ -50,15 +51,18 @@ Requires-Dist: stamina>=24.2.0; extra == "dev"
|
|
|
50
51
|
Requires-Dist: httpx-sse>=0.4.0; extra == "dev"
|
|
51
52
|
Requires-Dist: pytest>=8.2.0; extra == "dev"
|
|
52
53
|
Requires-Dist: pytest-asyncio>=0.23.6; extra == "dev"
|
|
53
|
-
Requires-Dist: uv>=0.
|
|
54
|
+
Requires-Dist: uv>=0.9.6; extra == "dev"
|
|
54
55
|
Requires-Dist: pre-commit>=3.7.1; extra == "dev"
|
|
56
|
+
Requires-Dist: basedpyright==1.37.1; extra == "dev"
|
|
55
57
|
Requires-Dist: virtualenv>=20.6.6; extra == "dev"
|
|
58
|
+
Requires-Dist: authlib>=1.6.6; extra == "dev"
|
|
56
59
|
Requires-Dist: ruff>=0.12.0; extra == "dev"
|
|
57
|
-
Requires-Dist: bumpver; extra == "dev"
|
|
60
|
+
Requires-Dist: bumpver>=2025.1131; extra == "dev"
|
|
58
61
|
Requires-Dist: platformdirs>=4.3.6; extra == "dev"
|
|
59
|
-
Requires-Dist: safety>=3.2.13; extra == "dev"
|
|
60
62
|
Requires-Dist: cryptography>=44.0.1; extra == "dev"
|
|
61
63
|
Requires-Dist: jinja2>=3.1.6; extra == "dev"
|
|
64
|
+
Requires-Dist: filelock>=3.20.1; extra == "dev"
|
|
65
|
+
Requires-Dist: marshmallow>=3.26.2; extra == "dev"
|
|
62
66
|
Provides-Extra: docs
|
|
63
67
|
Requires-Dist: sphinx>=7.4.7; extra == "docs"
|
|
64
68
|
Requires-Dist: sphinx-autobuild>=2024.9.3; extra == "docs"
|
|
@@ -67,13 +71,17 @@ Requires-Dist: autodoc_pydantic>=2.2.0; extra == "docs"
|
|
|
67
71
|
Requires-Dist: furo; extra == "docs"
|
|
68
72
|
Requires-Dist: sphinx-multiversion; extra == "docs"
|
|
69
73
|
Requires-Dist: esbonio; extra == "docs"
|
|
70
|
-
Requires-Dist: starlette>=0.
|
|
74
|
+
Requires-Dist: starlette>=0.49.1; extra == "docs"
|
|
71
75
|
Requires-Dist: markupsafe>=3.0.2; extra == "docs"
|
|
72
76
|
Requires-Dist: jinja2>=3.1.6; extra == "docs"
|
|
73
77
|
Provides-Extra: pandas
|
|
74
78
|
Requires-Dist: pandas>=2.2.3; extra == "pandas"
|
|
75
79
|
Provides-Extra: polars
|
|
76
80
|
Requires-Dist: polars>=1.0.0; extra == "polars"
|
|
81
|
+
Provides-Extra: transformers
|
|
82
|
+
Requires-Dist: transformers>=4.57.3; extra == "transformers"
|
|
83
|
+
Requires-Dist: peft>=0.18.1; extra == "transformers"
|
|
84
|
+
Requires-Dist: accelerate>=1.12.0; extra == "transformers"
|
|
77
85
|
Dynamic: license-file
|
|
78
86
|
|
|
79
87
|
# Hirundo
|
|
@@ -145,7 +153,31 @@ You can install the codebase with a simple `pip install hirundo` to install the
|
|
|
145
153
|
|
|
146
154
|
## Usage
|
|
147
155
|
|
|
148
|
-
|
|
156
|
+
### Unlearning LLM behavior
|
|
157
|
+
|
|
158
|
+
Make sure to install the `transformers` extra, i.e. `pip install hirundo[transformers]` or `uv pip install hirundo[transformers]` if you have `uv` installed which is much faster than `pip`.
|
|
159
|
+
|
|
160
|
+
```python
|
|
161
|
+
llm = LlmModel(
|
|
162
|
+
model_name="Nemotron-Flash-1B",
|
|
163
|
+
model_source=HuggingFaceTransformersModel(
|
|
164
|
+
model_name="nvidia/Nemotron-Flash-1B",
|
|
165
|
+
),
|
|
166
|
+
)
|
|
167
|
+
llm_id = llm.create()
|
|
168
|
+
run_info = BiasRunInfo(
|
|
169
|
+
bias_type=BiasType.ALL,
|
|
170
|
+
)
|
|
171
|
+
run_id = LlmUnlearningRun.launch(
|
|
172
|
+
llm_id,
|
|
173
|
+
run_info,
|
|
174
|
+
)
|
|
175
|
+
new_adapter = llm.get_hf_pipeline_for_run(run_id)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Dataset QA
|
|
179
|
+
|
|
180
|
+
#### Classification example:
|
|
149
181
|
|
|
150
182
|
```python
|
|
151
183
|
from hirundo import (
|
|
@@ -182,7 +214,7 @@ results = test_dataset.check_run()
|
|
|
182
214
|
print(results)
|
|
183
215
|
```
|
|
184
216
|
|
|
185
|
-
Object detection example:
|
|
217
|
+
#### Object detection example:
|
|
186
218
|
|
|
187
219
|
```python
|
|
188
220
|
from hirundo import (
|
|
@@ -223,7 +255,7 @@ results = test_dataset.check_run()
|
|
|
223
255
|
print(results)
|
|
224
256
|
```
|
|
225
257
|
|
|
226
|
-
Note: Currently we only support the main CPython release 3.
|
|
258
|
+
Note: Currently we only support the main CPython release 3.10, 3.11, 3.12 & 3.13. PyPy support may be introduced in the future.
|
|
227
259
|
|
|
228
260
|
## Further documentation
|
|
229
261
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
hirundo/__init__.py,sha256=24ZHcfCcVCcCWj-nOCjIwY44fFzLgt0B9vMx99CMxKE,1694
|
|
2
|
+
hirundo/__main__.py,sha256=wcCrL4PjG51r5wVKqJhcoJPTLfHW0wNbD31DrUN0MWI,28
|
|
3
|
+
hirundo/_constraints.py,sha256=aaNb3vUQIS4JT9skLtSocgJpBb4HfteykQhMMp3qTrk,5963
|
|
4
|
+
hirundo/_dataframe.py,sha256=sXEEbCNcLi83wyU9ii884YikCzfASo_3nnrDxhuCv7U,758
|
|
5
|
+
hirundo/_env.py,sha256=efX2sjvYlHkFr2Lcstelei67YSTFpVGT0l08ZsfiMuE,622
|
|
6
|
+
hirundo/_headers.py,sha256=Cwha8gXEQNXL2lc9Lb1klLotkMLD82XOpAdX33TLVj8,521
|
|
7
|
+
hirundo/_http.py,sha256=0kfoznumU3jinHhJIpB6qn5Mt4a3kso59GNXVbpWH7M,2267
|
|
8
|
+
hirundo/_iter_sse_retrying.py,sha256=39GUf7y0o_h_BBJbfjEMZGZV85pZrDzgDyiSU4do9LI,4709
|
|
9
|
+
hirundo/_llm_pipeline.py,sha256=vHTpzrzmM-lHp1qa9gmOAk91IA3-2mYttLigS61br-M,5222
|
|
10
|
+
hirundo/_run_checking.py,sha256=uJSldQKOhF4jqkKRDHX36Y46jUK0F1PFlCEPG0mzCu4,9129
|
|
11
|
+
hirundo/_timeouts.py,sha256=gE58NU0t2e4KgKq2sk5rZcezDJAkgvRIbM5AVYFY6Ho,86
|
|
12
|
+
hirundo/_urls.py,sha256=BjGMTQtsAWdZDtFdSV2L14rGiohi78U_1GEB4G3DwUA,1393
|
|
13
|
+
hirundo/cli.py,sha256=T0RNpY8AKyfVdV9wjWjVRt6gEGICciXWqdBJC3eOD4c,7719
|
|
14
|
+
hirundo/dataset_enum.py,sha256=fNMYsiu6yyhyjpbKHeY2NfL6VX7LhcYypB7a4EXV5ZM,1291
|
|
15
|
+
hirundo/dataset_qa.py,sha256=jnSBF-J4rcL7Q23oJKOCOI1ryE84dKRe2QDkfeJfQRE,28150
|
|
16
|
+
hirundo/dataset_qa_results.py,sha256=HgUitmHbxE-DlZLNA2JR-1x0TPMkXobKYUYNc1Jpduw,1068
|
|
17
|
+
hirundo/git.py,sha256=He9t5ZIhrrQ56zYCuwGVQ1SffiSmGK1hV0NvmghPIhk,6477
|
|
18
|
+
hirundo/labeling.py,sha256=OroBchxsHR4RI-FuqwTatsGFaYINIYsBNg0L0PkuAkA,5165
|
|
19
|
+
hirundo/logger.py,sha256=MUqrYp0fBlxWFhGl6P5t19_uqO7T_PNhrLN5bqY3i7s,275
|
|
20
|
+
hirundo/storage.py,sha256=Q4TMoJR8NEbvI8CI8nCerUmlBncWqkAbTL2BvUBC5P0,15763
|
|
21
|
+
hirundo/unlearning_llm.py,sha256=Be_ks2aeQTzkPESe2K7RfPPtFkuzlTA7Q3Eq_jzAGxg,19594
|
|
22
|
+
hirundo/unzip.py,sha256=VEUsZxmZrU0Qn2q8YX0hdPIjKFLAtfPKbIhQtZxJSnA,8151
|
|
23
|
+
hirundo-0.2.3.post1.dist-info/licenses/LICENSE,sha256=fusGGjqT2RGlU6kbkaOk7d-gDnsjk17wq67AO0mwBZI,1065
|
|
24
|
+
hirundo-0.2.3.post1.dist-info/METADATA,sha256=Dicj3i_n1fOawy4SyeZd7MjahMOosFtQYwlLTMBnRWM,10497
|
|
25
|
+
hirundo-0.2.3.post1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
26
|
+
hirundo-0.2.3.post1.dist-info/entry_points.txt,sha256=4ZtnA_Nl1Af8fLnHp3lwjbGDEGU1S6ujb_JwtuQ7ZPM,44
|
|
27
|
+
hirundo-0.2.3.post1.dist-info/top_level.txt,sha256=cmyNqrNZOAYxnywJGFI1AJBLe4SkH8HGsfFx6ncdrbI,8
|
|
28
|
+
hirundo-0.2.3.post1.dist-info/RECORD,,
|
hirundo-0.1.21.dist-info/RECORD
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
hirundo/__init__.py,sha256=GxRK_DHPKG1aqxNa19imqspHRAvBHSAQ5Q0fDwJPCDE,1341
|
|
2
|
-
hirundo/__main__.py,sha256=wcCrL4PjG51r5wVKqJhcoJPTLfHW0wNbD31DrUN0MWI,28
|
|
3
|
-
hirundo/_constraints.py,sha256=slW7Rk9Ml5fuwjnXTLUvHIhnY_9hmcUUy57v9hFog1o,6003
|
|
4
|
-
hirundo/_dataframe.py,sha256=sXEEbCNcLi83wyU9ii884YikCzfASo_3nnrDxhuCv7U,758
|
|
5
|
-
hirundo/_env.py,sha256=efX2sjvYlHkFr2Lcstelei67YSTFpVGT0l08ZsfiMuE,622
|
|
6
|
-
hirundo/_headers.py,sha256=Cwha8gXEQNXL2lc9Lb1klLotkMLD82XOpAdX33TLVj8,521
|
|
7
|
-
hirundo/_http.py,sha256=0kfoznumU3jinHhJIpB6qn5Mt4a3kso59GNXVbpWH7M,2267
|
|
8
|
-
hirundo/_iter_sse_retrying.py,sha256=xNpf3W5qAHkKPJz8H4NZjKE3CrI_8b3m1iYeahdpdEc,4653
|
|
9
|
-
hirundo/_timeouts.py,sha256=gE58NU0t2e4KgKq2sk5rZcezDJAkgvRIbM5AVYFY6Ho,86
|
|
10
|
-
hirundo/_urls.py,sha256=0C85EbL0T-Bj25vJwjNs_obUG8ROSADpmbFdTAyhzlw,1375
|
|
11
|
-
hirundo/cli.py,sha256=u-LsrN17-J7temjrq6NeUGnJ4mO04tMCiQYqVMm6el8,7752
|
|
12
|
-
hirundo/dataset_enum.py,sha256=QnS3fy1OF4wvUtiIAHubKRhc611idS8huopEEolgqEM,1217
|
|
13
|
-
hirundo/dataset_qa.py,sha256=U7cqV4JbYkaByXEf2XdoJrQZ_rI9pgDxrXVbQLc50R8,32470
|
|
14
|
-
hirundo/dataset_qa_results.py,sha256=1F7JhRf7TQomwW9tjbNn8OBrhWHwEaWOND80r39l5uY,1104
|
|
15
|
-
hirundo/git.py,sha256=cBjP7kPnaUHR77FI5ZaERst38eTUDy8q1gAQzy45EB4,6567
|
|
16
|
-
hirundo/labeling.py,sha256=zXQCaqfdaLIG4qbzFGbb94L3FDdRMpdzHwbrDJE07Yk,5006
|
|
17
|
-
hirundo/logger.py,sha256=MUqrYp0fBlxWFhGl6P5t19_uqO7T_PNhrLN5bqY3i7s,275
|
|
18
|
-
hirundo/storage.py,sha256=MPKxkhrBmX84Yuexd4QoLDdVIJHrll9RosCLUsz5q3c,15936
|
|
19
|
-
hirundo/unzip.py,sha256=3aPOsBvF-ZgAumHnQ6hq7JtbFUe9eRRRFsiI6K8cRDE,8188
|
|
20
|
-
hirundo-0.1.21.dist-info/licenses/LICENSE,sha256=fusGGjqT2RGlU6kbkaOk7d-gDnsjk17wq67AO0mwBZI,1065
|
|
21
|
-
hirundo-0.1.21.dist-info/METADATA,sha256=3m7R5dMN5h_C-L2Wl76lzYjpreP5upyHcEkIoAZF1lY,9497
|
|
22
|
-
hirundo-0.1.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
23
|
-
hirundo-0.1.21.dist-info/entry_points.txt,sha256=4ZtnA_Nl1Af8fLnHp3lwjbGDEGU1S6ujb_JwtuQ7ZPM,44
|
|
24
|
-
hirundo-0.1.21.dist-info/top_level.txt,sha256=cmyNqrNZOAYxnywJGFI1AJBLe4SkH8HGsfFx6ncdrbI,8
|
|
25
|
-
hirundo-0.1.21.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|