Zyphra เปิดตัว ZUNA1.1 โมเดลพื้นฐาน EEG แบบ Open Source รองรับอินพุตยืดหยุ่น 0.5 ถึง 30 วินาที

Zyphra เปิดตัว ZUNA1.1 โมเดลพื้นฐาน EEG แบบ Open Source รองรับอินพุตยืดหยุ่น 0.5 ถึง 30 วินาที

ในสัปดาห์นี้ Zyphra ได้เปิดตัว ZUNA1.1 ภายใต้ใบอนุญาต Apache 2.0 ซึ่งเป็นโมเดลพื้นฐาน EEG ที่มีความสามารถในการสร้างสัญญาณใหม่ (reconstruct), ลดสัญญาณรบกวน (denoise) และเพิ่มความละเอียด (upsample) ของข้อมูลในรูปแบบการจัดวางช่องสัญญาณที่หลากหลาย โดยพัฒนาต่อยอดมาจาก ZUNA1 ซึ่งเป็นโมเดลพื้นฐาน EEG แบบเปิดรุ่นแรกของ Zyphra

จุดเด่นสำคัญของการอัปเกรดครั้งนี้คือ "ความยืดหยุ่น" มากกว่าการเน้นเพิ่มความแม่นยำเพียงอย่างเดียว เนื่องจากในการบันทึก EEG จริง ข้อมูลมักมีความวุ่นวาย ระยะเวลาแต่ละเซสชันไม่เท่ากัน และสัญญาณอาจขาดหายหรือมีสัญญาณรบกวนแทรกซ่อนอยู่ โดย ZUNA1 รุ่นเดิมรองรับอินพุตคงที่เพียง 5 วินาที แต่ ZUNA1.1 พัฒนาให้ยอมรับอินพุตที่มีความยาวผันแปรได้ตั้งแต่ 0.5 ถึง 30 วินาที

ZUNA1.1 คืออะไร? เพื่อให้เข้าใจถึงความยืดหยุ่นดังกล่าว ต้องเริ่มจากฟังก์ชันการทำงานของโมเดล

ZUNA1.1 คือ masked diffusion autoencoder ขนาด 380M พารามิเตอร์ ออกแบบมาสำหรับสัญญาณ scalp-EEG โดยเฉพาะ เมื่อได้รับชุดข้อมูลเพียงบางส่วน โมเดลจะช่วยลดสัญญาณรบกวนและสร้างช่องสัญญาณที่ขาดหายไปขึ้นมาใหม่ได้ รวมถึงสามารถทำนายสัญญาณในช่องใหม่โดยอ้างอิงจากพิกัดตำแหน่งบนหนังศีรษะ

แม้ฟีเจอร์จะเพิ่มขึ้นแต่พารามิเตอร์ยังคงเท่าเดิม ทำให้สามารถรันบน GPU ระดับผู้บริโภคทั่วไปหรือบน CPU ได้อย่างมีประสิทธิภาพ โดยผู้ใช้สามารถดาวน์โหลด Weight ได้จาก Hugging Face และเข้าถึงโค้ดสำหรับ inference ได้ที่ GitHub ผ่านคำสั่ง pip install zuna นอกจากนี้ Zyphra ยังเปิดตัว EEG Playground บนเบราว์เซอร์ให้ใช้งานฟรีเพื่อวัตถุประสงค์ด้านการวิจัย

สถาปัตยกรรมทำงานอย่างไร

ความยืดหยุ่นของโมเดลนี้มีหัวใจหลักอยู่ที่กระบวนการ Tokenization

ZUNA ใช้สถาปัตยกรรมแบบ transformer encoder–decoder diffusion autoencoder โดยหั่นสัญญาณแต่ละช่องเป็นส่วนย่อยขนาด 0.125 วินาที (เท่ากับ 32 ตัวอย่างที่ความถี่ 256 Hz) แต่ละส่วนจะถูกแปลงเป็น token ค่าต่อเนื่อง (continuous-valued token) เรียงลำดับตามตัวแปร ช่องสัญญาณ × เวลา

