เว็บไซต์: https://legacyai.github.io/tf-transformers
TF-Transformers: หม้อแปลงที่เร็วขึ้นและง่ายขึ้นและง่ายขึ้นใน TensorFlow 2.0
ลองนึกภาพรุ่นที่ก้าวร้าวอัตโนมัติให้เร็วขึ้น 90 เท่า TF-transformers (Tensorflow Transformers) ได้รับการออกแบบมาเพื่อควบคุมพลังเต็มรูปแบบของ TensorFlow 2 ซึ่งออกแบบมาโดยเฉพาะสำหรับสถาปัตยกรรมที่ใช้หม้อแปลง
โมเดลเหล่านี้สามารถนำไปใช้กับ:
การสร้างข้อความ GPT2 ด้วย max_length=64 , num_beams=3
tf_transformers : 31 minutes
huggingface_tf : 83 minutes
huggingface_pt : 36 minutes
huggingface_jax : 35 minutes
จาก 83 minutes ถึง 31 minutes เป็นการเร่งความเร็วที่สำคัญ การเร่งความเร็ว 92 % โดยเฉลี่ยแล้ว TF-transformers คือการเร่งความเร็ว 80-90 % กว่าการใช้งาน HuggingFace TensorFlow และในกรณีส่วนใหญ่มัน เทียบเคียงได้ หรือ เร็วกว่า Pytorch
มาตรฐานเพิ่มเติมสามารถพบได้ในเกณฑ์มาตรฐาน
ที่เก็บนี้ได้รับการทดสอบใน Python 3.7+ และ TensorFlow 2.7
pip install sentencepiece
pip install tensorflow-text > = 2.7.3
pip install tqdm ติดตั้ง tensorflow >= 2.7.0 [CPU or GPU] ตามเครื่องของคุณ คุณควรติดตั้ง TF-transformers ในสภาพแวดล้อมเสมือนจริง หากคุณไม่คุ้นเคยกับสภาพแวดล้อมเสมือนจริงของ Python ให้ตรวจสอบคู่มือผู้ใช้
ก่อนอื่นให้สร้างสภาพแวดล้อมเสมือนจริงด้วยรุ่น Python ที่คุณจะใช้และเปิดใช้งาน
จากนั้นคุณจะต้องติดตั้งอย่างน้อยหนึ่ง tensorflow โปรดดูหน้าการติดตั้ง TensorFlow หน้าการติดตั้งเกี่ยวกับคำสั่งการติดตั้งเฉพาะสำหรับแพลตฟอร์มของคุณ เราขอแนะนำให้ติดตั้ง [tensorflow-Text] (https://www.tensorflow.org/text)
เมื่อมีการติดตั้งแบ็กเอนด์เหล่านั้นแล้วสามารถติดตั้ง TF-transformers ได้โดยใช้ PIP ดังนี้:
pip install tf-transformersgit clone https://github.com/legacyai/tf-transformers.git
pip install poetry
cd tf-transformers
poetry installTF-Transformers API นั้นง่ายและเรียบง่ายมาก
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_checkpoint ( "/tmp/gpt2_model/" ) # Save Model สำหรับการสร้างข้อความเป็นสิ่งสำคัญมากที่จะเพิ่ม: obj: use_auto_regressive=True สิ่งนี้จำเป็นสำหรับทุกรุ่น
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' , use_auto_regressive = True )เพื่อทำให้เป็นอนุกรมบันทึกและโหลดโมเดล
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_transformers_serialized ( "/tmp/gpt2_serialized/" )
# To load a serialized models for inference in prodcution:
> >> import tensorflow as tf
> >> loaded = tf . saved_model . load ( "/tmp/gpt2_serialized/" )
> >> model = loaded . signatures [ 'serving_default' ] ใน TF-transformers เราส่วนใหญ่ติดตาม Functional API จาก Keras ทุกรุ่นใน tf-transformers เชื่อมต่อและมีฟังก์ชั่นต่อไปนี้เสมอ
ถ้า tf.keras.Model หรือ tf_transformers.core.LegacyModel , ใช้: print(model.input)
ถ้า tf.keras.Layer หรือ tf_transformers.core.LegacyLayer , ใช้: print(model.model_inputs)
ถ้า tf.keras.Model หรือ tf_transformers.core.LegacyModel , ใช้: print(model.output)
ถ้า tf.keras.Layer หรือ tf_transformers.core.LegacyLayer , ใช้: print(model.model_outputs)
เราได้ครอบคลุมบทเรียนที่ครอบคลุมการฝึกอบรมล่วงหน้า, finetuning, classfication, qa, ner มากขึ้น
ใช้โมเดลที่ทันสมัยในการผลิตโดยมีรหัสน้อยกว่า 10 บรรทัด
สร้างประสบการณ์จากอุตสาหกรรมให้กับนักเรียนและชุมชนด้วยบทช่วยสอนที่ชัดเจน
ฝึกอบรมรุ่นใด ๆ เกี่ยวกับ GPU , Multi-GPU , TPU ด้วย tf.keras.Model.fit ที่น่าทึ่ง
ปรับแต่งโมเดลหรือท่อใด ๆ ที่มีการเปลี่ยนแปลงรหัสน้อยที่สุดหรือไม่มีเลย
ส่วนการวิจัยมีรหัสสำหรับการฝึกอบรมแบบจำลองที่แตกต่างกันตั้งแต่ ** MLM, T5, คลิป ฯลฯ ** สคริปต์ทั้งหมดเหล่านี้ได้รับการออกแบบมาเพื่อควบคุมพลังเต็มรูปแบบของท่อส่งสัญญาณ Tensorflow-IO และทดสอบบน TPU V2 และ TPU V3 ข้อบกพร่องถูกคาดหวังในสิ่งเหล่านั้น แต่มันทำหน้าที่เป็นจุดประสงค์สำหรับผู้ที่ praction เพื่อเริ่มต้นหรือแก้ไขสิ่งที่เราได้ทำไปแล้ว
เราได้ทำการทดลองเพียงเล็กน้อยเพื่อบีบพลังของโมเดล ฐานอัลเบิร์ต (แนวคิดใช้กับโมเดลใด ๆ และใน TF-transformers มันอยู่นอกกรอบ)
แนวคิดนี้ลดการสูญเสียสำหรับงานที่ระบุในแต่ละเลเยอร์ของแบบจำลองของคุณและตรวจสอบการคาดการณ์ในแต่ละเลเยอร์ ตามการทดลองของเราเราสามารถรับรุ่นที่เล็กที่สุด (ขอบคุณ Albert ) และจาก เลเยอร์ 4 เป็นต้นไปเราเอาชนะรุ่นที่เล็กกว่าทั้งหมดในเกณฑ์มาตรฐาน กาว โดย เลเยอร์ 6 เราได้คะแนน กาว 81.0 ซึ่งเป็น 4 คะแนนก่อน Distillbert ด้วยคะแนนกาว 77 และคะแนนกาว Mobilebert 78
โมเดล อัลเบิร์ต มีพารามิเตอร์ 14 ล้านตัว และโดยการใช้ เลเยอร์ 6 เราสามารถเพิ่มความเร็วในการศึกษาได้ 50%
แนวคิดนี้ใช้ได้กับทุกรุ่นและงาน
รหัส + อ่านเพิ่มเติม
ด้วยการแยกลำดับอินพุตออกเป็นบล็อกความสนใจและผสานโดยใช้เลเยอร์ FFN เราได้แสดงให้เห็นว่าเครื่องขนาดเล็กจะสามารถดำเนินการตามลำดับได้ถึง 4096 โทเค็นในเครื่อง V100 GPU เดียว โมเดลดังกล่าวมีประสิทธิภาพสูงกว่า Pegasus Base (128 million) ในการสรุป PubMed แม้จะมีพารามิเตอร์ 60 million

รหัส + อ่านเพิ่มเติม
ปัจจุบัน TF-transformers ให้สถาปัตยกรรมต่อไปนี้
ตอนนี้เรามีหน้าเว็บที่คุณสามารถอ้างถึงห้องสมุด TF-Transformers