29 คะแนน โดย GN⁺ 2025-10-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • nanochat ของ Andrej karpathy เป็นโปรเจกต์โอเพนซอร์สที่ให้คุณสร้าง LLM แบบสนทนาคล้าย ChatGPT ได้ด้วยงบประมาณ $100
  • ไปป์ไลน์ทั้งหมด (tokenize, pretraining, midtraining, finetuning, evaluation, inference, web service) ถูกทำไว้อย่างกระชับและแฮ็กต่อได้ง่าย
  • บนโหนด GPU 8XH100 เพียงเครื่องเดียวสามารถเทรนเสร็จภายใน 4 ชั่วโมงด้วยสคริปต์เดียว และโมเดล d26 ที่ตั้งเป้าประสิทธิภาพระดับ GPT-2 ใช้เวลาประมาณ 12 ชั่วโมงที่ราคาราว 300 ดอลลาร์ ส่วนระดับ 1000 ดอลลาร์ใช้เวลา 41.6 ชั่วโมง
  • โค้ดเบสที่กระชับอย่างยิ่งประกอบด้วย 8,300 บรรทัด, 44 ไฟล์ ขนาด 330KB ไม่มีออบเจ็กต์คอนฟิกซับซ้อนหรือ model factory จึงเป็นเบสไลน์ที่ทรงพลัง อ่านง่าย และ fork ได้ง่าย
  • กำลังพัฒนาเป็นโปรเจกต์ capstoneของคอร์ส LLM101n จาก Eureka Labs โดยมีเป้าหมายเพื่อยกระดับ state of the art ของไมโครโมเดลที่เข้าถึงได้ด้วยงบต่ำกว่า 1000 ดอลลาร์

ภาพรวมโปรเจกต์ nanochat

  • nanochat เป็นโปรเจกต์โอเพนซอร์สสำหรับนักพัฒนาที่อยากสร้าง LLM แบบสนทนาคล้าย ChatGPT ด้วยต้นทุน $100
  • โค้ดเบสทั้งหมดถูกเขียนให้เป็นหนึ่งเดียว อ่านง่าย พึ่งพา dependency น้อย และกระชับ ทำให้แก้ไขและทดลองได้สะดวก
  • มีสภาพแวดล้อมที่จัดการได้ครบทุกขั้นตอนตั้งแต่ pretraining, finetuning, evaluation, inference, ไปจนถึง เว็บ UI
  • สามารถใช้สคริปต์ speedrun.sh เพื่อรันทั้งไปป์ไลน์แบบอัตโนมัติได้ ทำให้ผู้เริ่มต้นก็เริ่มใช้งานได้ง่าย
  • ออกแบบด้วยdependency ขั้นต่ำและโครงสร้างที่แฮ็กได้ง่าย จึงเหมาะอย่างยิ่งสำหรับวัตถุประสงค์ด้านการเรียนรู้ที่ต้องการความเข้าใจและการปรับแก้ได้ง่าย
  • โปรเจกต์นี้จะถูกใช้เป็นโปรเจกต์ capstone ของคอร์ส LLM101n ที่กำลังพัฒนาโดย Eureka Labs

เริ่มต้นอย่างรวดเร็ว (Quick Start)

  • ในสภาพแวดล้อม GPU (โดยเฉพาะ โหนด 8XH100) หากรัน speedrun.sh จะตั้งค่ากระบวนการเทรนและ inference ใช้เวลาประมาณ 4 ชั่วโมง
    • สำหรับโหนด 8XH100 คิดค่าใช้งาน 24 ดอลลาร์ต่อชั่วโมง รวมใช้เวลา 4 ชั่วโมง
  • แนะนำให้รันภายใน screen session เพื่อให้ติดตามการทำงานได้อย่างเสถียรระหว่างการเทรนระยะยาว
    • ใช้คำสั่ง screen -L -Logfile speedrun.log -S speedrun bash speedrun.sh
    • แยก session ด้วย Ctrl-a d แล้วตรวจสอบความคืบหน้าด้วย tail speedrun.log
  • เมื่อเทรนเสร็จแล้ว สามารถถาม LLM ได้อย่างอิสระผ่านเว็บ UI แบบง่าย และดูผลลัพธ์ในหน้าต่างแชต
    • python -m scripts.chat_web
  • โมเดลระดับ 4e19 FLOPs ให้ความสามารถด้านการสนทนาระดับเด็กอนุบาล
    • ขอให้แต่งเรื่อง/บทกวีได้
    • สังเกตอาการหลอน (hallucination) ได้
    • ตอบคำถามพื้นฐานอย่างเช่นทำไมท้องฟ้าจึงเป็นสีฟ้าได้
  • ผลการเทรนและตัวชี้วัดประสิทธิภาพหลายรายการจะถูกบันทึกไว้ใน report.md

รายงานผลการเทรน

  • ไฟล์ report.md มี "สมุดพก" ของการรันเทรนรวมอยู่
    • มีตัวชี้วัดและเมตริกประเมินหลายประเภท
    • ตารางสรุปสุดท้ายแสดงประสิทธิภาพแยกตามขั้น BASE, MID, SFT, RL
  • สถิติของโค้ดเบส
    • จำนวนอักขระ: 333,989
    • จำนวนบรรทัด: 8,304
    • จำนวนไฟล์: 44
    • จำนวนโทเค็น (โดยประมาณ): 83,497
    • dependency (จำนวนบรรทัดใน uv.lock): 2,004
  • ตัวอย่างประสิทธิภาพบนเบนช์มาร์ก
    • CORE: 0.2219 (BASE)
    • ARC-Challenge: 0.2875 (MID), 0.2807 (SFT)
    • GSM8K: 0.0250 (MID), 0.0455 (SFT), 0.0758 (RL)
    • HumanEval: 0.0671 (MID), 0.0854 (SFT)
    • เวลารวมที่ใช้: 3 ชั่วโมง 51 นาที
  • แม้ประสิทธิภาพของโมเดลจะต่ำกว่า ChatGPT แต่ให้ความสำคัญกับประสบการณ์การสร้าง LLM ด้วยงบต่ำ

โมเดลที่ใหญ่ขึ้น (Bigger Models)

  • ด้วยงบ 100 ดอลลาร์ ไม่สามารถเทรน ChatGPT clone ประสิทธิภาพสูงได้ และ LLM จริงเป็นที่รู้กันว่าใช้เงินลงทุนระดับหลายล้านดอลลาร์
  • มีสเกลเพิ่มเติมอีกสองระดับที่น่าสนใจ
    • โมเดล d26 ระดับราว 300 ดอลลาร์ (depth=26): เทรนประมาณ 12 ชั่วโมง และได้คะแนน CORE สูงกว่า GPT-2 เล็กน้อย
    • ระดับ 1000 ดอลลาร์: ใช้เวลาประมาณ 41.6 ชั่วโมง เป็นตัวเลขกลมสวย
  • การแก้ไข speedrun.sh เพื่อเทรนโมเดล d26
    • ต้องดาวน์โหลด data shard เพิ่มเติม
      • คำนวณจำนวนโทเค็นโดยนำจำนวนพารามิเตอร์คูณ 20
      • คำนวณจำนวนอักขระโดยคูณ 4.8
      • คำนวณจำนวน shard โดยหารด้วย 250 ล้าน (ต้องใช้ประมาณ 450 shard)
    • ใช้ออปชัน --depth=26 และลด device_batch_size จาก 32 เป็น 16 เพื่อป้องกัน OOM
    • ในขั้น midtraining ก็ต้องใช้ device_batch_size เดียวกัน

ข้อกำหนดด้านสภาพแวดล้อมการคอมพิวต์

  • สามารถรันบน โหนด 8XA100 GPU ได้เช่นกัน แต่จะช้าลงเล็กน้อย
  • สามารถรันบน GPU เดี่ยว ได้ด้วย
    • หากไม่ใช้ torchrun จะได้ผลลัพธ์แทบไม่ต่างกัน
    • จะสลับไปใช้ gradient accumulation โดยอัตโนมัติ
    • ใช้เวลานานขึ้น 8 เท่า
  • สำหรับ GPU ที่มี VRAM น้อยกว่า 80GB ต้องปรับ hyperparameter
    • ลด --device_batch_size จาก 32 (ค่าปริยาย) เป็น 16, 8, 4, 2, 1 เพื่อเพิ่มพื้นที่หน่วยความจำ
    • หากต้องตั้งให้ต่ำกว่า 1 ต้องใช้วิธีที่สร้างสรรค์กว่านี้
  • ด้วยการอิงบน vanilla PyTorch จึงรองรับสภาพแวดล้อมหลากหลายอย่าง xpu, mps ได้
    • ไม่ได้รองรับมาให้ทันที จึงอาจต้องแก้ไขเล็กน้อย

การใช้งานและการเข้าถึง

  • จุดเด่นที่สุดของ nanochat คือสามารถแพ็กไฟล์ทั้งหมดในครั้งเดียวเพื่อนำไปถามกับ LLM อื่น ๆ หรือบริการค้นหาเอกสารได้ง่าย
  • ตัวอย่างการใช้ยูทิลิตี files-to-prompt
    • รวมไฟล์ py, md, rs, html, toml, sh
    • ยกเว้นโฟลเดอร์ rustbpe/target
    • เลือกรูปแบบผลลัพธ์เป็น cxml
    • แพ็กเป็นโค้ด 8 พันบรรทัด 45 ไฟล์ ขนาดราว 330KB (ประมาณต่ำกว่า 1 แสนโทเค็น)
  • แนะนำให้ใช้ DeepWiki
    • เปลี่ยน github.com ใน GitHub URL เป็น deepwiki.com เพื่อถามเกี่ยวกับรีโพซิทอรีนั้นได้
    • ให้บริการโดย Devin/Cognition

การมีส่วนร่วมและทิศทางของโปรเจกต์

  • nanochat ยังเป็นโปรเจกต์ที่ยังไม่เสร็จสมบูรณ์
  • เป้าหมายคือยกระดับ state of the art ของไมโครโมเดลที่ทำงานได้ครบตั้งแต่ต้นจนจบด้วยงบต่ำกว่า 1000 ดอลลาร์
  • การเข้าถึงไม่ได้หมายถึงแค่ต้นทุน แต่รวมถึงความซับซ้อนเชิงการรับรู้ด้วย
    • ไม่มีออบเจ็กต์คอนฟิกขนาดมหึมา, model factory, หรือโค้ด if-then-else สุดพันกัน
    • ไม่ใช่ "เฟรมเวิร์ก" LLM ที่คอนฟิกได้ทุกอย่างอย่างละเอียด
  • เป็นโค้ดเบสแบบหนึ่งเดียว สอดคล้องกัน มินิมัล อ่านง่าย แฮ็กได้ และ fork ได้ง่ายที่สุดเท่าที่ทำได้ ในฐานะ "เบสไลน์ที่ทรงพลัง"
    • ออกแบบมาให้รันได้ตั้งแต่ต้นจนจบเพื่อสร้าง ChatGPT clone ที่เป็นรูปธรรมพร้อมสมุดพกผลลัพธ์

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

 
GN⁺ 2025-10-14
ความคิดเห็นบน Hacker News
  • เป็นการแชร์ประสบการณ์ใช้งานเครื่องมือเขียนโค้ดด้วย AI ที่น่าสนใจ
    เคยถาม Karpathy เพราะสงสัยว่าเขาเขียนโค้ดเองมากแค่ไหน
    Karpathy: ขอบคุณสำหรับคำถาม และจริง ๆ แล้วผมเขียนโค้ดเกือบทั้งหมดด้วยตัวเอง (ใช้ tab autocomplete)
    เคยลองใช้เอเจนต์ claude/codex อยู่บ้าง แต่ความแม่นยำยังต่ำเลยไม่ค่อยช่วยเท่าไร
    น่าจะเป็นเพราะ repo ที่ผมสร้างมันห่างจาก data distribution มากเกินไป
    ลิงก์บทสนทนาต้นฉบับ

    • คำว่า “repo ห่างจาก data distribution มากเกินไป” อธิบายได้เลยว่าทำไมเวลาผมใช้โมเดล AI มันถึงไม่ค่อยช่วย
      งานที่ผมทำทั้งหมดมันเฉพาะทางเกินไปจนอยู่นอก distribution

    • ดีใจที่มีคนที่น่าเชื่อถืออย่าง Karpathy พูดแบบนั้น
      คนที่คิดว่า AGI จะมาในเร็ว ๆ นี้คงควรลดความคาดหวังลงหน่อย
      ผมเองก็ชอบ Claude Code
      มีบางช่วงที่ต้องเขียนโค้ดเว็บเป็นระยะ ๆ และฝั่งเว็บนี่ coverage ของข้อมูลฝึกดีมากจน Claude เป็นนักพัฒนาเว็บที่เก่งกว่าผมมาก
      แต่ถ้าต้องลงลึกไปที่แกนอัลกอริทึมของเครื่องมือ automation ที่ผมทำ Claude จะมีข้อมูลให้ใช้น้อยกว่าและพลาดมากขึ้น
      ถึงอย่างนั้นโดยรวมก็ยังเป็นบวก เลยยอมจ่ายเพื่อใช้อย่างเต็มใจ
      ต่อให้จบแค่เป็นผู้ช่วยพัฒนาเว็บก็ถือว่าช่วยมากแล้ว

    • ผมว่ามันเป็นปรากฏการณ์ที่ธรรมชาติมากกว่า
      นี่คือสถานการณ์ที่กำลังเขียนโค้ดแบบใหม่และสร้างสรรค์จริง ๆ
      หลายคนวิจารณ์คำตอบของ Karpathy แต่ในทางกลับกัน แค่เขาลองใช้ claude/codex ก็เป็นหลักฐานแล้วว่าในอดีตเครื่องมือเหล่านี้เคยช่วยได้จริง

    • ลิงก์มิเรอร์อีกอันของทวีต Karpathy อยู่ที่นี่

  • น่าสนใจที่ nanochat ได้แรงบันดาลใจจาก modded-nanoGPT
    ลำดับสายคือ nano-GPT ของ Karpathy → modded-nanoGPT ของ Keller Jordan (เวอร์ชันที่ฝึกโมเดลได้เร็ว) → NanoChat
    จุดเด่นของ modded-nanoGPT คือฝึก GPT ขนาดเล็กได้เร็วมาก
    โดยเฉพาะการใช้ Muon optimizer (ผู้เขียนพัฒนาเอง) กับ linear layer แทน AdamW
    modded-nanoGPT, แนะนำ Muon optimizer

    • Muon เป็น optimizer ที่ Keller Jordan สร้างขึ้นสำหรับการแข่งขันฝึกโมเดลแบบเร็วนี้ และยังมีการปรับปรุงเพิ่มเติมจากคนอื่น ๆ
      ในเวลาไม่ถึงปี มันก็ถูกใช้อย่างแพร่หลายในฐานะ SOTA สำหรับการฝึกโมเดลแล้ว

    • ค่อนข้างช็อกที่รัน inference node เดียวด้วย 8xH100
      สงสัยว่า frontier LLM ที่ใช้งานจริงก็รันประมาณนี้หรือเปล่า หรือใช้ VRAM/พลังประมวลผลมากกว่านี้อีก
      ถ้าคิดเป็นประมาณ $8 ต่อชั่วโมง และสมมติว่าคำขอหนึ่งใช้เวลา 5 วินาที ก็จะรองรับได้ราว 700 คำขอ
      เท่ากับประมาณ 1 เซ็นต์ต่อคำขอ
      อยากรู้ว่าผมคำนวณพลาดตรงไหนไหม

  • ตอนนี้ก็ยังฝึกอยู่จริง ๆ (เริ่มเมื่อ 20 นาทีที่แล้ว)
    เปิด log การทดลองให้ดู
    อีก 4 ชั่วโมงเมื่อโมเดลเสร็จแล้ว จะเปิดให้ทุกคนลองทดสอบ inference ได้

    • อัปโหลดโมเดลที่เสร็จแล้วไปไว้บน Hugging Face
      ผลลัพธ์ยังไม่ดีเท่า Karpathy (ดวงเรื่อง seed ไม่ดีหรือเปล่า?)
      แต่ก็สนุกดีที่จะลองเล่น
      ตัวอย่างเช่น ถามว่า “สุนัขมีกี่ขา?”
      ผู้ช่วยตอบว่า “เป็นคำถามที่น่าสนใจมาก และเป็นประเด็นที่ถกเถียงกันในหมู่คนรักสุนัขมาหลายศตวรรษ ไม่มี ‘คำตอบที่ถูกต้อง’ เพียงหนึ่งเดียว (...)”

    • ในคอมเมนต์ข้างกราฟแรก
      “ตัวชี้วัดหลักของความคืบหน้า Bits per byte ตามที่ Karpathy บอกไว้ว่า ‘เป็นตัวชี้วัดที่ดีกว่า cross-entropy loss ทั่วไปมาก เพราะมัน normalize loss ด้วยจำนวนไบต์ของแต่ละโทเค็น ทำให้เปรียบเทียบกันได้โดยไม่ขึ้นกับ tokenizer’”
      เป็นคำอธิบายที่ชัดมากจนผมรู้สึกเขินที่ตอนทดลอง tokenizer ของตัวเองกับ tinystories ไม่ได้นึกถึงเรื่องนี้
      อยากกลับไปวิเคราะห์ใหม่ว่า tokenizer ของผมจริง ๆ แล้วดีแค่ไหน

    • ถ้ามี 'howto' สั้น ๆ เรื่องวิธีรัน repo นี้พร้อมฝึกผ่าน W&B ก็คงดีมาก
      สงสัยว่าจะช่วยแชร์เป็นขั้นตอนสำหรับโปรแกรมเมอร์ที่ไม่เคยทำ workflow การฝึกโมเดลมาก่อนได้ไหม

  • สนุกดี!
    ตัวสร้าง Shakespeare ของ Karpathy เป็นโปรเจ็กต์แรกที่ผมลองเล่นหลังจาก ollama
    จุดประสงค์คืออยากเข้าใจหลักการทำงานของ LLM
    ตั้งแต่สัปดาห์ก่อนผมหมกมุ่นกับ LLM และกำลังสร้างระบบฝึก/อนุมานจากศูนย์ที่มีสองแบ็กเอนด์

    • CPU (ใช้ JAX)
    • GPU (ใช้ wgpu-py)
      ผมไม่ชอบ rocm/pytorch เพราะมันยุ่งยาก
      Vulkan ดีมาก llama-cpp ก็ใช้แบบนั้น
      สัปดาห์ก่อนผมทำให้ทั้งแบ็กเอนด์ CPU/GPU ใช้งานได้ และโฟกัสแก้บั๊กในแบ็กเอนด์ GPU
      รีแฟกเตอร์โค้ด WGSL และเพิ่มประสิทธิภาพมัน
      ในกระบวนการนี้ผมใช้ LLM หนักมาก และมันเป็นจุดเปลี่ยนครั้งใหญ่แบบน่าทึ่ง
      ถ้าใช้พรอมป์ต์สำหรับรีแฟกเตอร์ มันช่วยไล่แก้ข้อผิดพลาดทีละขั้นจนสุดท้ายได้โค้ดที่เช็ก type ผ่านด้วย astral ty
    • ไม่ชอบ pytorch เหรอ?
      ไม่น่าจะมีตัวเลือกที่ไม่มีประสิทธิภาพไปกว่านี้แล้วนะ
  • สุดสัปดาห์นี้ลองใช้ nanoGPT(ลิงก์)
    เป็นโปรเจ็กต์ค่อนข้างเก่าแล้ว แต่ก็เป็นการทดลองที่ยอดเยี่ยมในการสร้างและฝึก Shakespeare GPT ขนาดเล็กด้วยตัวเอง
    ผมรันบน CPU ด้วยพารามิเตอร์ราว 0.8M
    ผลลัพธ์ออกมา ‘ไม่ค่อยดี’ ตามที่คาดไว้
    แต่ก็ยังให้ความรู้สึกเหมือนเวทมนตร์
    สำหรับคนที่ไม่ได้เรียนสาย deep learning โดยตรง แต่ชอบลองของและชอบแฮ็กอะไรเล่น นี่คือจุดเริ่มต้นที่ยอดเยี่ยมที่สุด
    เสียดายที่ยังเขียนบล็อกเล่าประสบการณ์ nanoGPT สุดสัปดาห์นี้ไม่เสร็จ... ถ้าเสร็จแล้วคงเอามาแปะไว้ที่นี่

    • เป็นการทดลองที่มีประโยชน์ เพราะงานวิจัย ML ที่ดีสามารถพิสูจน์ได้ในสเกลเล็ก
      ตัวอย่างใหม่นี้ยิ่งก้าวหน้าไปอีก เพราะครอบคลุมทั้ง instruction following, tool use SFT, และ RLVR
      ทำให้ได้ baseline ที่ใช้งานได้จริงมากขึ้น

    • ถ้าปรับแต่งโค้ด Shakespeare นิดหน่อยแล้วเอาไปฝึกกับข้อมูลอื่น ก็ใช้สร้างเด็ค Magic The Gathering commander ได้ค่อนข้างดี

  • “ได้รับคำแนะนำจาก chief LLM whisperer Alec Radford”
    ถ้ามีพอดแคสต์ของ Alec กับ Andrej ออกมาจริง โลกคงสะเทือนแน่
    จากยุครุ่งเรืองของ GPT1 มาถึงตอนนี้ที่สร้าง GPT3 ได้ใน 4 ชั่วโมง

    • ได้โปรดมีพอดแคสต์เถอะ คงสมบูรณ์แบบมาก
  • Eureka Labs: ลิงก์ Github
    Andrej เป็นคนที่สร้างผลงานได้มากอย่างน่าทึ่งจริง ๆ
    แค่ได้ตามงานของเขาก็เป็นประสบการณ์ที่ยอดเยี่ยมแล้ว

  • ผมคิดมาตลอดว่าวิธีสร้างคุณูปการสูงสุดต่อมนุษยชาติ
    คือผลคูณของการช่วยคนได้มากแค่ไหนและลึกแค่ไหน
    งานโอเพนซอร์สที่ Karpathy ทำเป็นแนวทางที่มี leverage สูงมากในความหมายนี้
    โลกทุกวันนี้ก็ถูกสร้างขึ้นบนโปรเจ็กต์โอเพนซอร์ส
    เพราะใคร ๆ ทั่วโลกก็เรียนเขียนโค้ดและสร้างซอฟต์แวร์ได้ฟรี
    หวังว่าวงการ AI/LLM จะเดินตามทิศทางเชิงบวกแบบนี้ด้วย

    • ผมชอบธรรมเนียมการให้ฟรี/การแบ่งปันแบบนี้ในโลกซอฟต์แวร์มาก
      แต่สำหรับ LLM ดูเหมือนจะรักษากระแสนี้ไว้ได้ยาก เพราะต้นทุนการฝึกสูงมากและต้องใช้ฮาร์ดแวร์แรง ๆ
      ต่อไปการพัฒนาซอฟต์แวร์ก็คงกลายเป็นการจ่าย ‘ค่าเช่า’ ให้โฮสต์ LLM เพื่อจะตามให้ทัน
      อาจมีวิธีทำให้สภาพแวดล้อม inference แบบ on-prem (local) กลับมาเข้าถึงได้สำหรับทุกคนอีกครั้ง
      แต่ตอนนี้ด้วยต้นทุนการฝึกที่สูง มันยังดูไม่ชัดเจน
      และยิ่งพึ่งพา LLM มากขึ้นเท่าไร
      ผมก็ยิ่งกังวลว่าเนื้อหาแบบ ‘ทำมือ’ อย่างบทสอนสำหรับผู้เริ่มต้นเขียนโปรแกรมจะยิ่งลดลง

    • (ยาวไปนิด แต่ทั้งหมดมาจากความหวังให้โลกดีขึ้นจริง ๆ)
      มุมมองนี้ต่างจากอารมณ์ ‘ต่อต้าน AI’ กระแสหลักอยู่พอสมควร
      แนวคิดเรื่องทรัพย์สินทางปัญญาเป็นโครงสร้างที่เน้นการสะสมการครอบครองข้อมูลไว้กับคนบางกลุ่ม แล้วปล่อยเช่าให้มนุษยชาติ มากกว่าจะเป็นการมีส่วนร่วมโดยตรงต่อมนุษยชาติ
      แต่ในขณะเดียวกันก็จำเป็นอย่างยิ่งที่ผู้สร้างสรรค์แต่ละคนจะต้องสามารถเลี้ยงชีพได้
      ไม่ใช่แค่สิ่งที่ Karpathy ทำเท่านั้น ผมคิดว่าครีเอเตอร์บน YouTube อีกหลายพันคนก็มีส่วนช่วยสังคมอย่างมากในสาขาของตัวเอง
      เพียงแต่การที่หลายคนต้องพึ่งพาสปอนเซอร์ก็ทำให้รู้สึกขมขื่นนิดหน่อย
      Patreon ก็มี แต่ก็ยังไม่ใช่คำตอบที่สมบูรณ์แบบ
      ผมเห็นด้วยว่าความพยายามทั้งหมดนี้เป็นรูปแบบของการมีส่วนร่วมต่อสังคมอย่างยิ่ง
      ไม่นานมานี้ Jon Stewart ใน Daily Show พูดว่าการฝึก AI คือการ strip mining ความรู้ของมนุษยชาติ
      บางครั้งการฝึก AI ถูกมองแบบเหมารวมว่าเป็นการขโมย แต่จริง ๆ แล้วมีมุมมองที่หลากหลายมาก
      กระแสนี้อาจลงเอยด้วยการตอกย้ำโครงสร้างการถือครองความรู้แบบ超ทุนนิยม
      จนความเป็นเจ้าของไอเดียยิ่งกระจุกตัวอยู่กับคนส่วนน้อย
      ปรากฏการณ์นี้ไม่ได้ช่วยโลกโดยรวมมากนัก แต่กลับเอื้อประโยชน์ให้บางกลุ่ม
      แม้แต่การซื้อขายทรัพย์สินทางปัญญาเอง สุดท้ายเมื่อเวลาผ่านไปก็มักจะยิ่งกระจุกตัวมากขึ้น
      ผมคิดว่าเราจำเป็นต้องมีการถกเถียงและการตีความใหม่ที่เหมาะกับสังคมสมัยใหม่จริง ๆ
      น่าเสียดายที่ความพ่ายแพ้ล่วงหน้าแบบ ‘คนข้างบนคงห้ามอยู่ดี ถกไปก็ไม่มีประโยชน์’ มักขัดขวางการถกเถียง
      การเปิดพื้นที่ถกกันอย่างเสรีว่าควรทำอย่างไรถึงจะได้ทางออกที่ดีกว่าเป็นเรื่องสำคัญ

    • ผมมักแนะนำซีรีส์วิดีโอ ANN/LLM from scratch ของเขา
      เนื้อหาสอนชัดมาก และสไตล์การเขียนโค้ดก็เป็น Pythonic กระชับแต่ยังอ่านง่าย
      (ส่วนการ vectorize ใน pytorch ซับซ้อนอยู่แล้ว อันนั้นเป็นเรื่องยากโดยตัวมันเอง)
      แค่ดูวิดีโอก็ได้เรียนรู้สไตล์ไปพร้อมกัน ซึ่งช่วยคนได้มากจริง ๆ

  • ผมสงสัยว่าจะฝึกโมเดลด้วยหนังสือจิตวิทยา เอกสาร รายงาน และงานวิจัยทั้งหมดที่ผมมีอยู่จริง
    แล้วใช้ 1xH100 node(ลิงก์) สำหรับทำ inference เวลาอยากถามคำถามเฉพาะทางได้ไหม

    • ทำได้จริง แต่ประสิทธิภาพจะแย่มาก
      ในกรณีแบบนี้ เอาโมเดลเล็กที่ pretrain มาแล้วมาทำ fine-tune กับข้อมูลของตัวเอง
      หรือใช้ workflow แบบ RAG (Retrieval Augmented Generation) หรือผสมทั้งสองแบบ จะดีกว่ามาก

    • ทำได้
      แต่การใช้โมเดลแบบทั่วไป แล้วเอาเอกสารของคุณเข้าไปใน working context ด้วยวิธีต่าง ๆ (เช่น RAG, hierarchical memories ของ Apple เป็นต้น ลิงก์บทความ) อาจให้ผลลัพธ์ที่ดีกว่า

    • ทำได้ แต่เพราะ dataset ของคุณเล็กมาก ประสิทธิภาพจะด้อยกว่าการใช้โมเดลที่ pretrain มาแล้ว+fine-tune หรือโมเดลเล็ก+RAG มาก

    • ไม่ได้

  • โปรเจ็กต์นี้กระตุ้นแรงบันดาลใจมาก!
    ถ้ารู้ตัวอย่างประสิทธิภาพจากพรอมป์ต์จริงหรือผลทดสอบก็คงดี

    • ที่ Simon.incutio.com
      มีการชี้ว่าที่นี่มีภาพหน้าจอของพรอมป์ต์จริง