
Baal เป็นห้องสมุดการเรียนรู้ที่ใช้งานอยู่ซึ่งรองรับทั้งแอพพลิเคชั่นอุตสาหกรรมและการวิจัย USEcases
อ่านเอกสารที่ https://baal.readthedocs.io
กระดาษของเราสามารถอ่านได้บน arxiv มันมีเคล็ดลับและกลเม็ดในการทำให้การเรียนรู้ที่ใช้งานอยู่ในการผลิต
สำหรับการแนะนำอย่างรวดเร็วเกี่ยวกับ Baal และ Bayesian Active Learning โปรดดูลิงค์เหล่านี้:
Baal ได้รับการพัฒนาครั้งแรกที่ Elementai (ได้มาจาก ServiceNow ในปี 2021) แต่ตอนนี้เป็นอิสระ
Baal ต้องการ Python>=3.8
ในการติดตั้ง Baal โดยใช้ PIP: pip install baal
เราใช้บทกวีเป็นผู้จัดการแพ็คเกจของเรา ในการติดตั้ง baal จากแหล่งที่มา: poetry install
การเรียนรู้ที่ใช้งานอยู่เป็นกรณีพิเศษของการเรียนรู้ของเครื่องจักรซึ่งอัลกอริทึมการเรียนรู้สามารถสอบถามผู้ใช้ (หรือแหล่งข้อมูลอื่น ๆ ) เพื่อรับเอาต์พุตที่ต้องการที่จุดข้อมูลใหม่ (เพื่อทำความเข้าใจแนวคิดในเชิงลึกมากขึ้น ).
ในขณะนี้ Baal สนับสนุนวิธีการต่อไปนี้เพื่อทำการเรียนรู้ที่ใช้งานอยู่
หากคุณต้องการเสนอวิธีการใหม่โปรดส่งปัญหา
วิธี การออกกลางคันของ Monte-Carlo เป็นการประมาณที่รู้จักกันดีสำหรับเครือข่ายประสาทเบย์ ในวิธีนี้เลเยอร์การออกกลางคันจะใช้ทั้งในการฝึกอบรมและเวลาทดสอบ ด้วยการใช้แบบจำลองหลายครั้งในขณะที่ลดน้ำหนักแบบสุ่มเราคำนวณความไม่แน่นอนของการทำนายโดยใช้หนึ่งในการวัดความไม่แน่นอนในการวิเคราะห์พฤติกรรม
เฟรมเวิร์กประกอบด้วยสี่ส่วนหลักดังที่แสดงในผังงานด้านล่าง:
ในการเริ่มต้นใช้งานชุดข้อมูลของคุณในคลาส ActiveLearningDataset ของเรา สิ่งนี้จะช่วยให้มั่นใจได้ว่าชุดข้อมูลจะถูกแบ่งออกเป็นชุด training และชุด pool ชุด pool แสดงส่วนของชุดการฝึกอบรมที่ยังไม่ได้ติดป้าย
เราให้ บริการโมเดล วัตถุที่มีน้ำหนักเบาคล้ายกับ keras.Model เพื่อให้ง่ายต่อการฝึกอบรมและทดสอบโมเดล หากโมเดลของคุณไม่พร้อมสำหรับการเรียนรู้ที่ใช้งานอยู่เราจะจัดเตรียมโมดูลเพื่อเตรียมความพร้อม
ตัวอย่างเช่น Wrapper McDropoutModule จะเปลี่ยนเลเยอร์การออกกลางคันที่มีอยู่เพื่อใช้ในการฝึกอบรมและการอนุมานและ ModelWrapper ทำให้จำนวนการทำซ้ำเพื่อการฝึกอบรมและการอนุมาน
ในที่สุด ActivelearningLoop จะคำนวณความไม่แน่นอนและติดฉลากรายการที่ไม่แน่นอนที่สุดในกลุ่มโดยอัตโนมัติ
โดยสรุปสคริปต์ของคุณควรจะคล้ายกับนี้:
dataset = ActiveLearningDataset ( your_dataset )
dataset . label_randomly ( INITIAL_POOL ) # label some data
model = MCDropoutModule ( your_model )
wrapper = ModelWrapper ( model , args = TrainingArgs (...))
experiment = ActiveLearningExperiment (
trainer = wrapper , # Huggingface or ModelWrapper to train
al_dataset = dataset , # Active learning dataset
eval_dataset = test_dataset , # Evaluation Dataset
heuristic = BALD (), # Uncertainty heuristic to use
query_size = 100 , # How many items to label per round.
iterations = 20 , # How many MC sampling to perform per item.
pool_size = None , # Optionally limit the size of the unlabelled pool.
criterion = None # Stopping criterion for the experiment.
)
# The experiment will run until all items are labelled.
metrics = experiment . start ()สำหรับการทดลองที่สมบูรณ์ให้ดู การทดลอง/vgg_mcdropout_cifar10.py
docker build [--target base_baal] -t baal .
docker run --rm baal --gpus all python3 experiments/vgg_mcdropout_cifar10.pyเพียงโคลน repo และสร้างสคริปต์การทดลองของคุณเองคล้ายกับตัวอย่างที่ Experiments/VGG_MCDROPOUT_CIFAR10.PY ตรวจสอบให้แน่ใจว่าใช้สี่ส่วนหลักของกรอบ Baal การทดลองใช้งานมีความสุข
เพื่อมีส่วนร่วมดูการสนับสนุน
"มีความหลงใหล แต่ความสงบสุข;
ทีม Baal ทดสอบและดำเนินการเอกสารล่าสุดเกี่ยวกับการประมาณความไม่แน่นอนและการเรียนรู้อย่างแข็งขัน
ผู้ดูแลปัจจุบัน:
หากคุณใช้ Baal ในหนึ่งในโครงการของคุณเราจะขอบคุณอย่างมากหากคุณอ้างถึงห้องสมุดนี้โดยใช้ bibtex นี้:
@misc{atighehchian2019baal,
title={Baal, a bayesian active learning library},
author={Atighehchian, Parmida and Branchaud-Charron, Frederic and Freyberg, Jan and Pardinas, Rafael and Schell, Lorne
and Pearse, George},
year={2022},
howpublished={url{https://github.com/baal-org/baal/}},
}
หากต้องการรับข้อมูลเกี่ยวกับใบอนุญาตของ API นี้โปรดอ่านใบอนุญาต