4 คะแนน โดย GN⁺ 2025-03-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แสดงตัวอย่างการใช้ โมเดลพื้นฐาน เชื่อมต่อกับยูทิลิตี UNIX ทั้งแบบเดิมและแบบใหม่ผ่านไปป์ในสภาพแวดล้อมแบบ UNIX-like เพื่อทำงานอัตโนมัติด้านดนตรี วิดีโอ รายการงาน และการจัดการไฟล์ภาพ
  • คอลเลกชันเพลงถูกจัดวางใน ปริภูมิ embedding 512 มิติ ด้วย CLAP และใช้ llm-clap กับ llm-interpolate หาเส้นทางระหว่างเพลงเริ่มต้นกับเพลงสุดท้าย แล้วสร้างเพลย์ลิสต์ .m3u
  • โน้ตจากวิดีโอสามารถสร้างได้ด้วย ไปป์ไลน์ 2 บรรทัด ที่ดาวน์โหลดซับไตเติลด้วย yt-dlp สรุปด้วย llm แล้วส่งต่อไปยัง zk new -i
  • รายงานงานใช้การส่งออกงานที่เสร็จใน 7 วันที่ผ่านมาจาก taskwarrior เป็น JSON แล้วใช้ jq ดึงเฉพาะ .description เพื่อให้ LLM สร้างรายงาน
  • การเปลี่ยนชื่อไฟล์ภาพใช้การผสาน find, xargs, ollama, moondream, tr, sed เพื่อสร้าง ชื่อไฟล์ที่ดูสมเหตุสมผล จากเนื้อหาของภาพ

การผสาน UNIX pipe กับโมเดลพื้นฐาน

  • โมเดลพื้นฐาน คือโมเดลที่ฝึกด้วยชุดข้อมูลขนาดใหญ่มากและหลากหลาย จึงสามารถนำไปใช้กับงานปลายน้ำหลายแบบได้ทันทีหรือปรับจูนเพิ่มได้
  • งานเป้าหมายมุ่งเน้นไปที่เวิร์กโฟลว์ที่ใช้โมเดลซึ่งสามารถสร้างและทำความเข้าใจข้อความกับภาพได้
  • แนวทางนี้แบ่งเป็นสองขั้นตอน
    • ใช้ทั้งยูทิลิตี UNIX แบบดั้งเดิมและยูทิลิตีใหม่ร่วมกันเพื่อเชื่อมส่วนต่าง ๆ ของไปป์ไลน์
    • นำโมเดลพื้นฐานมาใช้กับงานที่ยากจะจัดการด้วยวิธีที่นิยามชัดเจนเพียงอย่างเดียว และใช้ยูทิลิตีช่วยปรับผลลัพธ์จากโมเดลให้อยู่ในรูปแบบที่ใช้งานได้

ตัวอย่างไปป์ไลน์

  • การสร้างเพลย์ลิสต์

    • โมเดลทำความเข้าใจดนตรีจะแปลงเพลงแต่ละเพลงเป็นจุดในปริภูมิ แล้วทำ interpolation ระหว่างจุดต่าง ๆ เพื่อสร้างเพลย์ลิสต์ที่เชื่อมต่อกันอย่างลื่นไหลโดยอัตโนมัติ
    • โมเดลอย่าง CLAP จะฝังคอลเลกชันเพลง $MC ลงใน ปริภูมิ 512 มิติ โดยเพลงที่คล้ายกันจะอยู่ใกล้กันมากกว่า
    • ใช้ปลั๊กอิน llm, llm-clap และ llm-interpolate
    • ตัวอย่างคำสั่งคือ llm embed-multi -m clap songs --files $MC '*' เพื่อสร้าง embedding และ llm interpolate songs "PacifyHer.wav" "redrum.wav" -n 3 | jq .[] > playlist.m3u เพื่อสร้างเพลย์ลิสต์ .m3u จำนวน 3 เพลง
  • การเขียนโน้ตจากวิดีโอ

    • วิดีโอบรรยายและวิดีโอสอนมีประโยชน์มาก แต่การดูไปพร้อมกับจัดระเบียบโน้ตไปด้วยนั้นค่อนข้างยุ่งยาก
    • ใช้ yt-dlp ดาวน์โหลดซับไตเติลของวิดีโอ สรุปด้วย llm -s "Create notes" แล้วใช้ zk new -i ของ zk เพื่อสร้างโน้ตใหม่
    • ไปป์ไลน์ตัวอย่างคือรัน yt-dlp --no-download --write-subs --output "$OUT" "$URL" แล้วตามด้วย cat "$OUT" | llm -s "Create notes" | zk new -i
  • การสร้างรายงานงาน

    • การรายงานในที่ประชุมรายเดือน รายสัปดาห์ และรายวัน ต้องหาสมดุลระหว่างระดับการสรุปนามธรรมที่เพื่อนร่วมทีมเข้าใจได้ กับความเฉพาะเจาะจงที่เพียงพอสำหรับรับฟีดแบ็กที่มีความหมาย
    • สามารถดึงข้อมูลจากเครื่องมือรายการงานดิจิทัลอย่าง taskwarrior แล้วส่งผลลัพธ์ให้ LLM สร้างรายงานได้
    • ไปป์ไลน์ตัวอย่างคือส่งออกงานที่เสร็จสิ้นในช่วง 7 วันที่ผ่านมาเป็น JSON จากนั้นใช้ jq ดึง .description แล้วส่งต่อไปยัง llm -s 'Generate a report based on these tasks.'
  • การเปลี่ยนชื่อไฟล์ภาพถ่าย

    • ไฟล์ภาพที่ดาวน์โหลดจากอินเทอร์เน็ตหรือถ่ายเองอาจมีชื่อที่กำกวมหรือแทบไม่มีประโยชน์ เช่น 1672714705640839.png, 1689964585834142.png, 2.jpg
    • ollama เป็นเครื่องมือสำหรับดึงโมเดลและทำ inference และเมื่อใช้ร่วมกับโมเดลวิชัน moondream ก็สามารถ inference ได้รวดเร็วบนโน้ตบุ๊กรุ่นใหม่
    • ไปป์ไลน์ตัวอย่างจะค้นหาไฟล์ .jpg ในไดเรกทอรีปัจจุบัน แล้วใช้ ollama run moondream "Title for this: {}" เพื่อรับชื่อเรื่องจากภาพ ก่อนจัดรูปแบบชื่อไฟล์ด้วย tr และ sed
    • ตัวอย่างผลลัพธ์คือ A green dragon with wings and a tail.jpg, A painting of a serene landscape.jpg, urns of stone red car in foreground.jpg

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

 
GN⁺ 2025-03-31
ความคิดเห็นบน Hacker News
  • ถ้าต้องการข้ามไปที่สารบัญโดยตรง ดูได้ที่ https://pagedout.institute/download/PagedOut_006.pdf#page=3

  • ตัวอย่าง “How to use a Python variable in an external Javascript (Django)” มีความเป็นไปได้สูงว่าจะเสี่ยงต่อ การโจมตี XSS เมื่อค่าตัวแปรมีอินพุตจากผู้ใช้
    สิ่งสำคัญคือต้องทำ output encoding ให้ถูกต้องตามบริบท Django จะเข้ารหัสตัวแปรในเทมเพลตเป็นบริบท HTML โดยค่าเริ่มต้น ดังนั้นถ้านำไปแสดงในแท็ก script หรือในไฟล์ JavaScript ก็อาจทำให้เกิด XSS ได้

    • ดูจากเอกสารของ Django แล้ว คำพูดนี้น่าจะถูก โดยเฉพาะ สตริง ดูเหมือนจะเป็นประเด็นสำคัญ
      auto-escape ค่าเริ่มต้นจะเปลี่ยน ' และ " เป็น HTML entity แต่ไม่เข้ารหัสแบ็กสแลช ดังนั้น \ ที่ท้ายสตริงอาจ escape เครื่องหมายคำพูดปิดได้ ถ้าผู้โจมตีควบคุมสตริง “ชนิด” เดียวกันได้สองตัวติดกัน ก็จะนำไปใช้โจมตีได้
      ถ้าจะทำให้ถูก วิธีนี้น่าจะใช่: https://docs.djangoproject.com/en/5.1/ref/templates/builtins...
    • น่าอายที่พอนึกออกแล้วว่าการโจมตีทำได้อย่างไร แต่โชคดีที่ถ้าใส่ template filter escapejs ก็แก้ช่องโหว่นี้ได้
  • ชอบมากจริง ๆ ให้ความรู้สึกเหมือน ezine/webzine สมัยก่อน
    แต่ก็สงสัยว่าผู้ใช้คอมพิวเตอร์ที่สายตาไม่ค่อยดีจะอ่านอย่างสบายได้อย่างไร ถ้าจะตามเนื้อหาต้องเลื่อนขึ้นลงตลอด และถ้าดูทั้งหน้า ก็ต้องหรี่ตาเพื่ออ่านตัวหนังสือ

    • เห็นด้วย และหนึ่งในข้อจำกัดที่น่าเสียดายของรูปแบบนี้คือการต้องเลื่อน PDF ไปเรื่อย ๆ สุดท้ายแล้วการตัดสินใจช่วงแรก ๆ ก็เหมือนขังเราไว้ในรูปแบบนี้ ซึ่งผมก็มีส่วนรับผิดชอบด้วย
      PDF ทำให้เรามอบอิสระเต็มที่ด้านการจัดวางหน้าให้ผู้เขียนได้ และนั่นทำให้เกิดผลงานที่สร้างสรรค์มากอย่างฉบับนี้ แต่ PDF ขนาด A4 อ่านบนมือถือ หน้าจอคอมพิวเตอร์ และแท็บเล็ตได้ไม่ดี และยิ่งยากสำหรับผู้ใช้ screen reader การทำให้ PDF ในรูปแบบที่เราได้รับมาเข้ากันได้กับ screen reader อย่างน้อยก็ซับซ้อนมาก จึงยังไม่สามารถรองรับได้
      ในทางกลับกัน ทุกวันนี้ทุกคนมี PDF reader งานเขียนแสดงผลเหมือนกันทุกที่ และแทบจะพิมพ์ออกมาได้ทันที สุดท้ายก็เป็นเรื่องของข้อดีข้อเสีย ดูเหมือนจะไม่มีวิธีง่าย ๆ ในการแก้ปัญหานี้โดยไม่ทำลายเหตุผลที่ทำให้ผู้คนรัก Paged Out!
      สิ่งที่อยากปรับปรุงคือเพิ่ม การเข้าถึงของฉบับพิมพ์ และสักวันหนึ่งใส่ การรองรับ screen reader ให้ถูกต้อง นอกเหนือจากนั้น ปัญหาการเลื่อนหน้าคงจะยังเป็นส่วนหนึ่งของ zine ต่อไป
      นอกจากนี้ ถ้าทำให้มี “การอ่านออกเสียง” บทความได้ก็คงดี ตั้งแต่แรกเราใส่ข้อกำหนดไว้ในไลเซนส์ของผู้เขียนส่วนใหญ่แล้วว่าให้ยินยอมต่อการบันทึกเสียงบทความได้ เหมาะกับคนที่ชอบเสพเนื้อหาแบบ audiobook หรือ podcast และถ้ายอมแลกกับการฟังคำบรรยายแทนการดูภาพประกอบ ก็หลีกเลี่ยงการเลื่อนหน้าได้ด้วย
    • ถ้าไปทาง LaTeX ทั้งหมด ก็น่าจะทำให้ไปได้ทั้งสองทาง เหมือนที่ arxiv เพิ่งเรนเดอร์ LaTeX เป็น HTML5
    • ใช้จอแนวตั้งก็ได้
  • รูปลักษณ์ดีมากจริง ๆ ให้บรรยากาศแบบ Crash magazine ยุค 1980

  • เป็นนิตยสารที่ยอดเยี่ยม แต่ก็มีข้อจำกัดอยู่เหมือนกัน เพราะ ข้อจำกัดหนึ่งหน้า ทำให้แต่ละบทความกลายเป็นเพียง anchor ขั้นต่ำของหัวข้อ บางครั้งก็เกือบเหมือนโฆษณาตัวผู้เขียน จึงไม่ได้สื่อสารเนื้อหาออกมามากนัก
    ในแง่เนื้อหา ผมคิดว่า PoC || GTFO และ Phrack ดีกว่า ความผันผวนของการจัดหน้าก็เป็นข้อเสียสำหรับผมและทำให้อ่านแล้วล้า แต่ละหน้าดูเหมือนเป็นโลกที่แยกกันโดยสิ้นเชิงทางภาพ จนรู้สึกหนัก
    เข้าใจว่า LaTeX เป็นมิตรน้อยกว่าและอาจกีดกันผู้เขียนบางคน แต่ไม่มีทางเอาข้อดีของทั้งสองแบบมารวมกันได้หรือ? สงสัยว่าเคยพิจารณา Overleaf ที่โฮสต์ในเครื่องเองบ้างไหม

    • ข้อจำกัด 1 หน้า และเลย์เอาต์แบบปรับแต่งเองของ Paged Out! เป็นการเลือกโดยตั้งใจ แน่นอนว่ามันมีข้อเสียอย่างที่ชี้มา
      แต่สิ่งพิมพ์ที่ไม่มีข้อจำกัดหน้าและมีเลย์เอาต์เข้มงวดก็มีข้อเสียเช่นกัน จากมุมมองของผมที่ทำงานเป็น reviewer/editor และผู้เขียนให้กับนิตยสารเทคนิคหลายฉบับในช่วง 15 ปีที่ผ่านมา
      ในนิตยสารทั่วไป ผู้เขียนจะรู้สึกกดดันว่าต้องเขียนบทความยาวที่ครอบคลุมทุกอย่าง และไม่รู้สึกสบายใจที่จะส่งโน้ตทริกสั้น ๆ น่ารัก ๆ Paged Out! มีไว้สำหรับช่องว่างหนึ่งหน้าที่โน้ตสั้น ๆ แบบนั้นสามารถอยู่ได้
      รูปแบบนี้จำกัดไหม? ใช่ เขียนทุกอย่างในรูปแบบนี้ได้ไหม? เป็นไปไม่ได้ แต่ก็ไม่เป็นไร
      เราไม่ได้พยายามจะเป็น PoC || GTFO หรือ Phrack ทั้งสองยอดเยี่ยมและโดยส่วนตัวผมก็ชอบมาก แต่เราเจอพื้นที่ของเราเองในฐานะ งานเขียนสั้น แล้ว ในชุมชน zine ก็มีความรักต่อกันมาก เช่น ดู DNS TXT record ของ pagedout.phrack.org และ phrack.pagedout.institute ได้
      เรื่องความสับสนของเลย์เอาต์ ผมก็เข้าใจว่าหมายถึงอะไร ขณะเดียวกัน นั่นก็เป็นอีกช่องว่างหนึ่งที่ผมตั้งใจวาง PO! ไว้ บางครั้งผมพูดเล่นว่ามันเป็นการเยียวยาจากช่วงที่ต้องยัดไอเดียของตัวเองลงในเลย์เอาต์ที่สำนักพิมพ์ต้องการอย่างเป๊ะ ๆ หรือหลังจากรีวิวบทความที่ยาวเกินไปของนิตยสารอื่นมากเกินไป
      ยอมรับว่าสิ่งที่ชี้มานั้นถูกต้อง แต่ขณะเดียวกันผมก็ค่อนข้างพอใจกับช่องว่างเล็ก ๆ ที่มีข้อบกพร่องนี้
      ลิงก์ที่เกี่ยวข้องสองลิงก์: https://pagedout.institute/?page=faq.php#why-one-page
      & https://pagedout.institute/?page=faq.php#layout
  • ได้รับเชิญให้ร่วมเขียน แต่ตอนนั้นไม่มีเวลาเตรียมอะไรเลย ถึงอย่างนั้นผลงานออกมาดูเท่มากจริง ๆ ครั้งหน้าคงต้องลองหาหัวข้อดี ๆ ดู

  • ชอบมากจริง ๆ โดยเฉพาะ “Spotting Quacks with Puzzles”
    วิธีเข้าถึงเรื่อง media literacy แปลกใหม่มาก และยิ่งเหมาะกับจังหวะเวลาสุด ๆ หลังจากมีอัปเดตการสร้างภาพของ 4o ตัวใหม่ออกมา

    • ผมเป็นคนเขียนบทความนั้นเอง หวังว่าจะเป็นโอกาสให้เหล่านักแก้ปัญหาเชิงสร้างสรรค์ของ PO!/HN ได้คิดถึงความยากของ การสอน media literacy
  • สงสัยว่าสามารถสั่งเป็น นิตยสารพิมพ์ส่งทางไปรษณีย์ ได้ไหม หรือมีแค่วิธีดาวน์โหลดแล้วพิมพ์เองที่บ้าน? อยากได้รับนิตยสารแบบนี้ทางไปรษณีย์

    • ตอนนี้ยังทำไม่ได้ แต่กำลังทำให้พร้อมผ่าน บริการพิมพ์ดิจิทัล อย่าง lulu.com
      ยังไม่มีกำหนดการแน่นอน แต่กำลังผลักดันให้ทำได้ก่อนฉบับถัดไป ซึ่งวางแผนไว้คร่าว ๆ ช่วงมิถุนายนถึงกรกฎาคม
  • พออ่านมาถึงส่วน USB foot switch ก็จ้องมานานเกินไปจนต้องหยุดแล้ว เป็น zine เล็ก ๆ ที่ยอดเยี่ยม และตั้งใจว่าจะกลับมาดูฉบับนี้กับฉบับก่อน ๆ เพิ่มเติมทีหลัง

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

    • ภาษีเล็กน้อยที่คนรัสเซียจ่ายจากงานนี้นั้นน้อยมากเมื่อเทียบกับเงินที่รัสเซียได้จากการขายน้ำมันให้ยุโรป ถ้าอย่างนั้นควร บอยคอตทั้งยุโรป ด้วยไหม?
    • อยากให้ไม่เลือกปฏิบัติต่อผู้คนเพราะสิ่งที่รัฐบาลของพวกเขาทำ
      คนที่รอบคอบและมีสติปัญญาสมควรถูกรวมอยู่ด้วย ไม่ว่าพวกเขาจะอาศัยอยู่ใต้ระบอบแบบใดก็ตาม