2 คะแนน โดย GN⁺ 2023-12-03 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Unsloth มี Unsloth Studio สำหรับรันและฝึกโมเดลในเครื่อง และ Unsloth Core แบบใช้โค้ด โดยรองรับโมเดลข้อความ·เสียง·embedding·vision บน Windows·Linux·WSL·macOS
  • ฟีเจอร์การฝึกรองรับการ fine-tuning·RL·pretraining ของ โมเดลมากกว่า 500 รุ่น โดยมีเป้าหมายด้านประสิทธิภาพหลักคือ ฝึกได้เร็วขึ้นสูงสุด 2 เท่า, ใช้ VRAM น้อยลงสูงสุด 70%, และความแม่นยำไม่ลดลง
  • ฟีเจอร์ inference ครอบคลุมการค้นหา·ดาวน์โหลด·รันโมเดล GGUF·LoRA adapter·safetensors, การ export โมเดล, tool calling, การค้นเว็บ, การรันโค้ด และ endpoint สำหรับ local API inference
  • โดยค่าเริ่มต้น Unsloth Studio จะ bind กับ localhost; --secure ใช้ Cloudflare HTTPS tunnel และ -H 0.0.0.0 อาจเปิดเผย raw port ออกสู่ภายนอกได้ ดังนั้นการ ปกป้อง API key และการใช้ --disable-tools จึงสำคัญ
  • ไลเซนส์เป็นโครงสร้างคู่ระหว่าง Apache 2.0 และ AGPL-3.0 โดยแพ็กเกจ Core เป็น Apache 2.0 ส่วนคอมโพเนนต์เสริมบางส่วน เช่น Studio UI เป็น AGPL-3.0

สิ่งที่ Unsloth มีให้

  • Unsloth Studio (Beta) คือเว็บ UI สำหรับรันและฝึกโมเดลในเครื่อง
    • ทำงานได้บน Windows, Linux, WSL, macOS
    • รองรับโมเดลข้อความ, เสียง, embedding, vision
  • Unsloth Core เป็นเวอร์ชันแบบใช้โค้ด และมีข้อกำหนดต่างจาก Studio
  • มีคำสั่งติดตั้งเริ่มต้นแยกตาม OS

ฟีเจอร์ inference

  • รองรับการค้นหา·ดาวน์โหลด·รันโมเดล โดยรูปแบบเป้าหมายรวมถึง GGUF, LoRA adapter และ safetensors
  • สามารถ บันทึกหรือ export โมเดลเป็น GGUF, 16-bit safetensors และรูปแบบอื่น ๆ ได้
  • Tool calling รองรับ self-healing tool calling และการค้นเว็บ
  • การรันโค้ด ช่วยให้ LLM ทดสอบโค้ดได้ใน Claude artifacts และสภาพแวดล้อมแบบ sandbox
  • สามารถ deploy และรัน local LLM ร่วมกับ Claude Code, Codex tools ได้ผ่าน API inference endpoint
  • เชื่อมต่อกับ API provider เช่น OpenAI, Anthropic หรือเซิร์ฟเวอร์อย่าง vLLM, Ollama ได้
  • สามารถแชทกับรูปภาพ, เสียง, PDF, โค้ด, DOCX ฯลฯ ได้
  • ระบุว่าได้แก้บั๊กที่ช่วยปรับปรุงความแม่นยำของโมเดลจากการทำงานร่วมโดยตรงกับทีมที่เกี่ยวข้องกับ gpt-oss, Qwen3, Llama 4, Mistral, Gemma 1-3, Phi-4

ฟีเจอร์การฝึกและประสิทธิภาพ

  • Unsloth รองรับการฝึกและ RL ของ โมเดลมากกว่า 500 รุ่น
    • ฝึกได้เร็วขึ้นสูงสุด 2 เท่า
    • ใช้ VRAM น้อยลงสูงสุด 70%
    • ความแม่นยำไม่ลดลง
  • ใช้ Triton แบบปรับแต่งเองและ kernel ทางคณิตศาสตร์
    • มีลิงก์ไปยังกรณีความร่วมมือด้าน FP8 reinforcement learning กับ PyTorch
    • มีลิงก์ไปยังกรณีความร่วมมือด้าน MoE ที่เร็วขึ้นกับ Hugging Face
  • Data Recipes สร้าง dataset อัตโนมัติจาก PDF, CSV, DOCX ฯลฯ และแก้ไขข้อมูลได้ใน visual node workflow
  • Reinforcement learning ระบุว่าใช้ VRAM น้อยลงสูงสุด 80% สำหรับ GRPO, FP8 เป็นต้น
  • รูปแบบการฝึกที่รองรับรวมถึง full fine-tuning, RL, pretraining, 4-bit, 16-bit และ FP8 training
  • ฟีเจอร์ observability ช่วยมอนิเตอร์สถานะการฝึกแบบเรียลไทม์ และรองรับ loss, การใช้ GPU, การปรับแต่งกราฟ
  • รองรับการฝึกแบบ Multi-GPU และจะมีการปรับปรุงสำคัญตามมาเร็ว ๆ นี้

เงื่อนไขการติดตั้งและการรัน

  • Unsloth Studio ทำงานได้บน Windows, Linux, WSL, macOS
    • CPU: ปัจจุบันรองรับ Chat และ Data Recipes
    • NVIDIA: รองรับการฝึกบน RTX 30/40/50, Blackwell, DGX Spark, Station ฯลฯ
    • macOS: รองรับทั้งการฝึก, MLX และ GGUF inference
    • AMD: รองรับ Chat และ Data; การฝึกใช้ Unsloth Core; การรองรับ Studio จะตามมาเร็ว ๆ นี้
    • Multi-GPU: ใช้งานได้แล้วในปัจจุบัน และมีอัปเกรดใหญ่ตามแผน
  • คำสั่งรัน Studio คือ unsloth studio -p 8888
  • Docker image มีให้เป็นคอนเทนเนอร์ unsloth/unsloth
  • การติดตั้ง Unsloth Core มีตัวอย่างบนพื้นฐาน uv และ Python 3.13
    • Linux, WSL: รัน uv venv unsloth_env --python 3.13 แล้วตามด้วย uv pip install unsloth --torch-backend=auto
    • Windows: ติดตั้ง Python 3.13 และ astral-sh.uv แล้วติดตั้งด้วยวิธีเดียวกัน
    • บน Windows คำสั่ง pip install unsloth จะทำงานก็ต่อเมื่อติดตั้ง PyTorch ไว้แล้วเท่านั้น
  • การติดตั้งสำหรับ GPU ของ AMD และ Intel ให้ทำตาม AMD Guide, Intel Guide ตามลำดับ

การเข้าถึงระยะไกลและเงื่อนไขด้านความปลอดภัย

  • โดยค่าเริ่มต้น unsloth studio จะ bind กับ 127.0.0.1 ทำให้เข้าถึงได้เฉพาะจากเครื่องปัจจุบันเท่านั้น
  • --secure ให้ใช้งานผ่านลิงก์ Cloudflare HTTPS ฟรีเท่านั้น
    • Studio ยังคงอยู่บน localhost
    • หาก tunnel เริ่มทำงานไม่ได้ จะทำงานแบบ fail-closed และไม่เปิดเผย raw port
  • -H 0.0.0.0 จะ bind raw port กับทุก network interface
    • ทำให้เข้าถึงได้จากทุกที่ในเครือข่าย จึงควรใช้เฉพาะบนเครือข่ายที่เชื่อถือได้เท่านั้น
  • เครื่องมือฝั่งเซิร์ฟเวอร์อย่างการค้นเว็บ, Python และการรันโค้ดใน terminal จะรันด้วยสิทธิ์ของผู้ใช้ และถูกเปิดใช้งานเป็นค่าเริ่มต้น
  • ผู้ที่เข้าถึงเซิร์ฟเวอร์และมี API key จะสามารถรันโค้ดบนเครื่องนั้นได้ ดังนั้นต้องเก็บ API key ให้เป็นส่วนตัว และเมื่อเปิด Studio ออกภายนอกจำเป็นต้องใช้ --disable-tools

โน้ตบุ๊กฟรีและตัวอย่างโมเดลที่รองรับ

  • สามารถรันและฝึกโมเดลในเว็บ UI ได้ด้วย Unsloth Studio notebook ฟรี
  • ตัวอย่างโน้ตบุ๊กที่ให้มาแสดงตัวเลขประสิทธิภาพและการลดหน่วยความจำแยกตามโมเดล
    • Gemma 4 (E2B): เร็วขึ้น 1.5 เท่า, หน่วยความจำลดลง 50%
    • Qwen3.5 (4B): เร็วขึ้น 1.5 เท่า, หน่วยความจำลดลง 60%
    • gpt-oss (20B): เร็วขึ้น 2 เท่า, หน่วยความจำลดลง 70%
    • gpt-oss (20B): GRPO: เร็วขึ้น 2 เท่า, หน่วยความจำลดลง 80%
    • Llama 3.1 (8B) Alpaca: เร็วขึ้น 2 เท่า, หน่วยความจำลดลง 70%
    • Orpheus-TTS (3B): เร็วขึ้น 1.5 เท่า, หน่วยความจำลดลง 50%
  • มีรายการโน้ตบุ๊กสำหรับ Kaggle, GRPO, TTS, embedding และ Vision แยกต่างหากด้วย
  • ดูโมเดลทั้งหมดได้ที่ Unsloth Catalog และดูโน้ตบุ๊กทั้งหมดได้ที่ Unsloth notebooks

รายการฟีเจอร์ล่าสุด

  • Connections: รองรับการเชื่อมต่อกับ API provider เช่น OpenAI, Anthropic หรือเซิร์ฟเวอร์อย่าง vLLM, Ollama
  • MTP: รองรับการรัน Qwen3.6 MTP และกำหนดค่า MTP ตามฮาร์ดแวร์โดยอัตโนมัติ
  • Qwen3.6: สามารถฝึกและรัน Qwen3.6-35B-A3B ใน Unsloth Studio ได้
  • Gemma 4: สามารถรันและฝึกโมเดลใหม่ของ Google ได้โดยตรงใน Unsloth
  • MoE LLM: ระบุการฝึกที่เร็วขึ้น 12 เท่าและใช้ VRAM น้อยลง 35% สำหรับ DeepSeek, GLM, Qwen, gpt-oss
  • Embedding models: รองรับการ fine-tuning embedding ให้เร็วขึ้นประมาณ 1.8~3.3 เท่า
  • 7x longer context RL: ให้งาน RL ที่มี context ยาวกว่า 7 เท่าเมื่อเทียบกับการตั้งค่าอื่น ๆ ด้วย batching algorithm ใหม่
  • 500K Context: สามารถฝึกโมเดล 20B ด้วย context เกิน 500K บน GPU 80GB ได้
  • FP8 & Vision RL: สามารถทำ FP8 และ VLM GRPO บน GPU สำหรับผู้บริโภคได้

ไลเซนส์และโปรเจกต์พื้นฐาน

  • Unsloth ใช้โมเดลไลเซนส์คู่ระหว่าง Apache 2.0 และ AGPL-3.0
    • แพ็กเกจหลักของ Unsloth ยังคงเป็น Apache 2.0
    • คอมโพเนนต์เสริมบางส่วน เช่น Unsloth Studio UI ใช้ AGPL-3.0
  • โปรเจกต์กล่าวถึง llama.cpp, Hugging Face transformers, TRL, PyTorch, Torch AO, NVIDIA NeMo DataDesigner ฯลฯ