ความโดดเด่นอยู่ที่เทคโนโลยี Positional encoding แบบ 4D rotary (4D RoPE) ซึ่งครอบคลุมพิกัด (x, y, z, t) โดยใช้ตำแหน่งทางกายภาพ 3D ของอิเล็กโทรดบนหนังศีรษะร่วมกับดัชนีเวลา วิธีนี้ทำให้ ZUNA ไม่ยึดติดกับรูปแบบช่องสัญญาณ (channel-agnostic) จึงรองรับการจัดวางอิเล็กโทรดได้ทุกรูปแบบ และสามารถสร้างสัญญาณในตำแหน่งที่ไม่เคยมีการบันทึกข้อมูลมาก่อนได้

ตัว Encoder จะทำหน้าที่บีบอัดสัญญาณเป็น latent เพื่อกำหนดเงื่อนไขให้ Decoder ผ่าน adaptive-RMS norm โดยใช้ตรรกะ rectified-flow ในการฝึก นอกจากนี้ยังมีการเพิ่มเลเยอร์ normalization ใน ZUNA1.1 เพื่อเพิ่มความเสถียรในการฝึกฝนอีกด้วย

สิ่งที่เปลี่ยนแปลงจาก ZUNA1

ความแตกต่างหลักของ ZUNA1.1 มาจากกระบวนการฝึกฝนที่เข้มข้นขึ้น:

1. อินพุตความยาวผันแปร (0.5–30 วินาที): โมเดลถูกฝึกด้วยการสุ่มความยาวข้อมูล โดยเน้นช่วง 1.5–10 วินาทีเป็นพิเศษผ่านการ oversampled เนื่องจากมีการใช้งานบ่อยที่สุด และใช้เทคโนโลยี Flex attention ร่วมกับ sample-aware mask เพื่อป้องกันไม่ให้ข้อมูลข้ามกันระหว่าง batch ส่งผลให้โมเดลรองรับช่วงเวลาที่กว้างขึ้นโดยไม่ต้องตั้งค่าใหม่

2. รูปแบบการสร้างข้อมูลที่หลากหลายขึ้น: ZUNA1.1 เพิ่มรูปแบบ dropout จากเดิม 1 แบบ เป็น 4 แบบ (ตัดทั้งช่องสัญญาณ, ตัดช่วงเวลา, ตัดบางช่วงในบางช่อง และสุ่มกระจาย) เพื่อให้โมเดลรับมือกับปัญหาอิเล็กโทรดเสียหรือสัญญาณหายบางส่วนได้ดีขึ้น

3. ชุดข้อมูลที่ใหญ่และคุณภาพสูงขึ้น: มีการปรับปรุงการเลือกข้อมูลให้ละเอียดระดับวินาทีต่อช่องสัญญาณ ทำให้ขนาดชุดข้อมูลเพิ่มจาก 2 ล้าน เป็น 3.5 ล้านชั่วโมงช่องสัญญาณ จากแหล่งข้อมูล EEG สาธารณะ พร้อมเตรียมฟิลเตอร์ (bandpass และ highpass) ไว้ล่วงหน้าเพื่อให้โมเดลทำงานได้ครอบคลุมหลายสถานการณ์

ผลลัพธ์

จากการทดสอบด้วยข้อมูลใหม่ ZUNA1.1 ให้ค่า NMSE (Normalized Mean Squared Error) ในการสร้างสัญญาณใหม่ที่เหนือกว่าหรือเทียบเท่า ZUNA1 และมีประสิทธิภาพดีกว่าการใช้ค่าเฉลี่ยแบบดั้งเดิม (spherical-spline) อย่างชัดเจน

นอกจากนี้ ในการทดสอบแบบแบ่งตามภูมิภาค (region-based test) ซึ่งเป็นการจำลองสถานการณ์จริงโดยการลบข้อมูลสมองส่วนหนึ่งออกแล้วสร้างใหม่ ZUNA1.1 ก็ทำผลงานได้โดดเด่นกว่าทั้งวิธีดั้งเดิมและโมเดลรุ่นก่อนหน้า

