THINC เป็น ห้องสมุดการเรียนรู้ลึกที่มีน้ำหนักเบา ซึ่งให้บริการ API ที่มีการตรวจสอบการใช้งานที่สง่างามและตรวจสอบได้สำหรับ การเขียนแบบจำลอง ด้วยการสนับสนุนเลเยอร์ที่กำหนดไว้ในเฟรมเวิร์กอื่น ๆ เช่น Pytorch, TensorFlow และ MXNET คุณสามารถใช้ thinc เป็นเลเยอร์อินเตอร์เฟสชุดเครื่องมือแบบสแตนด์อโลนหรือวิธีที่ยืดหยุ่นในการพัฒนารุ่นใหม่ Thinc เวอร์ชั่นก่อนหน้านี้ดำเนินการอย่างเงียบ ๆ ในการผลิตใน บริษัท หลายพันแห่งผ่านทั้ง Spacy และ Prodigy เราเขียนเวอร์ชันใหม่เพื่อให้ผู้ใช้ เขียนกำหนดค่าและปรับใช้โมเดลที่กำหนดเอง ที่สร้างขึ้นด้วยเฟรมเวิร์กที่พวกเขาชื่นชอบ
mypy Thinc เข้ากันได้กับ Python 3.6+ และทำงานบน Linux , MacOS และ Windows รุ่นล่าสุดที่มีล้อไบนารีมีให้บริการจาก PIP ก่อนที่คุณจะติดตั้ง thinc และการพึ่งพาของมันตรวจสอบให้แน่ใจว่า pip , setuptools และ wheel ของคุณเป็นปัจจุบัน สำหรับรุ่นล่าสุดแนะนำให้ PIP 19.3 หรือใหม่กว่า
pip install -U pip setuptools wheel
pip install thincดูเอกสารการติดตั้งเพิ่มเติมสำหรับรายละเอียดเกี่ยวกับการพึ่งพาตัวเลือกสำหรับแบ็กเอนด์และ GPU ที่แตกต่างกัน คุณอาจต้องการตั้งค่าการตรวจสอบประเภทคงที่เพื่อใช้ประโยชน์จากระบบประเภทของ THINC
หากคุณติดตั้ง pytorch และคุณกำลังใช้ Python 3.7+, ถอนการติดตั้งแพ็คเกจ dataclassesพร้อมpip uninstall dataclassesเนื่องจากอาจติดตั้งโดย Pytorch และไม่เข้ากันกับ Python 3.7+
ดูเอกสารประกอบไดเรกทอรีและการใช้งาน /examples สำหรับตัวอย่างเพิ่มเติม ตัวอย่างส่วนใหญ่คือสมุดบันทึก Jupyter - เพื่อเปิดใช้งานบน Google Colab (พร้อมรองรับ GPU!) คลิกที่ปุ่มถัดจากชื่อโน้ตบุ๊ก
| สมุดบันทึก | คำอธิบาย |
|---|---|
intro_to_thinc | ทุกสิ่งที่คุณต้องรู้เพื่อเริ่มต้น การเขียนและฝึกอบรมโมเดลบนข้อมูล MNIST โดยใช้ไฟล์ config การลงทะเบียนฟังก์ชั่นที่กำหนดเองและการห่อ pytorch, tensorflow และ mxNet รุ่น |
transformers_tagger_bert | วิธีใช้ thinc, transformers และ pytorch เพื่อฝึก tagger ส่วนหนึ่งของคำพูด จากคำจำกัดความของรุ่นและการกำหนดค่าไปยังลูปการฝึกอบรม |
pos_tagger_basic_cnn | การใช้งานและฝึกอบรม CNN พื้นฐานสำหรับโมเดลการติดแท็กส่วนหนึ่งโดยไม่มีการพึ่งพาภายนอกและใช้ระบบกำหนดค่าของ THINC ในระดับต่าง ๆ |
parallel_training_ray | วิธีการตั้งค่าการฝึกอบรมพารามิเตอร์พารามิเตอร์แบบซิงโครนัสและอะซิงโครนัสด้วย THINC และ Ray |
ดูเพิ่มเติม→
| เอกสาร | คำอธิบาย |
|---|---|
| การแนะนำ | ทุกสิ่งที่คุณต้องรู้ |
| แนวคิดและการออกแบบ | แบบจำลองแนวคิดของ Thinc และวิธีการทำงาน |
| การกำหนดและใช้โมเดล | วิธีการเขียนแบบจำลองและอัปเดตสถานะ |
| ระบบกำหนดค่า | ระบบกำหนดค่าและการลงทะเบียนฟังก์ชั่นของ Thinc |
| บูรณาการ pytorch, tensorflow & mxnet | การทำงานร่วมกันกับเฟรมเวิร์กการเรียนรู้ของเครื่องจักร |
| เลเยอร์ API | เลเยอร์น้ำหนักแปลง, combinators และ wrappers |
| พิมพ์ประเภท | ตรวจสอบคำจำกัดความโมเดลของคุณและอื่น ๆ |
| โมดูล | คำอธิบาย |
|---|---|
thinc.api | API ผู้ใช้หันหน้าเข้าหา ควรนำเข้าคลาสและฟังก์ชั่นทั้งหมดจากที่นี่ |
thinc.types | ประเภทและข้อมูลที่กำหนดเอง |
thinc.model | คลาส Model โมเดล Thinc ทั้งหมดเป็นอินสแตนซ์ (ไม่ใช่คลาสย่อย) ของ Model |
thinc.layers | เลเยอร์ แต่ละเลเยอร์จะถูกนำไปใช้ในโมดูลของตัวเอง |
thinc.shims | อินเทอร์เฟซสำหรับโมเดลภายนอกที่ใช้ใน Pytorch, TensorFlow ฯลฯ |
thinc.loss | ฟังก์ชั่นในการคำนวณการสูญเสีย |
thinc.optimizers | ฟังก์ชั่นในการสร้าง Optimizers ปัจจุบันสนับสนุน "วานิลลา" SGD, Adam และ Radam |
thinc.schedules | เครื่องกำเนิดไฟฟ้าสำหรับอัตราตารางการสลายตัวหรือซีรีส์ที่แตกต่างกัน |
thinc.backends | แบ็กเอนด์สำหรับ numpy และ cupy |
thinc.config | กำหนดค่าการแยกวิเคราะห์และการตรวจสอบความถูกต้องและระบบรีจิสทรีฟังก์ชั่น |
thinc.util | ฟังก์ชั่นสาธารณูปโภคและผู้ช่วย |
Thinc ใช้ black สำหรับการจัดรูปแบบอัตโนมัติ, flake8 สำหรับผ้าสำลีและ mypy สำหรับการตรวจสอบประเภท รหัสทั้งหมดนั้นเข้ากันได้กับ Python 3.6+ โดยมีคำแนะนำประเภททุกที่ที่ทำได้ ดูประเภทการอ้างอิงสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับประเภทที่กำหนดเองของ Thinc
การสร้าง thinc จากแหล่งที่มาต้องการการพึ่งพาเต็มรูปแบบที่ระบุไว้ใน requirements.txt . txt ที่จะติดตั้ง นอกจากนี้คุณยังต้องมีคอมไพเลอร์เพื่อสร้างส่วนขยาย C
git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .หรือติดตั้งในโหมดแก้ไขได้:
pip install -r requirements.txt
pip install --no-build-isolation --editable . หรือโดยการตั้ง PYTHONPATH :
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplaceThinc มาพร้อมกับชุดทดสอบที่กว้างขวาง สิ่งต่อไปนี้ควรผ่านและไม่รายงานคำเตือนหรือข้อผิดพลาดใด ๆ :
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting ในการดูความครอบคลุมการทดสอบคุณสามารถเรียกใช้ python -m pytest thinc --cov=thinc เราตั้งเป้าหมายสำหรับการทดสอบการทดสอบ 100% นี่ไม่ได้หมายความว่าเราเขียนการทดสอบอย่างพิถีพิถันสำหรับทุกบรรทัด - เราไม่สนใจบล็อกที่ไม่เกี่ยวข้องหรือยากที่จะทดสอบและตรวจสอบให้แน่ใจว่าการทดสอบดำเนินการเส้นทางรหัสทั้งหมด