Hugging Face-ის Trackio: ახალი ღია კოდის გადაწყვეტა მანქანური სწავლის ექსპერიმენტების თრექინგისთვის
Trackio არის Hugging Face-ის მიერ შემუშავებული ღია კოდის Python ბიბლიოთეკა მანქანური სწავლის მოდელების ვარჯიშის პროგრესის თრექინგისთვის. ის გვთავაზობს მარტივ გაზიარებას, მონაცემთა ხელმისაწვდომობას, ენერგიის მოხმარების გამჭვირვალობას და მოქნილობას ექსპერიმენტებისთვის. ბიბლიოთეკა, რომელიც თავსებადია ისეთ ინსტრუმენტებთან, როგორიცაა wandb, საშუალებას გაძლევთ ადვილად ვიზუალიზაცია მოახდინოთ Gradio დაფაზე და სინქრონიზაცია გაუკეთოთ Hugging Face Spaces-ს.
თუ თქვენ ოდესმე გაგივარჯიშებიათ საკუთარი მანქანური სწავლის მოდელი, გეცოდინებათ, რამდენად მნიშვნელოვანია მეტრიკების, პარამეტრების და ჰიპერპარამეტრების თვალყურის დევნება ვარჯიშის პროცესში და მათი ვიზუალიზაცია მოგვიანებით, რათა უკეთ გაიგოთ ვარჯიშის მიმდინარეობა. მანქანური სწავლის მკვლევართა უმეტესობა ამისთვის იყენებს სპეციალურ ექსპერიმენტების თრექინგის ბიბლიოთეკებს. თუმცა, ეს ბიბლიოთეკები შეიძლება იყოს ფასიანი, საჭიროებდეს კომპლექსურ დაყენებას, ან მოკლებული იყოს იმ მოქნილობას, რაც საჭიროა სწრაფი ექსპერიმენტებისა და გაზიარებისთვის. Hugging Face-ში, ჩვენი სამეცნიერო გუნდი იყენებს Trackio-ს ჩვენი კვლევითი პროექტებისთვის და ჩვენ აღმოვაჩინეთ რამდენიმე ძირითადი უპირატესობა სხვა თრექინგის გადაწყვეტილებებთან შედარებით:
**მარტივი გაზიარება და ჩაშენება:** Trackio უაღრესად ამარტივებს ვარჯიშის პროგრესის გაზიარებას კოლეგებთან ან დიაგრამების პირდაპირ ჩაშენებას ბლოგის პოსტებსა და დოკუმენტაციაში iframe-ების გამოყენებით. ეს განსაკუთრებით ღირებულია, როდესაც გსურთ აჩვენოთ კონკრეტული ვარჯიშის მრუდები ან მეტრიკები სხვებისგან ანგარიშების შექმნის ან რთულ დაფებზე ნავიგაციის მოთხოვნის გარეშე.
**სტანდარტიზაცია და გამჭვირვალობა:** ისეთი მეტრიკები, როგორიცაა GPU-ის ენერგიის მოხმარება, მნიშვნელოვანია, რომ თვალყური ადევნოთ და გაუზიაროთ საზოგადოებას, რათა უკეთესი წარმოდგენა გვქონდეს მოდელის ვარჯიშის ენერგეტიკულ მოთხოვნებსა და გარემოზე ზემოქმედებაზე. Trackio-ს გამოყენება, რომელიც პირდაპირ იღებს ინფორმაციას nvidia-smi ბრძანებიდან, აადვილებს ენერგიის მოხმარების რაოდენობრივ შეფასებას და შედარებას, ასევე მის დამატებას მოდელის ბარათებში.
**მონაცემთა ხელმისაწვდომობა:** ზოგიერთი თრექინგის ხელსაწყოსგან განსხვავებით, რომლებიც თქვენს მონაცემებს დახურული API-ების მიღმა ინახავს, Trackio აადვილებს ჩაწერილი მონაცემების ამოღებას და ანალიზს. ეს გადამწყვეტია მკვლევრებისთვის, რომლებსაც სჭირდებათ მორგებული ანალიზის ჩატარება ან ვარჯიშის მეტრიკების ინტეგრირება მათ კვლევით პროცესებში.
**მოქნილობა ექსპერიმენტებისთვის:** Trackio-ს მსუბუქი დიზაინი საშუალებას გვაძლევს ადვილად ექსპერიმენტები ჩავატაროთ ახალ თრექინგის ფუნქციებზე ვარჯიშის დროს. მაგალითად, ჩვენ შეგვიძლია გადავწყვიტოთ, როდის გადავიტანოთ ტენზორები GPU-დან CPU-ზე ტენზორების აღრიცხვისას ვარჯიშის პერიოდში, რაც მნიშვნელოვნად აუმჯობესებს ვარჯიშის გამტარუნარიანობას, როდესაც საჭიროა მოდელის/შუალედური მდგომარეობების თვალყურის დევნება წარმადობაზე ზემოქმედების გარეშე.
კარგით, მაშ რა არის Trackio და როგორ გამოიყენება ის? Trackio არის ღია კოდის Python ბიბლიოთეკა, რომელიც საშუალებას გაძლევთ თვალყური ადევნოთ ნებისმიერ მეტრიკას და მოახდინოთ მათი ვიზუალიზაცია ლოკალური Gradio დაფის გამოყენებით. თქვენ ასევე შეგიძლიათ ამ დაფის სინქრონიზაცია Hugging Face Spaces-თან, რაც ნიშნავს, რომ თქვენ შეგიძლიათ გაუზიაროთ დაფა სხვა მომხმარებლებს უბრალოდ URL-ის გაზიარებით. რადგან Spaces შეიძლება იყოს კერძო ან საჯარო, ეს ნიშნავს, რომ თქვენ შეგიძლიათ გააზიაროთ დაფა საჯაროდ ან მხოლოდ თქვენი Hugging Face ორგანიზაციის წევრებს შორის.
Trackio-ს დაყენება შეგიძლიათ pip-ის გამოყენებით:
`pip install trackio`
ან, თუ გირჩევნიათ uv-ს გამოყენება:
`uv pip install trackio`
Trackio შექმნილია იმისთვის, რომ იყოს ისეთი ექსპერიმენტების თრექინგის ბიბლიოთეკების პირდაპირი შემცვლელი, როგორიცაა wandb. API თავსებადია wandb.init, wandb.log და wandb.finish-თან, ასე რომ თქვენ შეგიძლიათ უბრალოდ იმპორტირება მოახდინოთ trackio-ს, როგორც wandb თქვენს კოდში. აქ მოცემულია მაგალითი:
```python
import trackio as wandb
wandb.init(project="my_project")
wandb.log({"loss": 0.1, "accuracy": 0.9})
wandb.finish()
```
ექსპერიმენტების აღრიცხვის შემდეგ, შეგიძლიათ გაუშვათ დაფა თქვენი შედეგების ვიზუალიზაციისთვის. გაუშვით შემდეგი ბრძანება თქვენს ტერმინალში:
`trackio dashboard`
ან, გაუშვით Python-დან:
`python -m trackio.dashboard`
ასევე შეგიძლიათ მიუთითოთ პროექტის სახელი:
`trackio dashboard --project my_project`
ან Python-ში:
`import trackio.dashboard
trackio.dashboard(project="my_project")`
თქვენი ლოკალური დაფის Hugging Face Spaces-თან სინქრონიზაციისთვის, უბრალოდ გადაეცით space_id init-ს:
```python
import trackio as wandb
wandb.init(project="my_project", space_id="hf_username/my_space")
# ... log your metrics ...
wandb.finish()
```
თუ თქვენი დაფა განთავსებულია Spaces-ზე, შეგიძლიათ უბრალოდ გააზიაროთ URL ან ჩაშენოთ ის სადმე iframe-ის გამოყენებით:
```html
```
რადგან Spaces შეიძლება იყოს კერძო ან საჯარო, ეს ნიშნავს, რომ თქვენ შეგიძლიათ გააზიაროთ დაფა საჯაროდ ან მხოლოდ თქვენი Hugging Face ორგანიზაციის წევრებს შორის — სრულიად უფასოდ! როდესაც თქვენ ახდენთ თქვენი Trackio დაფის სინქრონიზაციას Hugging Face Spaces-თან, მონაცემები იწერება ეფემერულ Sqlite მონაცემთა ბაზაში Spaces-ზე. რადგან ეს მონაცემთა ბაზა გადაიტვირთება, თუ თქვენი Space გადაიტვირთება, Trackio ასევე გარდაქმნის Sqlite მონაცემთა ბაზას Parquet მონაცემთა ნაკრებად და ახდენს მის სარეზერვო ასლის შექმნას Hugging Face Dataset-ში ყოველ 5 წუთში. ეს ნიშნავს, რომ თქვენ შეგიძლიათ ნებისმიერ დროს მარტივად მოახდინოთ თქვენი აღრიცხული მეტრიკების ვიზუალიზაცია Hugging Face მონაცემთა ნაკრებში:
```python
from datasets import load_dataset
dataset = load_dataset("hf_username/my_space")
# Now you can visualize your metrics via dataset
```
რჩევა: შეგიძლიათ დააყენოთ ამ მონაცემთა ნაკრების სახელი `dataset_id`-ის `trackio.init()`-ში გადაცემით.
Trackio ინტეგრირებულია Hugging Face ბიბლიოთეკებთან, როგორიცაა transformers და accelerate, ასე რომ თქვენ შეგიძლიათ აღრიცხოთ მეტრიკები მინიმალური დაყენებით.
`transformers.Trainer`-ით:
```python
from transformers import Trainer, TrainingArguments
from trackio.callbacks import TrackioCallback
training_args = TrainingArguments(
output_dir="./results",
report_to=["trackio"], # Important: enable reporting to trackio
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
callbacks=[TrackioCallback()], # Important: add the callback here
)
trainer.train()
```
`accelerate`-ით:
```python
from accelerate import Accelerator
accelerator = Accelerator(log_with="trackio") # Important: enable logging with trackio
# ... your accelerate training loop ...
```
დამატებითი დაყენება არ არის საჭირო — უბრალოდ ჩართეთ და დაიწყეთ თრექინგი. Trackio განზრახ მსუბუქი წონისაა და ამჟამად ბეტა რეჟიმშია. ზოგიერთი ფუნქცია, რომელიც გვხვდება სხვა თრექინგის ხელსაწყოებში, როგორიცაა არტეფაქტების მართვა ან კომპლექსური ვიზუალიზაცია, ჯერ არ არის ხელმისაწვდომი. თუ გსურთ გქონდეთ ეს ფუნქციები, გთხოვთ, შექმნათ საკითხები აქ: https://github.com/gradio-app/trackio/issues
Trackio-ს მსუბუქი და ღია კოდის ბუნების გათვალისწინებით, ჩვენ გვსურს ვიმუშაოთ მანქანური სწავლის საზოგადოებასთან, რათა შევქმნათ ექსპერიმენტების თრექინგის პროდუქტი, რომელიც ყველასთვის გამოსადეგი იქნება!
**მეტი სტატია ჩვენი ბლოგიდან**
გთხოვთ, შეგვატყობინოთ ნებისმიერი ფუნქციის შესახებ, რომლის ნახვაც გსურთ Trackio-ში აქ: https://github.com/gradio-app/trackio/issues
არის თუ არა გეგმა LLM ზარების თრექინგის მხარდასაჭერად? არსებობს მრავალი ღია კოდის ტელემეტრიის სერვისი, რომელიც აკონტროლებს როგორც ML, ასევე LLM ტრეისებს, როგორიცაა opik, Raga AI Catalyst. როდესაც დანაკარგი იზრდება და ხედავთ, რომ ვარჯიშის ფაილები შეიცავს `import trackio as wandb`, როგორ შეედრება წარმადობა wandb-ს დიდი რაოდენობის გაშვებებისთვის?
თეგები:
#ai
#მანქანური სწავლება
#gpu
#hugging face
#ღია კოდი
#python
#gradio
#trackio
#ექსპერიმენტების თრექინგი
#wandb
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი