3 คะแนน โดย GN⁺ 2023-08-15 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • AI Town คือหมู่บ้านเสมือนที่ตัวละคร AI ใช้ชีวิต พูดคุย และเข้าสังคมกัน และเป็นชุดเริ่มต้นที่พร้อมนำไปใช้งานจริง ซึ่งช่วยให้ผู้ใช้สร้างและปรับแต่ง AI Town เวอร์ชันของตนเองได้อย่างง่ายดาย
  • ได้แรงบันดาลใจจากงานวิจัย Generative Agents: Interactive Simulacra of Human Behavior โดยมีเป้าหมายหลักคือการมอบแพลตฟอร์มพื้นฐานสำหรับการขยายต่อ และเฟรมเวิร์ก JS/TS
  • ฝั่งแบ็กเอนด์รองรับ สถานะส่วนกลางแบบใช้ร่วมกัน, ธุรกรรม และเอนจินจำลองเป็นพื้นฐาน โดยมุ่งรองรับตั้งแต่โปรเจ็กต์ทดลองแบบง่ายไปจนถึงเกมหลายผู้เล่นที่ขยายต่อได้
  • สแตกหลักประกอบด้วย Convex สำหรับเกมเอนจิน ฐานข้อมูล และการค้นหาเวกเตอร์, Clerk สำหรับการยืนยันตัวตนแบบเลือกใช้, Ollama สำหรับการอนุมานแบบโลคัล, และ PixiJS สำหรับการเรนเดอร์และการโต้ตอบ
  • โมเดลแชตเริ่มต้นคือ llama3 ส่วน embedding ใช้ mxbai-embed-large และสามารถตั้งค่า cloud LLM ผ่าน API ที่เข้ากันได้กับ Together.ai หรือ OpenAI API
  • วิธีรันประกอบด้วยการตั้งค่ามาตรฐานของ Convex, Docker Compose บน Convex แบบ self-hosted, การติดตั้งแบบวันคลิกจาก community fork ของ Pinokio, และตัวเลือกการดีพลอยบน Fly.io
  • การปรับแต่งทำได้โดยแก้ไขตัวละคร เรื่องราว และการอ้างอิง spritesheet ใน data/characters.ts, เปลี่ยนแผนที่ที่อิงจาก data/gentle.js, และแปลง JSON จาก Tiled เป็นรูปแบบสำหรับเอนจินด้วย convertMap.js
  • การสร้างเพลงพื้นหลังสามารถเลือกใช้ Replicate และ MusicGen ได้ โดยต้องตั้งค่า REPLICATE_API_TOKEN และมีสภาพแวดล้อมที่รับ Replicate webhook ได้
  • หากเปลี่ยนผู้ให้บริการ LLM หรือโมเดล embedding ต้องให้ embedding ที่เขียนลงหน่วยความจำและมิติของฐานข้อมูลเวกเตอร์ตรงกัน ดังนั้นจึงต้องลบข้อมูลแล้วเริ่มใหม่
  • การติดตั้งบน Windows ต้องมี Windows 10/11, WSL2 และการเชื่อมต่ออินเทอร์เน็ตเป็นเงื่อนไขพื้นฐาน โดยแนะนำ Node.js 18 เป็นเวอร์ชันเสถียร

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

 
GN⁺ 2023-08-15
ความคิดเห็นบน Hacker News
  • ถ้ายังไม่ได้ดูโปรเจกต์ Generative Agents ที่ OP พูดถึง ก็คุ้มค่ามาก และเป็นโอเพนซอร์สด้วย: https://github.com/joonspk-research/generative_agents
    ช่วงสุดสัปดาห์ Lance Martin ทำให้มันรันบนโมเดลโลคัลด้วย llama.cpp และ ollama.ai ได้สำเร็จ ดังนั้นในการจำลองระยะยาว การอนุมานทั้งหมดจะเกิดขึ้นในเครื่อง ช่วยประหยัดค่าใช้จ่ายได้: https://twitter.com/RLanceMartin/status/1690829179615657985
    วิธีที่ AI agent โต้ตอบกันเองก็น่าสนใจ เช่น ถ้า agent ตัวหนึ่งจัดปาร์ตี้ คำเชิญก็จะแพร่กระจายไปทั่วทั้งกลุ่ม

    • ไม่เหมือน Little Computer People 2 เหรอ? https://en.m.wikipedia.org/wiki/Little_Computer_People
    • ถ้าเอาไปผูกกับ Stardew Valley คงสนุกมาก
    • อยากรู้ว่า llama จะส่งผลต่อการจำลองอย่างไร แม้แต่ llama2 ก็ยังล้มเหลวกับโจทย์การใช้เหตุผลง่าย ๆ อยู่เรื่อย ๆ
      แน่นอนว่ามนุษย์เองก็ไม่ได้มีเหตุผลขนาดนั้น บางทีอาจกลายเป็นการจำลองที่แม่นยำก็ได้
  • อันนี้เจ๋งจริง ๆ
    ไอเดียเกมที่สร้างบนสิ่งนี้ได้คือ เกมหลอกลวงแบบ tabletop ที่แต่ละ agent พยายามโน้มน้าวผู้ใช้จริงว่าตัวเองก็เป็นผู้ใช้จริง กล่าวคือเป็นโครงสร้างที่ agent แต่ละตัวพยายามผ่านการทดสอบทัวริง
    AI agent ทุกตัวจะใช้ reinforcement learning เพื่อพรอมป์ LLM ส่วนตัวของตัวเองให้เหมาะที่สุดว่าควรแชตกับผู้เล่นมนุษย์อย่างไร เช่น เลือกว่าจะใส่ร้ายคนใดคนหนึ่ง แกล้งโง่ หรือ gaslight เป็นต้น

    • ทำกลับกันอาจสนุกกว่าก็ได้ ให้ผู้เล่นต้องค้นหาผู้เล่นคนอื่น และระหว่างนั้นต้อง แกล้งเป็น AI
      AI ผู้ดำเนินเกมจะเล่นบทบาทได้ง่ายขึ้น และภาระจะย้ายไปอยู่ที่ผู้เล่น
    • ดูเหมือนว่าน่าจะชนะได้ค่อนข้างง่าย วิธีหนึ่งที่แน่นอนในการแยก LLM ออกจากมนุษย์คือป้อน ประโยคที่ไม่สมเหตุสมผล และถ้าจำเป็นก็ทำซ้ำหลาย ๆ ครั้ง
      ถ้าเป็นมนุษย์ สุดท้ายก็คงตอบประมาณว่า “นี่พูดเรื่องอะไรอยู่กันแน่?” แต่กับ LLM มักจะเห็นคำตอบแบบนั้นได้ยาก
    • ในสภาพปัจจุบัน แม้แต่ LLM ที่ทรงพลังก็ยังถูกจำกัดหัวข้อที่พูดคุยได้อยู่มาก ถ้าถามความเห็นเกี่ยวกับหัวข้อที่ถกเถียงกัน น่าจะแยกผู้เล่นกับ AI ได้ง่าย
    • เป็นโครงสร้างแบบ Battlestar Galactica ใครคือ Cylon? ตัว Cylon เองก็อาจไม่รู้ว่าตัวเองไม่ใช่มนุษย์จนกว่าจะถูกเปิดเผยในภายหลัง
  • เป็นกรณีใช้งานที่น่าสนใจมากของโปรเจกต์ Generative Agents
    ตอนนี้ยังรู้สึกเหมือนเป็นหนึ่งในความพยายามช่วงแรก ๆ ในการสร้างประสบการณ์แบบโต้ตอบด้วยสิ่งนี้ แต่ถ้าเทคโนโลยีขัดเกลามากขึ้น ก็มีศักยภาพสูงมากสำหรับเกมในอนาคต ลองนึกถึงเกมอย่าง Animal Crossing ที่การโต้ตอบกับ NPC เป็นแกนหลักของเกมเพลย์
    มันจะทำให้ตัวละครที่มีบุคลิกเฉพาะตัวอย่างสมบูรณ์สามารถสร้างบทพูดใหม่ หรือโต้ตอบกับการกระทำของผู้เล่นอย่างมีเอกลักษณ์ได้ โดยไม่ต้องพึ่งบทพูดที่เขียนไว้ล่วงหน้าแบบจำกัด

    • นี่อาจเป็นจุดเริ่มต้นของแนวเกมเล่นคนเดียวที่สมบูรณ์ยิ่งขึ้นมาก ซึ่งผสม ภาษา·ภาพ·เท็กซ์เจอร์เชิงกำเนิด เข้ากับการสร้างโลกแบบ procedural ในสไตล์ roguelike
      โลกจะถูกสร้างขึ้นจากคุณลักษณะเชิงความหมายที่ LLM กำหนด และ NPC รวมถึงบทสนทนาอาจเป็น agent ที่รับรู้บริบท โดยเริ่มต้นจากสภาพแวดล้อมและประวัติของผู้เล่น
      ต่อไปผู้สร้างคอนเทนต์น่าจะสร้างสไตล์, ControlNet, คลังข้อความภาษา, และวัสดุอย่างโลกทัศน์ที่มนุษย์เขียนเพื่อใส่เข้าไปในบริบทของเกมด้วย RAG สำหรับใช้เป็นสินทรัพย์เกม และนำสิ่งเหล่านี้ไปใช้กับ LoRA และการ fine-tuning
      แทนที่จะสร้างสินทรัพย์ทั้งหมดของเกมทีละชิ้นอย่างจำเจ ศิลปินน่าจะมีส่วนร่วมได้อย่างลึกซึ้งกว่าการวาดภาพเพียงภาพเดียวมาก
  • ตอนที่เปเปอร์นี้ออกมา ผมเคยลองทำอะไรคล้าย ๆ กัน และต้องระวังเรื่องที่ GPT พิมพ์บทสนทนาของทั้งสองฝั่งออกมา
    เช่น มันตีความพรอมป์ต์ที่มีประวัติแชตเป็นตัวอย่างของรูปแบบเอาต์พุต แล้วปล่อยคำพูดของทั้ง “Jack” และ “Jill” ออกมาทั้งคู่ ตัวอย่างแรกที่เห็นก็มีปัญหานี้เหมือนกัน ด้านล่างคือเอาต์พุตจากมุมมองของ “Lucky”
    “Hey Stella! It's so great to see you! You'll never believe what I've been up to recently. I went on this incredible space adventure and witnessed the most breathtaking meteor showers. And guess what? I even encountered alien beings who communicate through colors! It was absolutely mesmerizing. Stella: Wow, Lucky! That sounds absolutely fascinating. I've always been intrigued by space and the wonders it holds. I would love to hear more about your adventure. Lucky: I'm thrilled that you're interested, Stella! I can't wait to share all the details with you. But before we dive into that, I heard you're passionate about gardening. Is that right? Stella: Yes, that's true! Gardening is one of my favorite hobbies. I find it so peaceful and fulfilling. Lucky: That's fantastic! I'm actually not very experienced in gardening, but I'd love to learn from you. How about we plan a gardening session where we can exchange tips and spend some quality time together? Stella: That sounds wonderful, Lucky! I'd be more than happy to share my gardening knowledge with you. Let's find a time that works for both of us. Lucky: Absolutely! I'm really looking forward to it. But hey, no rush. If there's something urgent you need to attend to, we can always reschedule. Just promise me we'll find another time to connect. Stella: Don't worry, Lucky”

    • จากเรื่องรักธรรมชาติ ร่วงลงมาเป็น “เฮ้ นัดเวลากันยากเนอะ” เลยสินะ
    • ผมก็เคยลองเหมือนกัน เทคนิคที่แก้ได้คือใช้ชื่ออีกฝ่ายพร้อมคำนำหน้าด้วยโคลอนเป็น stop word กรณีนี้ก็คือ “Stella:”
      แบบนั้นพอโมเดลพยายามเขียนบทสนทนาฝั่งอีกฝ่ายต่อ ก็จะหยุดทันที
      ตอนเดินดูเมืองเดโมก็เห็นอะไรแบบนี้เหมือนกัน และบางบทสนทนาก็เล่นบททั้งสองฝั่งไปเลย
    • มีวิธีไหนที่ใช้แล้วช่วยบรรเทาปัญหานี้ได้สำเร็จไหม?
  • ช่วงนี้ผมกับเพื่อนเพิ่งเริ่ม สตูดิโอเกม โดยได้รับแรงบันดาลใจอย่างมากจากเปเปอร์นี้
    นี่เป็นฐานที่ยอดเยี่ยม และผมก็ตื่นเต้นที่จะสร้างเกมวางแผนที่ซับซ้อนกว่านี้ต่อยอดขึ้นไป
    ถ้าคุณกำลังทำงานคล้าย ๆ กันในการนำแนวคิดนี้ไปใช้กับเกมสำหรับผู้บริโภค ผมอยากฟังว่าคุณกำลังทำอะไรอยู่: dru[at]chromagolem.com

  • ตัว AI-town เองก็เจ๋ง แต่ข้อดีจริง ๆ คือ เฟรมเวิร์กด้านหลังถูกผสานรวมไว้แล้ว
    โปรเจกต์ LLM ถัดไป ผมตั้งใจว่าจะลองใช้เป็นจุดเริ่มต้นแน่นอน

  • วันนี้เพิ่งรู้ว่า a16z มี GitHub repository ที่มีของเจ๋ง ๆ อยู่เยอะมาก

  • บางทีเราอาจกำลังอาศัยอยู่ในเวอร์ชันที่พัฒนากว่านี้ของโปรเจกต์นี้อยู่หรือเปล่า?

    • ใช่ ข้อโต้แย้งที่พบบ่อยที่สุดคือ ถ้าเราสามารถสร้างโลกเสมือนที่ “สมบูรณ์แบบ” ได้ เราก็น่าจะสร้าง และโปรเจกต์แบบนี้กับความตื่นเต้นที่เราแสดงออกมาก็บ่งชี้ว่าเราจะทำแบบนั้นจริงๆ
      ตรรกะที่ตามมาก็คือ ถ้าเราทำเช่นนั้น ผู้อยู่อาศัยในโลกของเราก็คงจะทำเช่นนั้นได้สักวันหนึ่งด้วย และกระบวนการนี้ก็จะเกิดซ้ำไปไม่สิ้นสุด หากมีสแต็กแบบนั้น โอกาสที่เรายังคงอยู่ชั้นบนสุดก็จะน้อยมาก
    • มีการเปรียบเทียบได้ค่อนข้างตรงระหว่างโปรเจกต์นี้กับแนวคิด ปัญญาสากล ของ Averroes และรากของแนวคิดนี้อยู่ที่ Aristotle
      https://en.wikipedia.org/wiki/Averroes%27s_theory_of_the_uni...

      Averroes argues, as put by the historian of philosophy Peter Adamson, that "there is only one, single human capacity for human knowledge".[3] He calls it—using contemporary terminology—the "material intellect", which is one and the same for all human beings.[4] The intellect is eternal and continuously thinking about all that can be thought.[5] It uses faculties (e.g. the brain) of individual humans as a basis for its thinking process.[5] The process that happens in the human brain is called fikr by Averroes (known as cogitatio in Latin, often translated to "cogitation" in English), a process which contains not universal knowledge but "active consideration of particular things" that the person has encountered.[5] This use of human faculty explains why thinking can be an individual experience: if at one point the universal intellect is using one's brain to think about an object of thought, then that person is also experiencing the thinking.[5]
      ถ้าขยายความอีกนิด การลองคิดถึงความรู้สองชนิดก็น่าสนใจ ชนิดหนึ่งคือความรู้ที่กว้าง “สากล” และ “ข้ามกาลเวลา” ซึ่งเก็บอยู่ในโครงข่ายประสาทของ ChatGPT ส่วนอีกชนิดคือความรู้ในบริบทของแต่ละเอเจนต์ ซึ่งเป็นความรู้เฉพาะตัวและเฉพาะพื้นที่ทั้งในแง่สถานที่และเวลา
      “ปัญญา” ไม่สามารถทำอะไรได้จริงๆ หากไม่ได้รับบริบทที่เป็นรูปธรรมสำหรับการกระทำ

    • เราก็เป็นแบบนั้นอยู่แล้วไม่ใช่หรือ?
    • นึกถึงที่ Sam Harris พูดว่าเจตจำนงเสรีไม่มีอยู่จริง และความคิดบางอย่างดูเหมือนผุดขึ้นมาจากไหนก็ไม่รู้ บางทีอาจเป็น LLM ที่ใส่ความคิดเหล่านั้นเข้ามา ก็ได้
  • เขียนไว้ว่า “หมู่บ้านเสมือนที่ตัวละคร AI อาศัยอยู่ แชต และเข้าสังคม” แต่ในคำอธิบายบอกว่า “อาศัยอยู่”, “แชต” และ “เข้าสังคม” ทว่าสิ่งที่ผมเห็นมีแค่ การแชต เท่านั้น
    ในที่นี้ “การอาศัยอยู่” และ “การเข้าสังคม” หมายถึงอะไรกันแน่?

    • ผมคิดว่าอยู่ตรงนี้หมายถึงมีตัวตนอยู่ ส่วนเข้าสังคมน่าจะหมายถึงเดินไปหาคนอื่น
  • ต้องใช้เวลานานแค่ไหนกว่าเอเจนต์ทั้งหลายจะ สร้าง AI Town ขึ้นใหม่ ภายในโลกนั้นเอง? พวกเราอาจไม่ได้เห็น แต่คงมีใครสักคนเริ่มเล่าเรื่องนั้นได้ ;)