คำอธิบายแบบโต้ตอบ เพื่อให้เห็นภาพการทำงานที่ชัดเจน การสาธิตด้านล่างจะแสดงแอนิเมชันขั้นตอนการทำงานตั้งแต่ต้นจนจบ

ZUNA1 เทียบกับ ZUNA1.1

ตารางเปรียบเทียบความแตกต่างระหว่างสองรุ่น:

คุณสมบัติZUNA1ZUNA1.1
พารามิเตอร์380M380M
สถาปัตยกรรมTransformer encoder–decoder diffusion autoencoderเหมือนเดิม (เพิ่ม normalization)
ความยาวอินพุตคงที่ 5 วินาที0.5–30 วินาที
Token0.125 วินาทีเหมือนเดิม
Positional encoding4D RoPE (x, y, z, t)เหมือนเดิม
เป้าหมาย DecoderRectified flowRectified flow
รูปแบบ Dropout1 แบบ4 แบบ
ชุดข้อมูลฝึกฝน~2 ล้านชั่วโมงช่องสัญญาณ~3.5 ล้านชั่วโมงช่องสัญญาณ
การกรองคุณภาพระดับเซสชันระดับช่องสัญญาณ/วินาที
ใบอนุญาตApache 2.0Apache 2.0
ประสิทธิภาพ NMSEค่าฐาน (Baseline)เท่ากันหรือดีกว่า

การใช้งาน

ผู้ใช้สามารถรันฟังก์ชัน reconstruct_fif เพื่อประมวลผลไฟล์ .fif ได้โดยตรงตามตัวอย่างโค้ดนี้:

from zuna import reconstruct_fif
reconstruct_fif(
input_dir="fif_in",
output_dir="fif_out",
figures_dir="figures",
gpu_device=0, "" # ID ของ GPU หรือ "" สำหรับ CPU
segment_sec=5.0, # ความยาวหน้าต่าง; ค่าเริ่มต้นคือ 5.0
montage="standard_1020", # ค่าสำรองหากไฟล์ไม่มีตำแหน่งระบุไว้
repair_channels=["Cz"], # ช่องสัญญาณที่ต้องการสร้างใหม่
target_channel_count=["Fz", "Pz"], # เพิ่มความละเอียดช่องสัญญาณใหม่
bad_segments=[(5, 6), (10, 11, "C3")], # มาร์กช่วงเวลาที่เสียหาย
sample_steps=50, # ขั้นตอน diffusion
)

ข้อควรระวัง: ค่าเริ่มต้น segment_sec คือ 5.0 หากต้องการใช้ช่วงเวลา 0.5–30 วินาที จะต้องปรับค่าด้วยตนเอง โดยผลลัพธ์จะถูกบันทึกในรูปแบบ full_reconstruction/ (ข้อมูลสร้างใหม่ทั้งหมด) และ hybrid/ (รวมข้อมูลจริงกับส่วนที่ซ่อมแซม)

กรณีการใช้งาน

  • ซ่อมแซมอิเล็กโทรดเสีย: ระบุช่องสัญญาณที่ต้องการสร้างใหม่จากข้อมูลข้างเคียง
  • ลดสัญญาณรบกวนจากการเคลื่อนไหว: มาร์กช่วงเวลาที่เสียหายเฉพาะจุดเพื่อคลีนข้อมูล
  • เพิ่มความละเอียด: เปลี่ยนข้อมูลจากสายรัดศีรษะ 4 จุด ให้เป็นระบบมาตรฐาน standard_1005

ตรวจสอบ น้ำหนักโมเดล (Model weight),

และ

GitHub Repo นอกจากนี้ ติดตามเราได้ที่

Source: MarkTechPost
ดูแลงานแปลและเรียบเรียงโดย NatapolK

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร