- Krea 2 เป็นโมเดลภาพแบบ foundation สำหรับการสร้างภาพที่ให้ความสำคัญกับ การสำรวจเชิงสร้างสรรค์ มากกว่าค่าเริ่มต้นแบบ polished เพียงหนึ่งเดียว และเปิดเผยน้ำหนักโมเดลกับการอนุมานภายใต้ permissive license
- กระบวนการฝึกดำเนินต่อเนื่องเป็น pretraining → midtraining → SFT → preference optimization → RL โดยการคัดสรรข้อมูล คำบรรยายภาพ การขยายพรอมป์ต์ และการอ้างอิงสไตล์จะค่อย ๆ ปรับแต่งการกระจายของผลลัพธ์เป็นลำดับ
- สถาปัตยกรรมอิงกับตระกูล DiT ที่เรียบง่าย แล้วผสาน GQA, gated sigmoid attention, SwiGLU, Qwen 3 VL, Qwen Image VAE และ FLUX 2 VAE เพื่อสร้างสมดุลระหว่างเสถียรภาพกับประสิทธิภาพ
- Krea 2 ติด top 10 ในหมวด text-to-image ของ Artificial Analysis leaderboard และอยู่อันดับ 2 ในบรรดาโมเดลจากแล็บอิสระ
- เพื่อรองรับการฝึกขนาดใหญ่ ทีมได้สร้างระบบบนพื้นฐานของ PyTorch, FSDP2, tensor parallelism, Kubernetes, Virtual Kubelet, Weka และ PostgreSQL และกำลังพิจารณา MoE, sparse attention, native 2K–4K, NVFP4 และ Muon scaling เป็นขั้นถัดไป
โมเดลภาพ foundation ที่มุ่งสู่การสำรวจเชิงสร้างสรรค์
- Krea 2 เป็นชุดโมเดลภาพแบบ foundation สำหรับการสร้างภาพ ที่มุ่งเน้น ความหลากหลายด้านสุนทรียะ และการควบคุมเชิงสร้างสรรค์ของผู้ใช้
- เอกสารที่เผยแพร่มีให้ที่ Release page, Hugging Face weights/license, GitHub code/license, Krea Image tool
- น้ำหนักโมเดลและการอนุมานเปิดเผยภายใต้ permissive license
- Krea มองว่าโมเดลภาพที่อิง diffusion และ flow-matching ได้พัฒนาไปถึงภาพความละเอียดสูง, photorealism, โครงสร้างที่เสถียร, การเรนเดอร์ข้อความที่หนาแน่น, ความรู้เกี่ยวกับโลกที่กว้างขวาง และการทำตามพรอมป์ต์อย่างละเอียดแล้ว แต่หลายระบบยังคงลู่เข้าหาความงามพื้นฐานที่แคบ
- แทนที่จะเพิ่มประสิทธิภาพให้กับ polished default เพียงแบบเดียว Krea 2 มุ่งเป็นสื่อเชิงกำเนิดที่เปิดให้สำรวจ สไตล์ อารมณ์ องค์ประกอบภาพ และทิศทางด้านภาพที่หลากหลาย
- ติด top 10 ในหมวด text-to-image ของ Artificial Analysis leaderboard และอยู่อันดับ 2 ในบรรดาโมเดลจากแล็บอิสระ
กลยุทธ์การคัดสรรข้อมูลและการทำคำบรรยายภาพ
- ทีม Krea สร้างโครงสร้างพื้นฐานข้อมูลขนาดใหญ่และเฟรมเวิร์กการฝึกแบบกระจายตั้งแต่ต้น เพื่อสร้างชุดข้อมูล pretraining ที่มีทั้ง broad world knowledge และ style coverage
- ทีมมองว่า “data mix ที่ดี” ต้องการไม่ใช่แค่ภาพคุณภาพสูง แต่ยังต้องมี ความหลากหลาย และการครอบคลุมโดเมนที่กว้างด้วย
- การกรองโดยอิง aesthetic score และ image quality assessment อาจสร้าง implicit bias ได้
- motion blur หรือความนุ่มฟุ้งอาจเป็นการเลือกเชิงศิลปะโดยตั้งใจ แต่กลับถูกประเมินต่ำว่าเป็นภาพเบลอ
- หากคำบรรยายอธิบายภาพได้อย่างแม่นยำ แม้แต่ภาพที่ไม่พึงประสงค์ก็อาจยังมีประโยชน์ต่อการฝึก downstream
- ในชุดข้อมูล pretraining ทีมกรอง duplicated samples, แนวคิดที่ถูกแสดงซ้ำมากเกินไป, ตัวอย่างที่ VLM จับองค์ประกอบสำคัญไม่ได้, ตัวอย่างที่ก่อให้เกิด bias และ artifacts ที่ไม่พึงประสงค์, ตัวอย่างที่มีความซับซ้อนทางภาพสูงจนสร้างแบบจำลองได้ยากอย่างเสถียรในความละเอียดต่ำ และ AI-generated samples
- Krea 2 pretraining mix ไม่ใช้ AI-generated images
- synthetic data และ distillation อาจเป็นทางลัดในการได้มาซึ่งความสามารถ
- ทีมมองว่าแม้ AI-generated images จะมีเพียงเล็กน้อย ก็อาจนำ bias เข้าสู่การกระจายผลลัพธ์ของโมเดล และแทบจะกำหนด upper bound ของคุณภาพโมเดลโดยพฤตินัย
- เพื่อกรองสิ่งเหล่านี้ออก ทีมได้ออกแบบ classifiers ภายในองค์กร
- คำบรรยายภาพถูกสร้างด้วยวิธีแบบหลายขั้นตอน
- รัน OCR model กับภาพเป้าหมายเพื่อดึง visible text
- ป้อนผลลัพธ์จาก OCR และ metadata ให้กับ captioning model เพื่อสร้าง enriched caption ที่รวมทั้งข้อความที่ดึงมาและ world knowledge
- นำ long-form caption ที่มีบริบทสูงไปจัดโครงสร้างใหม่ด้วย LLM ที่ต้นทุนต่ำกว่า ให้มีความยาวและรูปแบบหลากหลาย เพื่อให้โมเดลได้สัมผัสกับ prompt style หลายแบบ
- long prompts ให้ dense supervision จึงทำให้ลู่เข้าได้เร็วขึ้นและมี training loss ต่ำลง ขณะเดียวกันก็ยังคงให้โมเดลได้สัมผัสกับ short/medium prompts เพื่อรองรับการใช้งาน downstream
ข้อมูลการฝึกตามความละเอียดและ midtraining
- ข้อมูล pretraining ผ่านขั้นของความละเอียด 256px, 512px, 1024px
- จัดสรร FLOPs ส่วนใหญ่ให้กับช่วงความละเอียดต่ำเพื่อเรียนรู้ความสามารถหลักได้อย่างมีประสิทธิภาพ
- หลังจากนั้นจึงเพิ่มความละเอียดเพื่อมอบความสามารถในการสร้างภาพที่มีความเที่ยงตรงสูง
- pretraining ที่ความละเอียดต่ำใช้เพื่อเรียนรู้การจัดแนวข้อความ-ภาพขั้นพื้นฐานและโครงสร้าง
- ชุดข้อมูลความละเอียดต่ำมีขนาดระดับ billions of images จึงพึ่งพา filters แบบ CPU-based ต้นทุนต่ำอย่างมาก
- ลบภาพที่ไม่เหมาะสมออกด้วย broken-file, resolution, aspect-ratio filters
- ลบภาพที่มี textures สุดขั้วและ noise patterns ด้วย Laplacian filters
- ลดพื้นหลังสีเรียบและ border artifacts ด้วย RGB entropy, white/black pixel ratios, custom heuristics และ in-house classifiers
- in-house classifier ถูกสร้างขึ้นโดยใช้ large VLM สร้าง system prompt สำหรับงาน filtering และสร้าง pseudo-labeled dataset จากนั้นจึงฝึก classifier ขนาดเล็กที่อิง DINOv3 หรือ SigLIP-2
- ในช่วงความละเอียดต่ำ filtering model ที่ต้องใช้ GPU compute ถูกคงไว้ให้มีขนาดต่ำกว่า 1B parameters เพื่อประสิทธิภาพ
- การ deduplication ที่ความละเอียดต่ำใช้ hash-based methods เป็นหลัก โดยผสาน md5, phash และ colorhash
- phash แบบ 8x8 มาตรฐานไม่พิจารณาสี ทำให้อัตรา false-positive สูง
- เพื่อให้ deduplication มีความทนทานมากขึ้น จึงผสาน phash แบบ 12x12 กับ colorhash
- เมื่อความละเอียดในการฝึกสูงขึ้น ก็เริ่มนำ image-quality และ aesthetic filters มาใช้
- quality score ใช้เพียงเพื่อลบภาพที่คุณภาพแย่มากเท่านั้น และไม่ใช้สำหรับการ oversampling ตาม score
- ใช้ OCR-based image-complexity score และ text density เพื่อตัดภาพที่ยากต่อการถ่ายทอดข้อความและเนื้อหาอย่างมีความหมายในความละเอียดต่ำออก
- มีการฝึก sparse autoencoder บน embeddings ของ SigLIP-2 เพื่อสร้าง SAE-based tagging system และนำไปใช้กรอง visual artifacts ที่ชัดเจนโดยไม่ต้องมี explicit classifier
- midtraining ต่างจาก pretraining ตรงที่มีการเลือก image sources อย่างชัดเจน ซึ่งให้ทั้ง stylistic coverage ที่ดีใน visual domain เฉพาะและภาพคุณภาพสูง
- pretraining เป็นกระบวนการแบบ bottom-up ที่เริ่มจาก general pool
- midtraining คือการคัดสรรแบบ top-down ที่เลือก domains และ sources ก่อน
- เป็นขั้นตอนที่เชื่อม general pretraining distribution กับ high-quality SFT distribution อย่างนุ่มนวล
- เสริม world-knowledge coverage ด้วย semantic clustering และ retrieval-based strategies
- ทำ hierarchical k-means clustering ด้วย FAISS
- VLM ตรวจสอบภาพใกล้ cluster centroid เพื่อตั้งชื่อ cluster และ flag เมื่อจำเป็น
- clusters ที่ถูก flag จะผ่าน human review เพื่อลบ cluster ที่คุณภาพต่ำหรือมีปัญหา
- ภายใน leaf cluster ที่เหลือจะทำ semantic deduplication ด้วย SigLIP similarity
- สำหรับ named entity coverage ใช้ Danker รัน PageRank บน English Wikipedia และคงบทความ 90% แรกตามลำดับ rank ไว้
- ลบหัวข้อที่ไม่สามารถแทนภาพได้ออกด้วย metadata ของ Wikidata
- จากนั้นทำ full-text search บน captions ทั้งชุดข้อมูลสำหรับแนวคิดที่เหลืออยู่ราว 5 million concepts
- ตอน sampling จะให้ความสำคัญกับภาพจาก captions ที่กล่าวถึง concepts หายากก่อน
การเลือกสถาปัตยกรรมและการทำ ablation
- Krea 2 ได้พัฒนาสถาปัตยกรรม diffusion transformer (DiT) ที่เรียบง่ายแต่ให้ประสิทธิภาพดี ผ่านการทำ ablation
- การทำ architecture ablation ประเมินใน 4 หมวด ได้แก่ stability, performance, efficiency และ simplicity
- stability พิจารณาการลดลงของ loss/gradient spike และเสถียรภาพระหว่างการฝึก
- performance พิจารณาความเร็วในการลู่เข้า และการคงประสิทธิภาพไว้ได้หรือไม่ในความละเอียดสูงและ horizon ระยะยาว
- efficiency พิจารณาว่าสามารถลด parameter count, FLOPs, memory และ communication ได้หรือไม่โดยไม่กระทบต่อคุณภาพ
- simplicity ตรวจสอบว่าสามารถทำให้ model เรียบง่ายขึ้นได้หรือไม่โดยไม่ทำลายหมวดอื่น
- การตัดสินใจด้านสถาปัตยกรรมหลายอย่างได้รับอิทธิพลจากแนวโน้มการยอมรับในฝั่ง LLM และมองว่า kernel กับ optimization ของ ecosystem ฝั่ง LLM สามารถนำมาใช้กับ diffusion model ได้เช่นกัน
- ตัวเลือกหลักของสถาปัตยกรรมสุดท้ายมีดังนี้
- Attention ใช้ GQA with gated sigmoid attention
- MLP เปลี่ยนจาก GeLU MLP ไปเป็น layers แบบ SwiGLU ที่มี 4x expansion factor
- Residual ยังคงใช้ standard residual
- Text encoder ใช้ Qwen 3 VL
- Modulation เปลี่ยนจาก per-block MLP modulation ไปเป็น light modulation with bias
- Autoencoder ใช้ Qwen Image VAE และ FLUX 2 VAE
- Block design ใช้ single stream transformer block
- Norm ใช้ zero-center RMSNorm และ QKNorm
- Positional encoding ยังคงใช้ 3D Axial RoPE
- GQA ปรับปรุง computational efficiency โดยทำให้ประสิทธิภาพลดลงเพียงเล็กน้อย
- MLA แสดง gain เล็กน้อยเหนือ GQA แต่ไม่ได้ถูกนำมาใช้เพราะมี additional computational overhead
- gated sigmoid attention ไม่ได้ให้ performance gain มากนัก แต่แสดง dynamics ที่เสถียรกว่าใน loss และ gradient-norm curves
- ระหว่าง single-stream, dual-stream และ hybrid-stream design ไม่มีความต่างด้าน performance มากนัก โดย hybrid-stream ดีกว่าเล็กน้อย แต่เลือกใช้ single-stream blocks เพื่อความเรียบง่าย
- per-block MLP modulation ของ MMDiT อาจคิดเป็น 20–30% ของ total parameter count ดังนั้น Krea 2 จึงแทนที่ส่วนนี้ด้วย per-block tunable bias term
- ในการทดลอง timestep conditioning นั้น ที่ 256px พบว่า timestep tokens จำนวน 4–16 ตัวเพียงพอสำหรับใช้แทน AdaLN แต่ที่ 512px และ 1024px ประสิทธิภาพแย่กว่า AdaLN baseline
- positional encoding สุดท้ายคือ 3D axial RoPE ที่จัดสรร head dimensions ให้กับ frame, height และ width
- RoPE indices ของ text tokens ถูกตั้งเป็นศูนย์
- partial RoPE ให้ผล zero-shot inference ที่ดีเมื่อ scale จาก 256px ไป 512px แต่หลังการฝึกที่ความละเอียดสูงแล้ว ประสิทธิภาพสุดท้ายต่ำกว่า baseline
- autoencoder เริ่มจากใช้ FLUX.1-dev autoencoder เป็น baseline แล้วเปรียบเทียบกับ Qwen Image VAE, DC-AE, FLUX 2 VAE และ internal autoencoder
- มองว่า DC-AE มี hard upper limit ต่อความสามารถในการถ่ายทอดรายละเอียดระดับ fine detail เนื่องจาก reconstruction error
- Qwen Image VAE และ FLUX 2 VAE รักษา excellent reconstruction quality เอาไว้ได้ ขณะที่ latent space ให้การลู่เข้าที่เร็วกว่าอย่างมาก
- โมเดลช่วงแรกใช้ Qwen Image autoencoder และสำหรับโมเดลขนาดใหญ่ขึ้นได้เลือกใช้ FLUX 2 VAE
- text encoder เปรียบเทียบ T5-XXL, T5Gemma, umT5, Qwen 2.5 VL และ Qwen 3 VL และสุดท้ายเลือกใช้ Qwen 3 VL เป็น text encoder
- VLM ให้ input space ที่ richer ซึ่งรวมทั้ง text และ image พร้อมด้วย multilingual generalization ที่แข็งแกร่งกว่า
- ไม่ได้ใช้เฉพาะ last layer ของ VLM feature แต่เพิ่ม shallow attention layer เพื่อ aggregate hidden features จากทุก layer
- เพิ่ม lightweight bidirectional transformer layers บน token axis เพื่อลด autoregressive bias
ไปป์ไลน์การฝึก, การเพิ่มประสิทธิภาพตามความชอบ, RL
- training pipeline เป็นโครงสร้างแบบหลายขั้นตอนที่ได้แรงบันดาลใจจาก modern LLM training pipeline
- pretraining สร้างความสามารถพื้นฐาน เช่น text-image alignment, text rendering, stylistic coverage และ structural consistency
- final model ฝึกด้วย standard rectified-flow loss และ v-parameterization
- ใน epoch แรกของสเตจ 256px ใช้ iREPA เพื่อเร่ง early stage convergence อย่างมาก แล้วจึงนำออก
- ในสเตจ 256px และ 512px พบว่า 8-bit training ให้ training speed gain 15–20% เมื่อเทียบกับ bf16 baseline
- ตั้งแต่ 1024px ไปจนถึง final RL stage ใช้ standard bf16 training
- ใน high-resolution pretraining การปรับ resolution-dependent timeshift schedule มีความสำคัญ
- ทั้ง training และ inference ใช้ shifted logit-normal sampling schedule
- เมื่อ resolution สูงขึ้น จะค่อย ๆ เพิ่ม shift
- การ sweep ใช้กับ training shift เท่านั้น และคง inference shift schedule ไว้เป็นค่าคงที่
- ระหว่าง pretraining ใช้ warmup-stable-decay learning-rate schedule และใช้ PMA
- PMA ให้ประสิทธิภาพใกล้เคียงกับ EMA แต่หลีกเลี่ยง memory overhead ที่สูงของ EMA
- optimizer ใช้ AdamW เป็น primary optimizer ตลอดทั้ง pipeline
- Muon ลู่เข้าได้เร็วกว่า AdamW ใน initial steps แต่ในช่วงที่ยาวกว่ากลับให้ประสิทธิภาพต่ำกว่าและมีปัญหาด้าน stability
- เมื่อตัด first and last linear layers ของ MMDiT ออกจาก Muon parameters และเพิ่ม Nesterov momentum ก็สามารถเอาชนะ AdamW baseline ได้อย่างสม่ำเสมอทั้งที่ความละเอียดต่ำและสูง
- ใน pretraining run ล่าสุดยังไม่ได้นำ Muon มาใช้เพราะข้อจำกัดด้านเวลา และมีแผนจะนำมาใช้ใน pretraining cycle ถัดไป
- ในสเตจ SFT มีการคัดชุดเล็กเฉพาะของภาพที่มีความสวยงามสูง
- จุดประสงค์คือทำให้ model มี bias ไปในทิศทางที่พึงประสงค์ด้านสุนทรียะมากขึ้น
- ช่วยแก้ปัญหา high-saturation และ texture issues ที่พบบ่อยใน earlier checkpoints ได้เป็นพิเศษ
- หลังจากฝึก domain-specific SFT checkpoints แล้ว จึงสร้าง generalist SFT checkpoint ด้วย model merging
- preference optimization เป็นขั้นตอนแรกของ post-training stack และประกอบด้วยไปป์ไลน์สองขั้นตอน
- ขั้นตอนที่ 1 ทำ initial refinement ด้วย large-scale synthetic preference-pair generation pipeline
- preference pairs ส่วนใหญ่มีอย่างน้อยหนึ่ง on-policy sample
- ขั้นตอนที่ 2 เป็น calibration stage ที่ใช้เฉพาะ human annotations
- human annotations ถูกรวบรวมโดยบุคลากรภายในที่คุ้นเคยกับ strengths, weaknesses และ quirks ของ model
- ใน PO พบว่า policy divergence เป็นปรากฏการณ์ที่เกิดขึ้นบ่อย
- วิธีตระกูล DPO กระตุ้นให้เพิ่ม margin ระหว่าง preferred sample likelihood กับ dispreferred sample likelihood
- ในหลาย preference-dataset mixtures พบปรากฏการณ์ที่โมเดลทำ objective สำเร็จด้วยการลด generation likelihood ของทั้งสอง sample แต่ลดด้วยอัตราที่ต่างกัน
- divergence ทำให้โมเดลห่างออกจาก general pretraining distribution และในช่วงท้ายของการฝึกจะแสดงออกเป็น high-frequency artifacts
- เพื่อบรรเทาปัญหานี้ จึงออกแบบ DPO variant ที่ชื่อ STPO
- RL เป็นสเตจสุดท้ายของ training pipeline
- ใช้ multi-reward GRPO-style method
- reward models ประกอบด้วย general aesthetic model, prompt-following reward, text-rendering reward และ artifact and structure reward
- general aesthetic model ได้มาจากการ finetuning open-source VLM ด้วย preference data ที่เก็บใน PO stage
- prompt-specific rubric reward จะแยก prompt ออกเป็น verifiable requirements และประเมินว่า generated image ตรงตามข้อกำหนดเหล่านั้นหรือไม่
- ทำให้ prompt following ไม่ถูกลดทอนเหลือเพียง generic image quality แต่บังคับให้ตอบสนองต่อ fine-grained prompt constraints
- เพื่อให้ structural artifacts ลดลง มีการฝึก dedicated artifact reward model
- ข้อผิดพลาดอย่างนิ้วเกิน แขนขาผิดรูป หรือข้อความบิดเบี้ยว มนุษย์มองเห็นได้ชัดเจน แต่ general-purpose VLM judges มักพลาด
- ตลอด RL stage ทั้งหมด ฝึกโดยไม่ใช้ CFG
- ช่วยปรับปรุง conditional model distribution ได้อย่างรวดเร็ว ทำให้ no-CFG samples ในช่วงต้นการฝึกเข้าใกล้ guided samples มากขึ้นมาก
- ในเวลา inference ยังสามารถเปิดใช้ CFG ต่อไปได้ในฐานะ control knob เพิ่มเติม
- หลัง RL stage มี optional timestep-distillation stage
- มีการพิจารณา DMD, DMD2, Decoupled DMD, piFlow และ APT แต่เลือกใช้ Trajectory Distribution Matching(TDM)
- TDM ใช้ DMD ครอบคลุมทุก timesteps เพื่อทำ distribution matching ในระดับ trajectory
การขยายพรอมป์ต์และการอ้างอิงสไตล์
- ระหว่างการฝึก โมเดลใช้แคปชันที่มีรายละเอียดมากเพื่ออธิบายรายละเอียดเชิงภาพที่หนาแน่นของภาพ แต่ข้อมูลนำเข้าจริงจากผู้ใช้มักสั้น คลุมเครือ และมีรูปแบบการเขียนที่หลากหลาย
- prompt expander จะแปลง user prompt ที่เรียบง่ายหรือไม่เพียงพอให้เป็นทิศทางภาพที่สมบูรณ์ยิ่งขึ้น โดยไม่เขียนทับเจตนาของผู้ใช้
- ฝึกด้วยไปป์ไลน์ SFT และ RL แบบ 2 ขั้นบน open-source LLM เดิม
- เป้าหมายไม่ได้มีแค่การปรับปรุงคุณภาพภาพ แต่ยังรวมถึง creative variation และ controllable exploration
- ข้อมูล SFT ถูกสร้างขึ้นโดยสร้าง “user captions” แบบ synthetic จาก long captions
- synthetic user captions คือพรอมป์ต์แบบสั้น เป็นกันเอง และกึ่งเชิงสั่งการ ซึ่งตั้งใจละรายละเอียดเชิงภาพจำนวนมากของ target caption ออกไป
- สร้าง paired data ในรูปแบบ user prompt ที่กำหนดไม่ครบ → expanded model-friendly caption
- เพื่อคงความสามารถด้าน reasoning จึงสร้าง synthetic thinking traces ด้วย
- มีการใช้ targeted distribution shaping ในปริมาณเล็กน้อยด้วย
- ทำ oversample กับ imagery ที่มีรายละเอียดเชิงภาพสูงและมีความเป็นศิลปะ
- สำหรับพรอมป์ต์ที่ควรถูกขยายเป็นคำอธิบายแบบ photorealistic จะเพิ่ม photographic-medium bias แบบ lightweight
- เป้าหมายไม่ใช่การบังคับใช้ house style แต่คือการครอบคลุมทั้ง imagery แบบสื่ออารมณ์และกำกับศิลป์ได้ชัดเจน รวมถึงคำขอ photorealistic ที่ตรงไปตรงมา
- RL ของ prompt expander มีเป้าหมายเพื่อสร้าง expansions ที่ปรับปรุงคุณภาพภาพพร้อมคงเจตนาของผู้ใช้ไว้ โดยไม่ยึดติดกับการเลียนแบบ target caption
- ฝึกด้วย GDPO และ multi-reward objective
- image-level rewards วัดคุณภาพและความพึงพอใจของผลลัพธ์ที่สร้างขึ้น
- prompt-level verifiable rewards ตรวจสอบว่า expansion ยังซื่อสัตย์ต่อคำขอเดิมหรือไม่
- การตรวจสอบด้าน safety และ constraint ถูกใช้เป็น gate ของ reward โดยรวม
- หนึ่งใน failure mode ของ prompt expander คือ diversity collapse
- เมื่อ image rewards มีอิทธิพลเหนือกว่า โมเดลอาจเรียนรู้ house style เดียวที่ปลอดภัยและให้รางวัลสูง
- มีการเพิ่ม DINOv3 embedding diversity score บน prompt groups เพื่อให้รางวัลกับความหลากหลายเชิงภาพภายในกลุ่ม ควบคู่กับคุณภาพและ alignment
- หากต้องการรักษา variation ไว้ จำเป็นต้องเปิดใช้ diversity reward ตลอดการฝึก
- ระบบ style-reference ถูกสร้างบน base model
- ผู้ใช้สามารถสร้างภาพด้วยข้อความ พร้อมใช้ reference images หนึ่งภาพหรือมากกว่าเพื่อกำกับสไตล์ของผลลัพธ์
- เป้าหมายการออกแบบคือการผสมความหมายของหลายสไตล์อย่างลื่นไหล การควบคุมความแรงของ style reference แต่ละตัวได้อย่างต่อเนื่อง และการยึดตามสไตล์ซับซ้อนในระดับ state-of-the-art
- หนึ่งใน failure mode ที่พบบ่อยคือเนื้อหาและตัวแบบของภาพสไตล์รั่วไหลเข้าไปในภาพสุดท้าย
- ได้คิดค้น self-supervised technique สำหรับฝึกโมดูล style-reference และหลังจากนั้นจึงปรับ alignment ของผลลัพธ์เพิ่มเติมด้วยขั้น preference-optimization
โครงสร้างพื้นฐานและการปฏิบัติการสำหรับการฝึกแบบกระจาย
- เฟรมเวิร์กการฝึกแบบกระจายของ Krea ถูกสร้างขึ้นใหม่ตั้งแต่ต้นบนพื้นฐานของ PyTorch และใช้ฟีเจอร์เนทีฟของ
torchที่ขับเคลื่อนโดย abstractionDTensorและโปรเจกต์torchtitanเป็นหลัก- งานรัน pretraining และ post-training ส่วนใหญ่ใช้ทั้ง FSDP2 และ tensor parallelism สไตล์ Megatron-LM ร่วมกัน
- ในคอนฟิกที่ขนาด TP มากกว่า 2 จะเปิดใช้ async-TP ด้วยแฟลก
torch.compileเพื่อให้ได้การเร่งความเร็วระดับปานกลางเมื่อเทียบกับ naive TP - พารามิเตอร์ของ autoencoder จะถูกทำซ้ำไว้บนทุกอุปกรณ์ ส่วน text encoder และ MMDiT backbone หลักเท่านั้นที่ถูก shard
- ใช้ NVLinkSharp สำหรับการเชื่อมต่อภายในโหนด และ InfiniBand สำหรับการเชื่อมต่อระหว่างโหนด
- เพื่อเพิ่มประสิทธิภาพการฝึก จึงใช้โมเดลที่กว้างขึ้นเล็กน้อยและมี hidden dimension ใหญ่กว่า
- เมื่อ hidden size ใหญ่ขึ้น ความหนาแน่นการคำนวณของแต่ละเลเยอร์จะสูงขึ้น ทำให้ง่ายต่อการซ่อน latency ด้วย FSDP2 prefetching
- การลดจำนวนเลเยอร์ช่วยลดจำนวนปฏิบัติการ all-gather และ reduce-scatter
- การเปลี่ยนแปลงนี้ช่วยลดข้อผิดพลาดที่เกี่ยวข้องกับ NCCL ลงอย่างมากตลอดงานรัน pretraining
- ขนาดเมทริกซ์คูณที่ใหญ่ขึ้นช่วยชดเชย overhead ของ quantization/dequantization ในการฝึกแบบ 8-bit
- ศูนย์กลางของกลยุทธ์การปรับแต่งคือ
torch.compile- สำหรับ attention จะใช้เคอร์เนล cuDNN รุ่นล่าสุดเป็นค่าเริ่มต้น และใช้ FlexAttention หรือ FlashAttention 3 ตามความจำเป็น
- ที่ความละเอียดต่ำจะใช้ selective activation checkpointing
- ที่ความละเอียดสูง activation จะเริ่มกินหน่วยความจำเป็นหลัก จึงใช้ full activation checkpointing
- ฟอร์แมตพื้นฐานสำหรับการโหลดข้อมูลคือ Parquet
- แต่ละ row จะเก็บการอ้างอิงรูปภาพ ขนาด crop/resize, caption และ metadata อื่น ๆ
- ในงานรันขนาดใหญ่ จะ shuffle และจัดแพ็ก row ล่วงหน้าเพื่อโหลดแบตช์ภาพที่มี aspect ratio เดียวกัน
- การแพ็กช่วยให้สามารถเข้ารหัส latent ได้ด้วย autoencoder pass เดียว
- ในการฝึกแบบกระจายขนาดใหญ่ ความล้มเหลวของ GPU เพียงตัวเดียวหรือ straggler อาจทำให้งานรันทั้งหมดหยุดลงได้
- ในระดับของ Krea วิธีที่เพียงพอคือเพิ่มประสิทธิภาพ MTBF และ MTTR ผ่านการทำ checkpoint ที่รวดเร็วและถี่ พร้อมทั้งปรับปรุง startup time
- งานวิจัยถูกรันบน Kubernetes คลัสเตอร์เดียวที่ใช้ GPU ร่วมกับ production inference
- ระบบถูกออกแบบให้สามารถยึด GPU pool ทั้งหมดได้เมื่อมีความจำเป็นด้านงานวิจัย
- เมื่อ GPU ทั้งหมดในคลัสเตอร์ถูกจัดสรรให้กับงานฝึก inference workload ของ Krea จะถูกย้ายไปที่อื่นโดยอัตโนมัติ
- ระบบจัดการ traffic failover เพื่อคง responsiveness ของ production แม้ไม่มี GPU ในเครื่องเหลืออยู่
- Kueue เป็นองค์ประกอบสำคัญของการจัดตาราง workload
- Kueue มอบระบบ priority แบบ 2 ชั้นที่ผสาน Workload priority และ Kubernetes Pod priority
- ทำให้สามารถทำ gang-scheduling ที่จำเป็นสำหรับ multi-node training ได้
- primitive ด้าน queueing อย่าง “borrowing”, “lending” และ “reclamation” ช่วยให้ใช้ทรัพยากรได้สูงสุด
- ใช้ Virtual Kubelet สำหรับองค์ประกอบที่ใช้ scale inference ไปยังที่อื่นเมื่อ GPU ทั้งหมดถูกจัดสรรให้กับงานวิจัย
- เมื่อ pod ถูก schedule ไปยัง virtual Kubernetes node โค้ดของ Krea จะเปลี่ยน pod specification ให้อยู่ในรูปแบบที่เข้ากันได้กับ target provider
- หากเกิด provider-side failure ระบบจะ reconcile สถานะทั้งสองฝั่ง
- การกู้คืนถูกมอบหมายให้ Kubernetes และระบบจะตรวจจับ failure แล้วส่งต่อให้ Kubernetes
- observability เป็นด้านที่ได้บทเรียนมากที่สุดในการทำ pretraining ขนาดใหญ่
- หากไม่มี subsystem metric ที่เกี่ยวข้องกับ GPU, PCIe, NVLink และ InfiniBand ก็แทบเป็นไปไม่ได้ที่จะฝึกที่สเกลนี้
- metric ถูกเก็บผ่านการผสมกันของ DCGM และ custom DaemonSet
- เมื่อ GPU เกิน 75–78°C จะเริ่มเกิด throttling และ throughput โดยรวมจะลดลง ส่งผลให้ความไม่เสถียรของการฝึกเพิ่มขึ้น
DCGM_FI_PROF_PIPE_TENSOR_ACTIVEเป็นตัวบ่งชี้ที่ต้องการใช้มากที่สุดในการตัดสินว่าการฝึกทำงานตามที่คาดไว้หรือไม่- metric ของ InfiniBand มีความสำคัญต่อการวินิจฉัย fabric instability, link flapping, packet error, congestion, symbol error และ throughput disparity
- การสเกลจำนวน GPU เป็นเรื่องยาก
- งานรันที่ใช้ต่ำกว่า 128 GPU มีความเสถียรมาก และมักรันได้หลายวันโดยไม่มีปัญหา
- เมื่อเพิ่มจำนวน GPU งานรันก็เริ่ม crash บ่อยขึ้นมาก
- ที่สเกลใหญ่มาก ไม่สามารถทำงานรันใด ๆ ให้เกิน 24 ชั่วโมงได้สำเร็จเลย
- crash จำนวนมากไม่มีสาเหตุที่ชัดเจน และปรากฏเป็นลักษณะอย่าง NCCL timeout ทั้งที่ metric ทั้งหมดดู healthy
- หนึ่งในความผิดพลาดครั้งใหญ่ช่วงแรกคือการเลือกใช้ Ceph และต่อมาจึงเปลี่ยนไปใช้ Weka
- ปัญหาเกี่ยวกับ filesystem และ downtime ลดลงอย่างมาก และประสิทธิภาพก็ดีขึ้นในระดับใกล้เคียงกัน
- Weka เป็นองค์ประกอบสำคัญที่ทำให้สามารถทำ aggressive checkpointing ระหว่างการฝึก Krea 2 ได้
- checkpoint ใช้เวลาเพียงประมาณ 30 วินาที ทำให้เสียเวลาไปกับ checkpointing น้อย
คลังข้อมูลและคิวงาน
- เพื่อการรวบรวมและคัดสรรข้อมูลของ K2 ได้สร้างระบบคลังข้อมูลและคิวแบบกำหนดเองที่มี PostgreSQL server cluster เป็นศูนย์กลาง
- แต่ละ Krea tablet server เรียกว่า “krablet”
- krablet แต่ละตัวประกอบด้วย Postgres instance ที่เก็บ data shard หนึ่งชุด และ “funnel” server deployment ที่ทำ batch/queue การ mutation แบบอะซิงโครนัสเพื่อลด lock contention
- การอ่านทั้งหมดถูกพร็อกซีผ่าน “RPC” server deployment ขนาดใหญ่
- RPC server เข้ามาแทนที่ traditional connection pooler อย่าง PgBouncer
- RPC server แต่ละตัวจะคง connection pool สำหรับทุก shard ของฐานข้อมูล
- ระบบ krablet ขยายได้ถึง 208TB สำหรับ metadata เพียงอย่างเดียว และสามารถประมวลผล
UPSERTtransaction ที่มีการแย่งกันใช้งานได้หลายหมื่นครั้งต่อวินาที- ทำหน้าที่เป็น single source of truth สำหรับข้อมูลงานวิจัยทั้งหมด
- ทำให้ stream-processing layer สามารถกลายเป็นชั้นเดียวกับ data layer ได้
- workflow การประมวลผลงานทั่วไปคือการใช้ Postgres table เสมือนเป็นคิว
- OCR worker จะค้นหา row ที่มี
contains_text IS NULLแล้วนำไปประมวลผล - embed worker จะประมวลผล row ที่มี
embedding_path IS NULLและcontains_text = FALSE - ใช้
FOR UPDATE SKIP LOCKEDเพื่อ claim row และอัปเดตคอลัมน์ตระกูลlast_tried_at
- OCR worker จะค้นหา row ที่มี
- โมเดลคิวนี้มีพฤติกรรมการ retry ต่างจาก Kafka หรือ Ray
- เมื่อเกิด failure จะไม่ทิ้ง row หรือส่งไปยัง dead-letter queue
- แม้ row ที่ประมวลผลล้มเหลวก็จะถูก retry ที่ท้ายคิวได้ด้วย atomic update ของ
last_tried_at - ยังช่วยป้องกัน head-of-line blocking ด้วย
- จำนวน worker ปรับแบบไดนามิกได้
- งานประมวลผลถูก deploy บน Kubernetes และสามารถ scale up/down ได้ตามต้องการโดยไม่ต้องทำ data resharding
- งานหนึ่งสามารถรันด้วย worker 1 ตัวหรือ 1000 ตัวก็ได้
- ใช้ Prometheus scaling metric เพื่อ autoscale แต่ละส่วนของ pipeline ตามปริมาณงานที่พร้อมให้ประมวลผล
- เพื่อความสะดวกของนักวิจัย มีระบบชื่อ “pluck”
- ให้ global map API ที่เหมาะกับการเขียนใน notebook
t.mapจะคืน handle ที่ผู้ใช้สามารถ attach เพื่อดู live progress ได้- UDF จะถูก pickle ด้วย
cloudpickleและไปรันบน remote worker
- สำหรับงานวิจัยรุ่นถัดไป กำลังสร้างระบบตัวสืบทอดที่ยังคงใช้ semantics ของคิวแบบ krablet และ
FOR UPDATE SKIP LOCKEDแต่เก็บข้อมูลเป็น LSM tree บน object storage- มีลิงก์รับสมัครทีม supercomputing / distributed systems สำหรับทำงานที่เกี่ยวข้อง: https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072ad0f4c9
ทิศทางในอนาคต
- ใน Krea 2 เลือกใช้สถาปัตยกรรมและ optimizer ที่ค่อนข้างอนุรักษนิยม โดยให้ความสำคัญกับความเสถียรและความเร็วในการทำ iteration
- ในรอบ pretraining ถัดไป มีแผนจะนำ modern LLM transformer design มาใช้กับ diffusion transformer
- แนวทางที่กำลังพิจารณามีทั้ง MoE, native 2K–4K resolution scale ผ่าน sparse attention, NVFP4 pretraining และ Muon scaling
- มองว่า model ปัจจุบันยัง undertrained และการเทรนที่ยาวนานขึ้นน่าจะช่วยได้
- ปัจจุบัน training pipeline ของ Krea 2 จบที่ขั้น multi-reward RL
- Krea ได้ยืนยันแล้วภายในโดยใช้งาน expert ภายในว่า OPD และ MOPD เป็น distillation method ที่มีประสิทธิภาพสำหรับ diffusion model
- หวังว่าจะได้แบ่งปันผลลัพธ์เพิ่มเติมในเร็ว ๆ นี้
- production diffusion model ต้องการโครงสร้างที่ซับซ้อนซึ่งประกอบด้วยหลาย model ที่พึ่งพากัน
- การเสิร์ฟ latent diffusion model โดยทั่วไปต้องมี autoencoder, diffusion transformer, text encoder และ prompt-expansion model
- ทั้งนี้ขึ้นอยู่กับ stack ว่าอาจมี module เพิ่มเติมอย่าง style-reference model หรือ upscaler
- การดูแลหลาย component ที่ต้องเทรนแยกกันแต่มีความพึ่งพากัน ทำให้การประสานงานของทีมวิจัยเป็นเรื่องยาก
- Krea วางแผนจะทำให้สถาปัตยกรรมเรียบง่ายขึ้น และรวมหลาย component ไว้ใต้ model เดียวในรอบ pretraining ถัดไป
- Krea 2 มุ่งเน้นหลักไปที่การสร้างภาพเพื่อการสำรวจเชิงสร้างสรรค์ และในอนาคตต้องการขยาย capability ไปสู่ robust editing, image reference และ native 2K/4K generation
- มองว่าการ prompting ด้วยภาษาธรรมชาติเพียงอย่างเดียวแบบดั้งเดิมนั้นไม่เพียงพออีกต่อไปสำหรับรองรับขอบเขตคำขอทั้งหมดของผู้ใช้
- พบ prompting style ที่หลากหลายใน prompt ของผู้ใช้ เช่น natural language, tag, detailed JSON, bounding box, instruction, visual guideline และ Markdown
- แม้ prompt expansion จะช่วยแก้ได้บางส่วน แต่ก็เห็นว่า model ควรเข้าใจ prompt เหล่านี้ได้โดยกำเนิดด้วย ซึ่งควรเป็นความสามารถหลัก
1 ความคิดเห็น
ความเห็นจาก Hacker News
มีการเปิดเผยน้ำหนักของ โมเดลข้อความสู่ภาพ รุ่นใหม่ล่าสุด พร้อมเผยแพร่บทความที่ลงลึกถึงกระบวนการฝึกค่อนข้างมาก
มีการใส่รายละเอียดส่วนที่ปกติไม่ค่อยเขียนกันมากนัก เช่น การฝึกจริงและโครงสร้างพื้นฐานด้านข้อมูล เลยคิดว่าน่าจะมีเนื้อหาที่คนสนใจด้านนี้อยากอ่าน
ในฐานะคนที่ติดตามวงการนี้มาต่อเนื่อง การได้อ่านการทดลองและความพยายามเบื้องหลังผลิตภัณฑ์สุดท้ายนั้นน่าสนใจมาก และถ้าปล่อยเครื่องมือสำหรับ fine-tuning บางส่วนให้ชุมชนได้ลองด้วย ก็น่าจะช่วยผลักดันศักยภาพของโมเดลได้มากขึ้น
รู้สึกอึดอัดกับแนวโน้มที่โมเดลหลัก ๆ ตัดคอนเทนต์ประเภทนี้ออกอย่างหนักด้วยเหตุผลด้านความปลอดภัย แม้ในกรณีที่ถูกกฎหมายก็ตาม
เดิมที Flux.1 Krea อยู่บนเว็บเบนช์มาร์ก GenAI Showdown ของผมมาตั้งแต่เดือนกรกฎาคมปีที่แล้ว ซึ่งในวงการนี้มันให้ความรู้สึกเหมือนผ่านมานานมากแล้ว อยากลองทดสอบโมเดลใหม่นี้แบบจริงจังเหมือนกัน
ผมคือ Diego Rodriguez ผู้ร่วมก่อตั้งและ CTO ของ Krea ครั้งนี้เราเปิดทั้งน้ำหนักโมเดลและ รายงานเชิงเทคนิคที่อัดแน่นพอสมควร เมื่อเทียบกับมาตรฐานของอุตสาหกรรมในปัจจุบัน
ในรายงานมีรายละเอียดเรื่องการคิวเรต/ใส่คำบรรยายข้อมูล สถาปัตยกรรมโมเดล การฝึกภายหลัง การวางท่อ reinforcement learning การขยายพรอมป์ต์ การอ้างอิงสไตล์ และโครงสร้างพื้นฐาน
น้ำหนักแบ่งเป็นสองแบบ: Krea 2 Turbo เป็นโมเดลที่กลั่นการชี้นำและ timestep เพื่อให้ inference เร็วขึ้น ส่วน Krea 2 RAW เป็นโมเดลที่ออกแบบมาโดยคำนึงถึงการแฮ็กและ fine-tuning
ผมคิดว่าชุมชน open LLM ทำได้ดีมากในเรื่องการเปิดโมเดลหลายขนาดและหลายช่วงของ pipeline การฝึก และครั้งนี้เราก็ปล่อยทั้ง checkpoint ช่วงฝึกกลางทางและช่วงหลังการฝึกด้วย ซึ่งเป็นเรื่องที่พบได้ไม่บ่อยในฝั่งภาพและมัลติมีเดีย จึงค่อนข้างภูมิใจกับจุดนี้
ตามเกณฑ์เบนช์มาร์กข้อความสู่ภาพของ Artificial Analysis คุณภาพของภาพอยู่ในระดับใกล้เคียง Nano Banana: https://artificialanalysis.ai/image/leaderboard/text-to-imag...
ยังมาพร้อมไลเซนส์ที่ค่อนข้างผ่อนปรนสำหรับบุคคลทั่วไปและธุรกิจขนาดเล็ก
แนะนำการปล่อย OSS: https://www.krea.ai/krea-2-open-source / โมเดลบน Huggingface: https://www.krea.ai/krea-2/huggingface / ที่เก็บ GitHub: https://www.krea.ai/krea-2/github / Reddit AMA: https://www.reddit.com/r/StableDiffusion/comments/1udnm0a/we... / รายงานเชิงเทคนิค: https://www.krea.ai/blog/krea-2-technical-report
ผลออกมาแล้ว และต้องบอกว่าน่าประทับใจมาก โดยเฉพาะเมื่อคิดว่า โมเดล Turbo เร็วขนาดนั้นที่ 8 สเต็ป
ในบรรดาโมเดลที่โฮสต์เองแบบโลคัลได้ มีแค่ Ideogram 4 เท่านั้นที่ทำได้ดีกว่า แต่ฝั่งนั้นช้ากว่ามาก ระดับนาทีกับวินาทีเลย
มันยังพังกับ “ตัวฆ่าโมเดล” ประจำอย่างดาวเก้าแฉก Count Rugen หรือโลกแบนที่มีคนเยอะเกินไป แต่โดยรวมแล้วทำผลงานเกินขนาดตัว ได้คะแนนสูงสุดในกลุ่มโมเดลที่โฮสต์เองแบบโลคัลได้ และในภาพรวมก็อยู่ถัดจาก Ideogram 4 โดยผ่าน 6 จาก 15 การทดสอบ
ลิงก์ GenAI ที่เทียบเฉพาะโมเดลโฮสต์เองแบบโลคัลได้: https://genai-showdown.specr.net/?models=fd,hd,kd,qi,f2d,zt,...
น่าสนใจที่วิธีทดสอบพาไปถึงหัวข้อที่เฉพาะเจาะจงประหลาด ๆ แบบนี้ได้
เป็นเรื่องดีที่มีโมเดลเปิดน้ำหนักเพิ่มขึ้น และก็ชอบบทความที่ลงลึกแบบนี้มาก
ชอบแนวทางที่พยายาม รักษา manifold ให้กว้าง เพื่อสร้างได้หลายสไตล์ด้วย แบบนี้น่าจะดีกว่าการจูนให้ตรงกับพรีเซ็ตสไตล์ไม่กี่แบบเท่านั้น
แต่ Nano Banana 2 หรือ Images 2.0 ซึ่งเป็นโมเดลจัดองค์ประกอบภาพต่อภาพ/เชิงเอเจนต์ระดับสูงก็ออกมาทรงพลังมากแล้ว เลยให้ความรู้สึกเหมือนกำลัง “ไปรบในสงครามครั้งก่อน” อยู่เหมือนกัน
ค่อนข้างสงสัยว่าวิธีใส่ Qwen 3 VL แบบไขว้จะเข้าใกล้ภาพต่อภาพระดับนั้นได้จริงหรือไม่ และภาพต่อภาพที่แข็งแรงมีความสำคัญมากในแง่ของการแก้ไข การปรับแต่ง ความคงเส้นคงวาของตัวละคร และการทำให้สิ่งที่ตอนนี้ใช้กับการถ่ายโอนสไตล์เป็นเรื่องทั่วไปมากขึ้น ส่วนการถ่ายโอนสไตล์ก็ดูอธิบายไว้ไม่มากพอ
การไปให้ถึงระดับนั้นคงไม่ง่าย แต่ผมคิดว่าสมรภูมิถัดไปของโมเดลภาพอยู่ตรงนี้แน่ ๆ Ideogram ดูเหมือนกำลังสะสมความสามารถไปทางนั้น แต่ฝั่งเปิดน้ำหนักยังแทบไม่เห็นมากนัก
เวิร์กโฟลว์เชิงเอเจนต์เข้ากันได้กับ Krea 2 อยู่แล้ว เลยไม่ค่อยเข้าใจว่าหมายถึงส่วนไหน ถ้าหมายถึงโมเดลสำหรับการแก้ไข แบบนั้นเราก็กำลังทำอยู่
ในเบนช์มาร์กข้อความสู่ภาพก็อยู่ในระดับใกล้เคียงกัน และดูได้จากลิงก์ Artificial Analysis ที่ผมแปะไว้ในคอมเมนต์ด้านบน
คุณไม่สามารถฝึก Nano Banana หรือ ChatGPT ใหม่ให้เข้าใจแบรนด์ของลูกค้าได้ และนี่แหละคือข้อร้องเรียนที่ลูกค้าของเราพูดถึงอยู่เรื่อย ๆ แถมเพราะเป็นโอเพนซอร์ส การเทียบแบบ 1:1 จึงไม่ง่ายนัก
ส่วนที่บอกว่าการถ่ายโอนสไตล์ไม่ได้อธิบายไว้ก็ยังฟังดูคลุมเครือ เพราะในหน้าเพจมีคำว่า “reference” อยู่ 11 ครั้ง และพออ่านจริงก็พบว่าพูดถึงเรื่องนี้ไว้ค่อนข้างมาก
ขอบคุณที่ Krea เปิดให้ดาวน์โหลดค่าน้ำหนักของโมเดลได้ แต่ถ้ามีเงื่อนไขแบบนี้ในไลเซนส์ ก็ไม่ใช่ โอเพนซอร์ส: https://huggingface.co/krea/Krea-2-Raw/blob/main/LICENSE.pdf
อนุญาตให้ใช้งานเชิงพาณิชย์ได้เฉพาะกรณีที่รายได้ต่อปีรวมทั้งบริษัทในช่วง 12 เดือนล่าสุดต่ำกว่า 1 ล้านดอลลาร์ และถ้าเกินกว่านั้นต้องมีไลเซนส์องค์กรแยกต่างหาก
อีกทั้งห้ามนำโมเดล Krea, งานดัดแปลง, หรือผลลัพธ์ไปใช้โดยฝ่าฝืนกฎหมาย สัญญา หรือ policy การใช้งานที่อนุญาต และเมื่อนำไปแจกจ่าย ต้องมี ตัวกรองคอนเทนต์ ที่สมเหตุสมผลเพื่อใช้ตรวจจับ ป้องกัน และบรรเทาการสร้างคอนเทนต์ต้องห้าม เป็นอันตราย หรือผิดกฎหมาย
ต้องปฏิบัติตาม policy การใช้งานที่อนุญาตด้วย และในหน้าของ policy https://www.krea.ai/krea-2-use-policy ก็มีข้อกำหนดห้ามหลบเลี่ยงมาตรการความปลอดภัย ข้อจำกัดการใช้งาน ตัวกรองคอนเทนต์ การระบุที่มา หรือวอเตอร์มาร์กที่ Krea หรือผู้แจกจ่ายติดตั้งไว้
ดูเหมือนว่า Turbo จะมี เวอร์ชันแปลงเป็น GGUF ออกมาแล้ว: https://huggingface.co/Abiray/Krea-2-Turbo-GGUF
มีรายการที่น่าสนใจในหน้ารับสมัครงาน
สำหรับคนที่รู้ว่า Mellanox สมัยก่อนเป็นที่แบบไหน อาจจะถูกจริต: https://jobs.ashbyhq.com/krea/ebe94024-eef6-4306-a019-10072a...
เป็นโมเดลที่ดี แต่ค่อนข้างเสียดายนิดหน่อยที่ใช้ Qwen VAE
หลังจากลองใช้ทั้งคู่แล้ว ผมมองว่า Flux VAE เหนือกว่าเล็กน้อยในเรื่องการเรียนรู้เท็กซ์เจอร์แบบสมจริง แต่ก็ไม่ได้ต่างกันมากอย่างที่คิด Qwen VAE เองก็ทำได้ดีมากโดยรวมในการทดลองแบบคุมโทน และเด่นในการเรียนรู้การสร้างสไตล์ที่หลากหลาย
แต่ยังไม่มีเวลาลองด้วยตัวเอง
ตั้งตารอที่จะได้ลองใช้ Krea 2 อยู่ ผมใช้ Z-Image Turbo ทุกวัน และมันเข้ามาแทนการสมัครสต็อกโฟโต้สำหรับงานภาพสมจริงกับภาพประกอบไปแล้ว
เลยสงสัยว่าค่าเทรนน่าจะอยู่ที่เท่าไร
ประเมินค่าเทรนแบบจริงจังค่อนข้างยาก เพราะเราใช้ Kubernetes cluster แบบแชร์ที่รันทั้งงาน inference และงานวิจัยพร้อมกัน
สงสัยว่าถ้าจะ self-host โมเดลแบบนี้ เขาใช้อะไรกัน
เคยลอง ollama กับ open-webui แล้ว แต่ไม่รองรับการสร้างภาพเลย
ถ้าติดขัด ตอนเริ่มต้นก็ใช้วิธีก๊อปปี้แล้ววาง workflow มาก่อนได้
https://github.com/LostRuins/koboldcpp