เสื้อคลุมที่ใช้งานง่ายสำหรับรุ่น GPT-2 124m, 345m, 774m และ 1.5b Transformer
มันคืออะไร•การติดตั้ง•การเริ่มต้นใช้งาน
ทำโดย Rishabh Anand • https://rish-16.github.io
GPT-2 เป็นรูปแบบการประมวลผลภาษาธรรมชาติที่พัฒนาโดย OpenAI สำหรับการสร้างข้อความ มันเป็นผู้สืบทอดของรุ่น GPT (หม้อแปลงที่ผ่านการฝึกอบรมมาก่อน) ที่ผ่านการฝึกอบรมเกี่ยวกับข้อความ 40GB จากอินเทอร์เน็ต มันมีโมเดลหม้อแปลงที่ถูกนำมาให้ความสนใจคือทั้งหมดที่คุณต้องการกระดาษในปี 2560 โมเดลมี 4 เวอร์ชัน - 124M
, 345M
, 774M
และ 1558M
- ซึ่งแตกต่างกันในแง่ของปริมาณข้อมูลการฝึกอบรมที่ป้อนและจำนวนพารามิเตอร์ที่มี
ปัจจุบันรุ่น 1.5B เป็นรุ่นที่ใหญ่ที่สุดที่เปิดตัวโดย OpenAI
ในที่สุด gpt2-client
เป็น wrapper รอบ ๆ พื้นที่เก็บข้อมูล gpt-2
ดั้งเดิมที่มีฟังก์ชั่นเดียวกัน แต่มีความสามารถในการเข้าถึงความเข้าใจและประโยชน์มากขึ้น คุณสามารถเล่นกับทั้งสี่รุ่น GPT-2 ในรหัสน้อยกว่าห้าบรรทัด
*หมายเหตุ : เสื้อคลุมไคลเอนต์นี้ไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นโดยตรงหรือโดยอ้อม ชื่อสถานที่และวัตถุที่อ้างอิงโดยแบบจำลองใด ๆ นั้นเป็นเรื่องสมมติและไม่ต้องการความคล้ายคลึงกับนิติบุคคลหรือองค์กรในชีวิตจริง ตัวอย่างไม่มีการกรองและอาจมีเนื้อหาที่น่ารังเกียจ ควรใช้ดุลยพินิจของผู้ใช้*
ติดตั้งไคลเอนต์ผ่าน pip
ตามหลักการแล้ว gpt2-client
ได้รับการสนับสนุนอย่างดีสำหรับ Python> = 3.5 และ TensorFlow> = 1.x ห้องสมุดบางแห่งอาจต้องติดตั้งหรืออัพเกรดใหม่โดยใช้ธง --upgrade
ผ่าน pip
หากใช้ Python 2.x
pip install gpt2-client
หมายเหตุ:
gpt2-client
ไม่ สามารถใช้งานได้กับ TensorFlow 2.0 ลอง TensorFlow 1.14.0
1. ดาวน์โหลดน้ำหนักรุ่นและจุดตรวจ
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`. Rename `save_dir` to anything.
gpt2 . load_model ( force_download = False ) # Use cached versions if available.
สิ่งนี้สร้างไดเรกทอรีที่เรียกว่า models
ในไดเรกทอรีการทำงานปัจจุบันและดาวน์โหลดน้ำหนักจุดตรวจ, รุ่น JSON และพารามิเตอร์ไฮเปอร์ที่ต้องการโดยรุ่น เมื่อคุณเรียกฟังก์ชั่น load_model()
แล้วคุณไม่จำเป็นต้องเรียกอีกครั้งว่าไฟล์ได้ทำการดาวน์โหลดในไดเรกทอรี models
เสร็จแล้ว
หมายเหตุ: set
force_download=True
เพื่อเขียนทับน้ำหนักโมเดลและจุดตรวจที่มีอยู่
2. เริ่มสร้างข้อความ!
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
gpt2 . generate ( interactive = True ) # Asks user for prompt
gpt2 . generate ( n_samples = 4 ) # Generates 4 pieces of text
text = gpt2 . generate ( return_text = True ) # Generates text and returns it in an array
gpt2 . generate ( interactive = True , n_samples = 3 ) # A different prompt each time
คุณสามารถเห็นได้จากตัวอย่างดังกล่าวว่าตัวเลือกการสร้างมีความยืดหยุ่นสูง คุณสามารถผสมและจับคู่ตามประเภทของข้อความที่คุณต้องการสร้างขึ้นไม่ว่าจะเป็นชิ้นหลายชิ้นหรือครั้งละหนึ่งรายการพร้อมพรอมต์
3. การสร้างข้อความจากชุดของพรอมต์
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
prompts = [
"This is a prompt 1" ,
"This is a prompt 2" ,
"This is a prompt 3" ,
"This is a prompt 4"
]
text = gpt2 . generate_batch_from_prompts ( prompts ) # returns an array of generated text
4. การปรับแต่ง GPT-2 ไปยังชุดข้อมูลที่กำหนดเอง
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
my_corpus = './data/shakespeare.txt' # path to corpus
custom_text = gpt2 . finetune ( my_corpus , return_text = True ) # Load your custom dataset
เพื่อปรับแต่ง GPT-2 ให้กับคลังข้อมูลหรือชุดข้อมูลที่กำหนดเองของคุณมันเหมาะอย่างยิ่งที่จะมี GPU หรือ TPU อยู่ในมือ Google Colab เป็นเครื่องมือหนึ่งที่คุณสามารถใช้ในการฝึกอบรม/ปรับแต่งโมเดลที่กำหนดเองของคุณอีกครั้ง
5. การเข้ารหัสและถอดรหัสลำดับข้อความ
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
# encoding a sentence
encs = gpt2 . encode_seq ( "Hello world, this is a sentence" )
# [15496, 995, 11, 428, 318, 257, 6827]
# decoding an encoded sequence
decs = gpt2 . decode_seq ( encs )
# Hello world, this is a sentence
คำแนะนำการปรับปรุงและการปรับปรุงยินดีต้อนรับเสมอ! หากคุณมีปัญหาใด ๆ โปรดเพิ่มหนึ่งในส่วนปัญหา หากคุณมีการปรับปรุงให้ยื่นปัญหาเพื่อหารือเกี่ยวกับข้อเสนอแนะก่อนที่จะสร้าง PR
ความคิดทั้งหมด - ไม่ว่าจะอุกอาจ - ยินดีต้อนรับ!
โอเพนซอร์ซสนุกจริงๆ การบริจาคของคุณกระตุ้นให้ฉันนำความคิดใหม่ ๆ มาสู่ชีวิต หากสนใจที่จะสนับสนุนความพยายามในการเปิดโอเพ่นซอร์สของฉันโปรดบริจาค-มันมีความหมายมากสำหรับฉัน!
มิกซ์