กรอบการเรียนรู้เชิงลึกเชิงประกาศที่สร้างขึ้นเพื่อขนาดและประสิทธิภาพ
สำคัญ
ชุมชนของเราได้ย้ายไปที่ Discord แล้ว โปรดเข้าร่วมกับเราที่นั่น!
Ludwig เป็นเฟรมเวิร์ก ที่ใช้โค้ดน้อย สำหรับการสร้างแบบจำลอง AI แบบกำหนดเอง เช่น LLM และโครงข่ายประสาทเชิงลึกอื่นๆ
คุณสมบัติที่สำคัญ:
ลุดวิกเป็นเจ้าภาพโดย Linux Foundation AI & Data
ติดตั้งจาก PyPi โปรดทราบว่า Ludwig ต้องการ Python 3.8+
pip install ludwig
หรือติดตั้งด้วยการพึ่งพาทางเลือกทั้งหมด:
pip install ludwig[full]
โปรดดูคำแนะนำในการติดตั้งโดยละเอียดเพิ่มเติม
ต้องการดูคุณสมบัติบางอย่างของ Ludwig 0.8 อย่างรวดเร็วหรือไม่ ลองดูสมุดบันทึก Colab นี้
กำลังมองหาการปรับแต่ง Llama-2 หรือ Mistral อยู่ใช่ไหม? ตรวจสอบสมุดบันทึกเหล่านี้:
สำหรับบทช่วยสอนฉบับเต็ม โปรดดูคู่มือเริ่มต้นใช้งานอย่างเป็นทางการ หรือดูตัวอย่างตั้งแต่ต้นจนจบ
มาปรับแต่งโมเดลภาษาขนาดใหญ่ LLaMA-2-7b ที่ผ่านการฝึกอบรมมาอย่างละเอียดเพื่อทำตามคำแนะนำ เช่น แชทบอท ("การปรับแต่งคำสั่ง")
เราจะใช้ชุดข้อมูล Stanford Alpaca ซึ่งจะมีการจัดรูปแบบเป็นไฟล์ที่มีลักษณะคล้ายตารางดังนี้:
คำแนะนำ | ป้อนข้อมูล | เอาท์พุท |
---|---|---|
ให้คำแนะนำสามประการในการรักษาสุขภาพให้แข็งแรง | 1.รับประทานอาหารให้สมดุลและอย่าลืม... | |
จัดเรียงรายการด้านล่างตามลำดับเพื่อ... | เค้ก ฉัน กำลังกิน | ฉันกำลังกินเค้ก |
เขียนย่อหน้าเบื้องต้นเกี่ยวกับคนดัง... | มิเชล โอบามา | มิเชล โอบามา เป็นผู้หญิงสร้างแรงบันดาลใจที่... |
- | - | - |
สร้างไฟล์กำหนดค่า YAML ชื่อ model.yaml
โดยมีสิ่งต่อไปนี้:
model_type : llm
base_model : meta-llama/Llama-2-7b-hf
quantization :
bits : 4
adapter :
type : lora
prompt :
template : |
Below is an instruction that describes a task, paired with an input that may provide further context.
Write a response that appropriately completes the request.
### Instruction:
{instruction}
### Input:
{input}
### Response:
input_features :
- name : prompt
type : text
output_features :
- name : output
type : text
trainer :
type : finetune
learning_rate : 0.0001
batch_size : 1
gradient_accumulation_steps : 16
epochs : 3
learning_rate_scheduler :
decay : cosine
warmup_fraction : 0.01
preprocessing :
sample_ratio : 0.1
backend :
type : local
และตอนนี้เรามาฝึกโมเดลกัน:
export HUGGING_FACE_HUB_TOKEN = " <api_token> "
ludwig train --config model.yaml --dataset " ludwig://alpaca "
มาสร้างโครงข่ายประสาทเทียมที่คาดการณ์ว่าบทวิจารณ์ของนักวิจารณ์ภาพยนตร์เกี่ยวกับ Rotten Tomatoes จะเป็นไปในเชิงบวกหรือเชิงลบ
ชุดข้อมูลของเราจะเป็นไฟล์ CSV ที่มีลักษณะดังนี้:
movie_title | content_rating | ประเภท | รันไทม์ | top_critic | รีวิว_เนื้อหา | ที่แนะนำ |
---|---|---|---|---|---|---|
โปรดช่วยเราให้พ้นจากความชั่วร้าย | ร | แอ็กชันและผจญภัย, สยองขวัญ | 117.0 | จริง | ผู้กำกับสก็อตต์ เดอร์ริกสันและผู้ร่วมเขียนบทของเขา พอล แฮร์ริส บอร์ดแมน นำเสนอขั้นตอนตามปกติพร้อมกับความหวาดกลัวที่ไม่ธรรมดา | 0 |
บาร์บาร่า | PG-13 | อาร์ตเฮาส์และนานาชาติ, ดราม่า | 105.0 | เท็จ | ในการเล่าเรื่องที่น่าตื่นเต้นนี้ บาร์บาร่าพยายามรักษาหลักการของเธอ ความเป็นมนุษย์และความกล้าหาญของเธอไว้ และต่อสู้เพื่อปกป้องเด็กสาววัยรุ่นผู้ไม่เห็นด้วยซึ่งชีวิตที่พวกคอมมิวนิสต์พยายามทำลายล้าง | 1 |
บอสที่น่ากลัว | ร | ตลก | 98.0 | เท็จ | ผู้บังคับบัญชาเหล่านี้ไม่สามารถพิสูจน์ได้ว่าเป็นการฆาตกรรมหรือความทรงจำในการ์ตูนที่ยาวนาน โดยยอมประนีประนอมกับเรื่องตลกที่ยอดเยี่ยม แต่กลับกลายเป็นเพียงเรื่องธรรมดาๆ เท่านั้น | 0 |
- | - | - | - | - | - | - |
ดาวน์โหลดตัวอย่างชุดข้อมูลได้จากที่นี่
wget https://ludwig.ai/latest/data/rotten_tomatoes.csv
จากนั้นให้สร้างไฟล์กำหนดค่า YAML ชื่อ model.yaml
โดยมีสิ่งต่อไปนี้:
input_features :
- name : genres
type : set
preprocessing :
tokenizer : comma
- name : content_rating
type : category
- name : top_critic
type : binary
- name : runtime
type : number
- name : review_content
type : text
encoder :
type : embed
output_features :
- name : recommended
type : binary
แค่นั้นแหละ! ตอนนี้เรามาฝึกโมเดลกัน:
ludwig train --config model.yaml --dataset rotten_tomatoes.csv
มีความสุขในการสร้างแบบจำลอง
ลองใช้ลุดวิกกับข้อมูลของคุณ โปรดติดต่อ Discord หากคุณมีคำถามใดๆ
การเรียนรู้ของเครื่องน้อยที่สุด
Ludwig ดูแลความซับซ้อนทางวิศวกรรมของแมชชีนเลิร์นนิงนอกกรอบ ช่วยให้นักวิทยาศาสตร์การวิจัยมุ่งเน้นไปที่การสร้างแบบจำลองในระดับสูงสุดของนามธรรม การประมวลผลข้อมูลล่วงหน้า การเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์ การจัดการอุปกรณ์ และการฝึกอบรมแบบกระจายสำหรับ torch.nn.Module
โมเดลโมดูลไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น
สร้างเกณฑ์มาตรฐานของคุณได้อย่างง่ายดาย
การสร้างพื้นฐานที่ล้ำสมัยและการเปรียบเทียบกับโมเดลใหม่คือการเปลี่ยนแปลงการกำหนดค่าง่ายๆ
ใช้สถาปัตยกรรมใหม่กับปัญหาและชุดข้อมูลต่างๆ ได้อย่างง่ายดาย
ใช้โมเดลใหม่กับชุดงานและชุดข้อมูลที่ Ludwig รองรับ Ludwig มีชุดเครื่องมือเปรียบเทียบเต็มรูปแบบที่ผู้ใช้ทุกคนสามารถเข้าถึงได้ เพื่อทำการทดลองกับโมเดลหลายตัวในชุดข้อมูลหลายชุดด้วยการกำหนดค่าง่ายๆ
การประมวลผลข้อมูลล่วงหน้า การสร้างแบบจำลอง และการวัดข้อมูลที่กำหนดค่าได้สูง
ทุกแง่มุมของสถาปัตยกรรมโมเดล ลูปการฝึกอบรม การค้นหาไฮเปอร์พารามิเตอร์ และโครงสร้างพื้นฐานแบ็กเอนด์สามารถปรับเปลี่ยนเป็นช่องเพิ่มเติมในการกำหนดค่าที่ประกาศได้ เพื่อปรับแต่งไปป์ไลน์ให้ตรงตามความต้องการของคุณ สำหรับรายละเอียดเกี่ยวกับสิ่งที่สามารถกำหนดค่าได้ โปรดดูเอกสารการกำหนดค่า Ludwig
การเรียนรู้แบบหลายขั้นตอนและแบบหลายงานนอกกรอบ
ผสมผสานและจับคู่ข้อมูลแบบตาราง ข้อความ รูปภาพ และแม้แต่เสียงในการกำหนดค่าโมเดลที่ซับซ้อนโดยไม่ต้องเขียนโค้ด
การส่งออกและการติดตามโมเดลที่หลากหลาย
ติดตามการทดลองและตัวชี้วัดทั้งหมดโดยอัตโนมัติด้วยเครื่องมือ เช่น Tensorboard, Comet ML, Weights & Biases, MLFlow และ Aim Stack
ปรับขนาดการฝึกอบรมเป็นคลัสเตอร์หลาย GPU และหลายโหนดโดยอัตโนมัติ
เปลี่ยนจากการฝึกอบรมบนเครื่องในพื้นที่ของคุณไปสู่ระบบคลาวด์โดยไม่ต้องเปลี่ยนโค้ด
อินเทอร์เฟซแบบใช้โค้ดน้อยสำหรับโมเดลล้ำสมัย รวมถึง Huggingface Transformers ที่ผ่านการฝึกอบรมมาแล้ว
ลุดวิกยังผสานรวมเข้ากับโมเดลที่ได้รับการฝึกมาก่อน เช่น โมเดลที่มีอยู่ใน Huggingface Transformers ผู้ใช้สามารถเลือกจากคอลเลกชั่น PyTorch ที่ผ่านการฝึกอบรมล่วงหน้าอันล้ำสมัยจำนวนมาก เพื่อนำไปใช้โดยไม่จำเป็นต้องเขียนโค้ดใดๆ เลย ตัวอย่างเช่น การฝึกอบรมโมเดลการวิเคราะห์ความรู้สึกตาม BERT กับ Ludwig นั้นง่ายดายเพียง:
ludwig train --dataset sst5 --config_str " {input_features: [{name: sentence, type: text, encoder: bert}], output_features: [{name: label, type: category}]} "
อินเทอร์เฟซแบบโค้ดต่ำสำหรับ AutoML
Ludwig AutoML อนุญาตให้ผู้ใช้รับโมเดลที่ผ่านการฝึกอบรมโดยระบุเพียงชุดข้อมูล คอลัมน์เป้าหมาย และงบประมาณเวลา
auto_train_results = ludwig . automl . auto_train ( dataset = my_dataset_df , target = target_column_name , time_limit_s = 7200 )
การผลิตที่ง่ายดาย
Ludwig ทำให้การให้บริการโมเดลการเรียนรู้เชิงลึก รวมถึงบน GPU เป็นเรื่องง่าย เปิดใช้ REST API สำหรับโมเดล Ludwig ที่ผ่านการฝึกอบรมของคุณ
ludwig serve --model_path=/path/to/model
Ludwig รองรับการส่งออกโมเดลไปยังชุด Torchscript ที่มีประสิทธิภาพ
ludwig export_torchscript -–model_path=/path/to/model
อ่านสิ่งพิมพ์ของเราเกี่ยวกับ Ludwig, ML ที่เปิดเผย และเกณฑ์มาตรฐาน SoTA ของ Ludwig
เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของ Ludwig วิธีเริ่มต้นใช้งาน และตัวอย่างเพิ่มเติม
หากคุณสนใจที่จะมีส่วนร่วม มีคำถาม ความคิดเห็น หรือความคิดที่จะแบ่งปัน หรือหากคุณเพียงต้องการทราบ โปรดพิจารณาเข้าร่วม Community Discord ของเราและติดตามเราที่ X!
Ludwig เป็นโครงการโอเพ่นซอร์สที่ได้รับการจัดการอย่างแข็งขันซึ่งต้องอาศัยการสนับสนุนจากคนเช่นคุณ พิจารณาเข้าร่วมกลุ่มผู้มีส่วนร่วมของ Ludwig เพื่อทำให้ Ludwig เข้าถึงได้มากขึ้นและมีเฟรมเวิร์กที่หลากหลายเพื่อให้ทุกคนได้ใช้!