1 ความคิดเห็น

 
GN⁺ 2023-12-03
ความคิดเห็นจาก Hacker News
  • ผมยังไม่ได้ลองรันโค้ดเอง แต่ไม่ค่อยเข้าใจว่ามันเป็นไปได้อย่างไร
    ถ้าโปรไฟล์ การ fine-tune QLoRA Llama-2-70B ด้วย PyTorch จะเห็นว่าเวลารันส่วนใหญ่หมดไปกับการคูณเมทริกซ์ขนาดใหญ่ในเลเยอร์ MLP และมี attention เพิ่มเข้ามาอีกเล็กน้อย
    ภายใน repo นี้ก็ดูเหมือนจะเรียก torch.matmul() สำหรับ MLP และ flash_attn_func() สำหรับ attention ใช้เส้นทางเดียวกับ HuggingFace แล้วมันเร็วกว่ามากขนาดนี้ได้อย่างไรจึงน่าสงสัย
    มี Triton kernel อยู่สองสามตัวก็จริง แต่ดูเหมือนจะไม่มี Triton สำหรับ MLP หรือ attention ซึ่งเป็นคอขวดหลักส่วนใหญ่

    • เขาอธิบายว่าเป็นเพราะ custom autograd ที่ปรับแต่งมา ซึ่ง autograd เป็นองค์ประกอบหลักของการคำนวณอนุพันธ์ จึงฟังดูมีเหตุผลอยู่
      ยังพูดถึงการปรับปรุงง่าย ๆ อย่าง function inlining หรือการปรับหน่วยความจำให้เหมาะสม ซึ่งส่วนเหล่านี้ก็มีโอกาสปรับแต่งได้มาก
      แต่ไม่แน่ใจนักว่าประโยชน์เหล่านั้นจะยังเหลืออยู่ในเวอร์ชัน “pro” แบบซอร์สปิดหรือไม่
      ถ้าเป็นผลไม้ที่ห้อยต่ำ ไม่นาน implementation แบบโอเพนซอร์สก็น่าจะหยิบไปใช้ได้
    • มีคำอธิบายละเอียดเพิ่มเติมที่ https://unsloth.ai/introducing
    • คำกล่าวอ้างใหญ่ ๆ หลายอย่างถูกล็อกไว้หลัง เวอร์ชัน pro แบบเสียเงิน ดูเป็นสัญญาณเตือน
  • ตัดคำวิจารณ์เรื่องราคาออกไปก่อน ผมว่าควรรีบหาพนักงานขายหรือ solution engineer ที่เคยทำงานในบริษัทฐานข้อมูลระยะเริ่มต้น แล้วเริ่ม cold call ไปหา ลูกค้าระดับสูงที่มี GPU หลายพันตัว
    ถ้าจะขายสิ่งนี้ เส้นทางที่เป็นไปได้มากที่สุดน่าจะเป็น ดีล B2B มูลค่า 200,000–300,000 ดอลลาร์ขึ้นไป

  • สำหรับคนที่สนใจ เพิ่งเผยแพร่บล็อกโพสต์ใหม่ที่ครอบคลุมการปรับแต่งทั้งหมด
    มี benchmark ที่ทำซ้ำได้อย่างสมบูรณ์ 59 รายการด้วย: https://unsloth.ai/blog/mistral-benchmark

  • ผลลัพธ์ดูมีแวว เลยอยากลองใช้เอง
    มีคำถามเกี่ยวกับ performance benchmark ว่าทำไมผลลัพธ์ทั้งหมดที่ใช้ GPU 2 ตัวกับ DDP ถึงใช้เวลานานกว่า GPU ตัวเดียว
    benchmark ทั้งสองทำงานปริมาณเท่ากันด้วย epoch การเทรนหนึ่งครั้งเหมือนกัน ดังนั้นการ scale ถอยหลังแบบนี้จึงค่อนข้างน่าแปลกใจ

    • เหตุผลหลักมีสองข้อ
      ข้อแรก DDP เองมี overhead เพราะในแต่ละ training step GPU0 กับ GPU1 ต้องส่ง gradient ไปยัง GPU0 และซิงโครไนซ์กัน
      ข้อสอง HuggingFace ดูเหมือนจะไม่ได้ปรับให้เหมาะกับ DDP ดีพอเพราะมีการย้ายข้อมูลที่ไม่มีประสิทธิภาพ และเราแก้ส่วนนี้แล้ว ที่น่าสนใจคือแม้แต่ GPU ตัวเดียวก็เร็วขึ้นด้วย
  • คงดีถ้ามี ลำดับเหตุการณ์ ที่รวบรวมความพยายามต่าง ๆ แบบนี้ไว้ ตอนนี้มีตัวแปรแตกแขนงเยอะมากจนผมตามกระแสไม่ทันตั้งนานแล้ว
    เว้นแต่จะยอมรับตัวชี้วัดที่แต่ละเจ้ารายงานเองว่าเป็นคำตอบที่ถูกต้องไปเลย งานนี้น่าจะใหญ่มาก
    ถึงอย่างนั้นก็ยังต้องมีเงื่อนไขตามฮาร์ดแวร์และขอบเขตการใช้งานเสมอ
    ถ้าจะทำให้มีประโยชน์พอจริง ๆ ต้องมี CI/CD pipeline ที่มีหลาย configuration ของเครื่องและ benchmark หลายชุด รวมถึงวิธีนำเสนอผลลัพธ์อย่างสมเหตุสมผล
    ถ้าใครทำสำเร็จ จะกลายเป็นสิ่งที่ขาดไม่ได้จริง ๆ

    • ผมก็คิดแบบนั้นเป๊ะเลย
      กำลังเขียนบล็อกโพสต์อยู่ที่ https://colab.research.google.com/drive/1AOuhMVILE06mD-Go7-R... โดยจะแสดงการเปลี่ยนแปลงทั้งหมดที่ผมทำทีละขั้น พร้อมการวัดเวลาและการลดการใช้หน่วยความจำ
      ถ้าสนใจ พอเสร็จแล้วจะเอามาโพสต์
  • อยากรู้ว่าสิ่งนี้เทียบกับการปรับแต่ง Sam และ llama2 ของ PyTorch Labs อย่างไร
    https://github.com/pytorch-labs/segment-anything-fast
    https://github.com/pytorch-labs/gpt-fast

    • อันนั้นสำหรับ inference ส่วนโค้ดของเราเป็น สำหรับการเทรน
      ต่อไปก็มีแผนทำ inference ให้เร็วขึ้นด้วย
      ได้ดู GPT Fast ของ Chillee แล้ว เร็วมากจริง ๆ
  • เกี่ยวข้องกันนิดหน่อย อยากรู้ว่ายังมีคุณค่าพอไหมที่จะใช้ P100 หรือ P40
    กำลังคิดจะซื้อสักตัว แต่ดูเหมือน Pascal จะถูกถอดการรองรับออกจากโปรเจกต์มากขึ้นเรื่อย ๆ

    • P100 น่าจะรองรับ Flash Attention ของ Xformers ได้อยู่ แต่ Triton รองรับ Compute Capability 7.0 ขึ้นไป และ P100 เป็น 6.0 จึงเป็นปัญหา
      ในทางเทคนิคโค้ดอาจรันได้ แต่ต้องแก้เพื่อเอาการเปลี่ยนแปลงของ Triton ออก
  • ดูน่าสนใจมาก แต่สับสนว่าทำไมถึงกัน เวอร์ชันที่เพิ่มความเร็วได้สูงสุด ไว้เฉพาะ enterprise
    น่าจะสมเหตุสมผลกว่าถ้าให้แผน Free กับ Paid ต่างกันด้านประสิทธิภาพ แล้วให้ Enterprise แตกต่างด้วยองค์ประกอบอย่างการสนับสนุน

    • เป็นข้อสังเกตที่ดี เราก็คิดเรื่องนี้อยู่เหมือนกัน และยังปรับนโยบายราคาอยู่ จึงยินดีรับทุกข้อเสนอแนะ
      เรื่องพวกนี้เราเพิ่งทำเป็นครั้งแรก เลยกำลังสร้างไปพร้อมกับลงมือทำจริง
  • เห็นพูดถึง GPU หลังปี 2018 เลยสงสัยว่าทำไมตัวอย่างเช่น 1080 Ti ถึงใช้ไม่ได้
    ดูสเปกฮาร์ดแวร์คร่าว ๆ เหมือนจะรองรับ CUDA 8 ขึ้นไป แต่ที่นี่บอกว่า 7.5
    มีใครอธิบายเพิ่มได้ไหม?

    • 1080 Ti น่าเสียดาย แต่ Triton กับ Xformers รองรับ CUDA 7.0 ดังนั้นตราบใดที่ OpenAI กับ Meta ยังไม่รองรับ CUDA 6.0 เราก็คงรองรับได้ยาก
      เหตุผลหลักคือเริ่มตั้งแต่ Turing มี Tensor Cores ทำให้การคูณเมทริกซ์เปลี่ยนไปอิงกับ Tensor Cores
    • CUDA Compute Capability ของ 1080 Ti คือ 6.1