3 điểm bởi GN⁺ 2023-08-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • AI Town là một ngôi làng ảo nơi các nhân vật AI sinh sống, trò chuyện và giao lưu; đồng thời là một starter kit có thể triển khai, giúp người dùng dễ dàng tạo và tùy biến phiên bản AI Town của riêng mình
  • Dự án được lấy cảm hứng từ bài báo Generative Agents: Interactive Simulacra of Human Behavior, với mục tiêu chính là cung cấp nền tảng cơ sở để mở rộng và framework JS/TS
  • Backend hỗ trợ sẵn trạng thái toàn cục dùng chung, transaction và simulation engine, hướng tới cả các dự án thử nghiệm đơn giản lẫn game nhiều người chơi có khả năng mở rộng
  • Stack chính gồm Convex cho game engine, cơ sở dữ liệu và tìm kiếm vector; Clerk cho xác thực tùy chọn; Ollama cho suy luận cục bộ; và PixiJS cho render và tương tác
  • Mô hình chat mặc định là llama3, embedding là mxbai-embed-large, và có thể cấu hình LLM trên cloud thông qua API tương thích với Together.ai hoặc OpenAI API
  • Các cách chạy bao gồm cấu hình chuẩn của Convex, Docker Compose dựa trên Convex self-hosted, cài đặt một cú nhấp qua community fork của Pinokio, và tùy chọn triển khai trên Fly.io
  • Việc tùy biến theo quy trình sửa tham chiếu nhân vật, câu chuyện và spritesheet trong data/characters.ts, thay bản đồ dựa trên data/gentle.js, rồi chuyển JSON từ Tiled sang định dạng dành cho engine bằng convertMap.js
  • Việc tạo nhạc nền có thể dùng tùy chọn ReplicateMusicGen, đồng thời cần cấu hình REPLICATE_API_TOKEN và một môi trường có thể nhận webhook từ Replicate
  • Nếu thay đổi nhà cung cấp LLM hoặc mô hình embedding, cần bảo đảm embedding được ghi vào bộ nhớ khớp với số chiều của cơ sở dữ liệu vector, vì vậy phải xóa dữ liệu và khởi động lại
  • Cài đặt trên Windows yêu cầu Windows 10/11, WSL2 và kết nối Internet; Node.js 18 được khuyến nghị là phiên bản ổn định

1 bình luận

 
GN⁺ 2023-08-15
Ý kiến trên Hacker News
  • Nếu bạn chưa xem dự án Generative Agents mà OP nhắc tới thì rất đáng xem, và nó là mã nguồn mở: https://github.com/joonspk-research/generative_agents
    Cuối tuần rồi, Lance Martin đã chạy thành công nó trên mô hình cục bộ bằng llama.cpp và ollama.ai, nên trong các mô phỏng dài, toàn bộ suy luận có thể diễn ra cục bộ để tiết kiệm chi phí: https://twitter.com/RLanceMartin/status/1690829179615657985
    Cách các tác tử AI tương tác với nhau cũng rất thú vị; chẳng hạn khi một tác tử tổ chức tiệc, lời mời sẽ lan ra toàn bộ nhóm

    • Không giống Little Computer People 2 sao? https://en.m.wikipedia.org/wiki/Little_Computer_People
    • Gắn cái này vào Stardew Valley chắc sẽ cực kỳ thú vị
    • Tôi tò mò llama sẽ ảnh hưởng thế nào đến mô phỏng. llama2 cũng thường xuyên thất bại ở các bài suy luận đơn giản
      Tất nhiên con người cũng không hợp lý đến vậy, nên biết đâu lại thành mô phỏng chính xác hơn
  • Cái này thật sự rất ngầu
    Một ý tưởng game có thể xây trên nền tảng này là trò chơi đánh lừa dạng tabletop, trong đó mỗi tác tử cố thuyết phục người dùng thật rằng bản thân cũng là người dùng thật. Nói cách khác, cấu trúc là mỗi tác tử cố vượt qua bài kiểm tra Turing
    Tất cả tác tử AI dùng học tăng cường để nhắc LLM cá nhân của mình theo cách tối ưu về việc nên chat với người chơi là con người như thế nào. Ví dụ như chọn có đổ tội cho một người cụ thể, giả vờ ngốc, hay gaslight hay không

    • Làm ngược lại có khi còn thú vị hơn. Người chơi phải tìm ra những người chơi khác, và trong quá trình đó phải giả vờ là AI
      Người dẫn trò AI sẽ dễ đảm nhiệm vai trò hơn, còn gánh nặng chuyển sang người chơi
    • Có vẻ khá dễ thắng. Một cách chắc chắn để phân biệt LLM với người là nhập một câu vô nghĩa, và lặp lại nhiều lần nếu cần
      Nếu là người, cuối cùng họ sẽ phản ứng kiểu “rốt cuộc bạn đang nói gì vậy?”, nhưng với LLM thì khó thấy câu trả lời như thế
    • Ở trạng thái hiện tại, ngay cả các LLM mạnh cũng bị giới hạn khá nhiều về chủ đề có thể nói. Nếu hỏi ý kiến về các chủ đề gây tranh cãi, có lẽ sẽ dễ phân biệt người chơi với AI
    • Cấu trúc giống Battlestar Galactica. Ai là Cylon? Bản thân Cylon cũng có thể không biết mình không phải con người cho đến khi điều đó được tiết lộ sau này
  • Đây là một trường hợp ứng dụng rất thú vị của dự án Generative Agents
    Hiện nó vẫn có cảm giác như một trong những nỗ lực ban đầu để tạo trải nghiệm tương tác bằng thứ này, nhưng khi công nghệ được trau chuốt hơn, tiềm năng cho game tương lai là rất lớn. Hãy nghĩ đến các game như Animal Crossing, nơi tương tác với NPC là trung tâm của lối chơi
    Thay vì dựa vào các câu thoại viết sẵn hạn chế, có thể để nhân vật với tính cách hoàn toàn độc đáo tạo lời thoại mới hoặc phản ứng theo cách riêng trước hành động của người chơi

    • Đây có thể là khởi đầu của một thể loại chơi đơn phong phú hơn nhiều, pha trộn ngôn ngữ, hình ảnh, texture tạo sinh với cách tạo thế giới theo thủ tục kiểu roguelike
      Thế giới có thể được tạo dựa trên các đặc tính ngữ nghĩa do LLM định nghĩa, còn NPC và hội thoại có thể trở thành các tác tử nhận biết ngữ cảnh, được khởi tạo bằng môi trường và lịch sử của người chơi
      Trong tương lai, người tạo nội dung có lẽ sẽ tạo ra phong cách, ControlNet, kho ngữ liệu ngôn ngữ, tư liệu đưa bối cảnh thế giới do con người viết vào ngữ cảnh game bằng RAG để dùng làm tài sản game, rồi tận dụng chúng cho LoRA và tinh chỉnh
      Thay vì đơn điệu tạo từng tài sản trong game một, các nghệ sĩ có vẻ sẽ có thể đóng góp theo cách phong phú hơn nhiều so với chỉ vẽ một bức tranh
  • Khi bài báo được công bố, tôi từng thử làm một thứ tương tự, và cần cẩn thận với trường hợp GPT xuất ra cả hai phía của cuộc hội thoại
    Ví dụ, nó diễn giải prompt có lịch sử chat như một ví dụ về định dạng đầu ra, rồi xuất luôn lời của cả “Jack” lẫn “Jill”. Mẫu đầu tiên tôi thấy cũng gặp vấn đề này. Dưới đây là đầu ra từ góc nhìn của “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”

    • Đang từ câu chuyện yêu thiên nhiên mà rơi xuống thành “này, khó xếp lịch nhỉ
    • Tôi cũng đã thử, và mẹo giải quyết là dùng tên đối phương kèm tiền tố dấu hai chấm làm từ dừng. Trong trường hợp này sẽ là “Stella:”
      Như vậy khi mô hình định tiếp tục cả phần hội thoại của phía bên kia thì nó dừng ngay
      Khi xem thử ngôi làng demo tôi cũng thấy chuyện này, và một số cuộc hội thoại đã đóng luôn cả hai vai
    • Có cách nào đã thành công trong việc giảm nhẹ vấn đề này không?
  • Gần đây tôi và một người bạn đã bắt đầu một studio game, lấy cảm hứng rất lớn từ bài báo này
    Đây là một nền tảng tuyệt vời, và tôi rất hào hứng với việc xây dựng một game chiến thuật phức tạp hơn trên đó
    Nếu bạn cũng đang làm việc để áp dụng khái niệm này vào game dành cho người tiêu dùng theo cách tương tự, tôi rất muốn nghe bạn đang làm gì: dru[at]chromagolem.com

  • Bản thân AI-town cũng rất hay, nhưng lợi ích thật sự nằm ở chỗ các framework phía sau đã được tích hợp sẵn
    Tôi chắc chắn sẽ dùng nó làm điểm khởi đầu cho dự án LLM tiếp theo

  • Hôm nay tôi mới biết a16z có một kho GitHub chứa rất nhiều thứ thú vị

  • Liệu có phải chúng ta đang sống trong một phiên bản phát triển hơn của dự án này không?

    • Đúng vậy. Lập luận phổ biến nhất là: nếu chúng ta có thể tạo ra một thế giới ảo “hoàn chỉnh” thì chúng ta sẽ làm, và những dự án như thế này cùng sự hào hứng mà chúng ta thể hiện cho thấy thực tế là chúng ta sẽ làm như vậy
      Logic tiếp theo là, nếu chúng ta làm thế thì cư dân trong thế giới của chúng ta một ngày nào đó cũng sẽ làm vậy, và quá trình ấy lặp lại vô hạn. Nếu tồn tại một ngăn xếp như vậy, xác suất chúng ta vẫn đang ở tầng trên cùng sẽ trở nên rất nhỏ
    • Có thể tạo một phép loại suy khá trực tiếp giữa dự án này và khái niệm trí tuệ phổ quát của Averroes, vốn có gốc rễ từ 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]
      Nói rộng hơn một chút, thật thú vị khi nghĩ về hai loại tri thức. Một là tri thức rộng, “phổ quát” và “vượt thời gian” được lưu trong mạng nơ-ron của ChatGPT; loại kia là tri thức trong ngữ cảnh của từng agent, mang tính cá biệt và cục bộ cả về địa điểm lẫn thời gian
      “Trí tuệ” thực ra không thể làm được gì nếu không được cung cấp một ngữ cảnh cụ thể để hành động

    • Chẳng phải chúng ta đã như vậy rồi sao?
    • Điều này làm tôi nhớ đến việc Sam Harris nói rằng ý chí tự do không tồn tại và một số ý nghĩ dường như nảy ra từ hư không. Có lẽ LLM đang tiêm những ý nghĩ đó vào thì đúng hơn
  • Bài viết nói “một ngôi làng ảo nơi các nhân vật AI sống, trò chuyện và giao tiếp xã hội”, nhưng trong phần mô tả thì nói “sống”, “trò chuyện” và “giao tiếp xã hội”, còn những gì tôi thấy chỉ là trò chuyện
    Vậy ở đây “sống” và “giao tiếp xã hội” chính xác nghĩa là gì?

    • Tôi nghĩ “sống” ở đây nghĩa là tồn tại, còn “giao tiếp xã hội” nghĩa là đi đến chỗ người khác
  • Sẽ mất bao lâu để các agent tái tạo AI Town bên trong thế giới đó? Chúng ta có thể sẽ không thấy được, nhưng chắc ai đó có thể bắt đầu câu chuyện ấy ;)