rust-ml / wg

Coordination repository of the Machine Learning (applicant) Working Group
18 stars 0 forks source link

Consider migrating Zulip chat over to Discord #7

Open quietlychris opened 1 year ago

quietlychris commented 1 year ago

@bytesnake @YuhanLiin @ZuseZ4 Over the past few months, I've been keeping an eye on the Rust-ML Zulip chat at https://rust-ml.zulipchat.com, and have noticed that there's very little activity. This has generally been true since we started that server up back in (2019? 2020?) There's periodically been some activity if a few people were working on the same thing at the same time, but generally speaking, we occasionally get an introduction, a few people "wave", and then nothing really happens.

I believe that part of this is that, at least at the moment, Zulip's web client doesn't seem to allow for checking multiple servers in the same tab; if you're logged in, you're talking specifically in that server. In addition, while Zulip's threaded discussions allow for very targeted topics, the Rust-ML group doesn't generally have enough going on that we necessarily need a new stream for each topic to keep everyone updated; standard channels like the ones in Discord could also work just as well, with one linfa channel, potentially one dfdx channel, one transformers channel, etc. Part of our original decision for using Zulip was both that the Rust Project had a Zulip, plus it's open source (unlike Discord), which seemed complimentary. That said, I think there's an argument to be made for practicality for platform choice between using a more prevalent, likely easier platform (Discord) over a more difficult, but open source one (Zulip).

In addition, since much of my work is fairly interdisciplinary, I often find myself with a Discord tab (or I guess if you have it, the app) open while browsing the Discord channels in other Rust-focused open source communities such as the Bevy game engine, the dfdx crate, AeroRust community, etc., even outside of more personal ones that people might have. There's a bit of a natural flow, where if I log in to check or ask something in one community, I'll often do a bit of a browse through the other servers I've joined as well. This means that, even in passing, I suspect that a Rust-ML Discord group would get much more traffic and have more engagement than the Zulip chat does, which in turn could drive more interest/contributors into projects.

I guess my proposal is this: create a Rust-ML Discord channel, make an announcement about it/change community docs to mention both it and the Zulip chat, then do an evaluation period of a few months to see if there's a difference in traction between the two. If there's a significant change, we then consider deprecating the Zulip chat. I haven't had much experience administrating a Discord server, but I'm happy to take on that role and have a couple people I can reach out to for advice on how to make that easier. Thoughts?

vadixidav commented 1 year ago

I will throw in my two cents as well. Until recently I haven't been too active in Rust CV, but I was still able to address questions and such in the Rust CV channel and keep tabs on what was going on. I personally have my Discord client open at all times on my phone and when not doing my day job on my desktop. For me, Discord is much more accessible. It might make it easier for me to send people over to Rust ML that end up on the Rust CV discord looking for native rust machine learning algorithms for computer vision. I am also now starting to look at performing the refactor on space to use GAT for cross usage with linfa and our projects, and it would make collaboration easier in that regard.

Overall, I still think GitHub is the most accessible and coherent place to put core discussion for visibility and architectural decisions, but Discord is fine for communication.

bytesnake commented 1 year ago

Hi @quietlychris, phew the rust-ml Zulip seems almost inactive right now. Reasons may be that doing machine learning is a hard problem, bootstrapping an ecosystem for machine learning even harder. I'm not on board with the conclusion that switching the messaging client to Discord will automatically engage people more, that happens with personal interactions, regular events etc.

Using Discord would be a downgrade for me, because of three reasons: (1) I have Zulip always open for the rust-lang community, (2) I find the discord UI hard to navigate and distracting (3) I do have a Discord account, but use it only on occasion for gaming; I prefer to separate "work" and "hobby" to reduce mental load and would need to manage them in one instance. I'm using the rust-scicomp (and of course rust-lang) organizations more often recently and will likely continue doing that. Also because I think that the foundational methods required for a solid machine learning ecosystem belongs more to scientific computation than machine learning per se.

That said, I'm open for moving to Discord (I have no real experience in managing communities and cannot make much conclusions about how to keep the ball running) but would prefer to use Discord over mail for communication

bytesnake commented 1 year ago

Asked an LLM how to engage people for a machine learning community

Answer (In what ways can we engage an online community for a complex topic like machine learning?) - Welcome and Onboarding: Create a warm and welcoming environment by sending personalized welcome messages to new members. Provide them with resources, guidelines, and an introduction to the community's purpose and goals. Encourage existing members to reach out and offer assistance to newcomers. - Discussion Channels: Set up dedicated discussion channels within Zulip for different subtopics or areas of interest within Machine Learning. This helps to organize conversations and allows members to engage with topics they are most interested in. Encourage members to ask questions, share insights, and participate actively in discussions. - Knowledge Sharing: Encourage community members to share their knowledge and experiences related to Machine Learning. This can be done through blog posts, tutorials, code snippets, or even short video presentations. Highlight and promote valuable contributions to recognize and appreciate community members' efforts. - Regular Events: Organize regular events such as webinars, Q&A sessions, or virtual meetups on Zulip. Invite experts or community leaders to share their expertise and insights. These events provide opportunities for members to interact, ask questions, and learn from each other in real-time. - Gamification: Introduce gamification elements to make the learning process more engaging. This can include challenges, quizzes, or competitions related to Machine Learning concepts. Offer rewards, badges, or points for active participation and contributions to incentivize engagement. - Mentorship Programs: Establish a mentorship program where experienced community members can volunteer to mentor those who are new to Machine Learning. This fosters a sense of community support and encourages collaboration and learning. - Celebrate Achievements: Acknowledge and celebrate the achievements of community members. This can include recognizing individuals who have made significant contributions, sharing success stories, or highlighting projects that members have completed. This not only motivates the achievers but also inspires others to actively participate. - Community Guidelines and Moderation: Clearly define community guidelines and rules of conduct to ensure a respectful and inclusive environment. Assign moderators who can enforce these guidelines and address any conflicts or issues that may arise. Encourage members to report inappropriate behavior or spam to maintain a positive atmosphere. - Feedback and Suggestions: Regularly seek feedback from the community members about their experience, suggestions for improvement, and topics they would like to explore. Actively listen to their feedback and implement changes accordingly. This demonstrates that the community values their input and is responsive to their needs. - Social Connections: Encourage members to connect with each other outside of the community platform. This can be through social media groups, offline meetups, or specialized interest groups. Building social connections among members fosters a sense of belonging and strengthens the community bonds.
bytesnake commented 1 year ago

I also think doing an in-person retreat would be great, so that people can get to know each other. Not sure about funding and location though

ZuseZ4 commented 1 year ago

First of all I agree that the zulip is pretty dead, I don't see a high chance to revive it anytime soon. I use Slack, Zulip, Github and Discord for my projects, so I don't have any issues with moving from one of these platforms to another. That being said, I do feel like Slack is a bit less used for Rust, so we might want to avoid that. When it comes to use either Github, Zulip, or Discord, I do think that discord is probably the best platform to attract the largest crowd. The unofficial rust discord is super large and while the rust-ml-math channel there isn't that active, we do have burn/dfdx/faer discord servers which do have quite a user base. I also feel that discord has a lower entrance barrier. Since old messages usually get lost and aren't that easy to find as compared to zulip, people are less worried about just saying hi, asking beginner questions, etc. At least that is my impression. For technical discussions Enzyme has an autodiff stream in the rust-lang zulip and we have various github repos, where we also could have some discussions. So having a less technical alternative seems like a good addition.

quietlychris commented 1 year ago

I'm certainly not advocating for using Discord as an alternative for Github, or for larger, more in-depth discussions. Those (such as the one we're having right now) happen on Github or when we have meetings (the minutes for which then get posted on Github). This discussion is really just limited to the sort of "ephemeral chat" category of potential clients, which Zulip, Discord, Element, Slack, etc. all fall into the bucket of. I basically differentiate these as "is it important that is information can be referenced in the future/indexed for search?" If "yes", it probably doesn't belong in those mediums.

I also don't wish to make it seem like I view a switch to Discord as a panacea for community engagement; in-person meet-ups (or even re-starting having remote ones more often), project spotlights, social media presence (side note for another thread: we should maybe think about getting a Mastodon account, since I've seen a lot of Rust-related folks switch to that ecosystem as well instead of the Twitter account we've been using) are all drivers of connections across an ecosystem as well and are just as important, if not more important, than the chat medium.

There have been some valid points made regarding potential downsides to this switch, but it sounds like it would potentially benefit a few folks (myself included) and others are somewhat ambivalent. As such, I think I'll probably give this a few days to percolate, and barring any serious objections, create a Rust-ML Discord server as complement to, but not replacement of the Zulip chat, and work on adding secondary chat links to some of our docs alongside the existing Zulip link (i.e. on the Linfa README, the front page of AreWeLearningYet, etc.). That chat will, at least to start, have some channels for top-level machine learning-related projects like linfa, arewelearningyet, ndarray, and maybe dfdx if Corey's okay with that. And then we'll see how it goes ¯_ (ツ)_/¯

quietlychris commented 6 months ago

@bytesnake @ZuseZ4 @vadixidav Many months after I said that I would do this, I finally got around to creating a basic server on Discord (https://discord.gg/c5yQWcZTng). If you're interested in hopping on and seeing if there's anything that I've missed that should be on there (it's just adding a logo and setting up some channels, right?), please feel free!