• 112 Posts
  • 4.56K Comments
Joined 3 years ago
cake
Cake day: August 4th, 2023

help-circle

  • I don’t think OP is asking for what you’re saying they’re asking for.

    There are vegans who gatekeep and exclude people who eat plants/fruits/vegetables fertalized with animal manure. Richard Stallman approved of using proprietary operating systems to build Free Software in some cases. There’s probably no end to how deep you can go down such purity rabbitholes. And the same is true of AI.

    In the vegan example, most people don’t think of not eating manure-fertilized plant products as a requirement for being a vegan. Similarly, I don’t think anyone expects “no AI was used in the making of this product” to mean they built it on an operating system that forbids generative AI. (Particularly because, as you rightly say, it’s nigh infeasible to escape generative AI entirely.

    That said, a website like Itch.io that explicitly forbids projects that include AI-generated code, story, assets, etc, (not as in was built completely without the influence of generative AI, but just the game/project/whatever itself includes no AI-generated stuff), will consider strong-enough evidence of a violation of that policy a bannable offense, and offers a way to report offenders would almost definitely meet virtually everyone’s (including OP’s I’d wager) definition of “AI-free”. And that would accomplish probably 99% as much benefit (over sites that indiscriminately allow slop) as the purest possible approach without the drawback of a 99% smaller catalog. I don’t think a rule that earlier versions of a game must not have contained AI-generated content either, really.

    Yes some slop would slip through. Some people are bad actors. And I’d think generative-AI boosters are more liable to try to scam people for profit than the average person. But also, most scams are fairly low effort. And I expect that if a site like what I’m describing existed, the majority of dishonest submissions would be pretty transparent. Even those that actually managed to get listed would get removed fairly quickly.

    Every broker has rules. (Including Lemmy.) And every sufficiently complex ecosystem has parasites. And so every broker has rule-breakers. Ebay and Amazon and Steam and Itch.io etc etc etc exist despite the difficulty in enforcing whatever particular rules they might have. Yes rule violations things slip through and affect customers on all of the above platforms and every other platform. Doesn’t mean there’s no point in having rules at all.





  • Hoo boy. Got a report on this one. “Misinformation”.

    Sounds like the basic claim of the video is:

    • Nafisa Fai gave a speech in front of an inverted American flag.
    • Right-wingers flipped a shit.
    • Nafisa Fai put out a deepfake image showing a not-inverted flag.
    • Journalists (Oregon Journalism Project and Axios) published a piece “debunking” the claim that Nafisa Fai gave a speech in front of an inverted flag, citing the deepfake as proof.
    • Said journalists subsequently retracted their story.
    • Nafisa Fai removed the deepfake from pages she owned.

    The above all seems to be true as far as my research has found. While the video creator’s political bent and underlying agenda very much doesn’t match mine, neither do I want inconvenient facts about liberal candidates buried.

    Beyond that, the video states:

    • That the journalists knew the image was a deepfake before publishing their supposed “debunking” article.
    • That Nafisa Fai’s platform includes (unjustly) funneling “infinite” (being hyperbolic, of course) taxpayer money to Somalis on wellfare.

    The first of these two bullets is unsubstantiated, and so I’d say the term “misinformation” fits. The second is hardly a statement to be taken seriously. It’s more aimed at stoking anger than any objective statement of facts. But more concerningly, the second point and the way the video makes the point is straight up, unfiltered anti-Somali bigotry. I don’t think we want this community being a platform for such bigotry.

    The first bulleted list above being basically correct makes me not want to delete this post. The amount of misinformation probably isn’t enough to warrant action. But the bigotry, I’ve decided, warrants removal of this post. I don’t think it warrants banning the OP, however.

    I realize that probably this comment won’t be visible anywhere once I remove the post, but I still wanted to spell out my whole reasoning.


  • Well, I don’t like it. Lol.

    Adding something like monads to Go as some first-order kind of thing really feels to me like it would be a big bag on the side. (I mean, I feel like all the functional stuff in Java like lambdas and streams and stuff is a bag on the side in the same way. Java fanboys back in the day touted Java’s proceduralness as a strength. Now I have to wonder whether those fanboys have left Java for other languages and the Java fanboys we have now are a new crop of lambda-positive Java fanboys or whether the old Java fanboys changed their tunes and decided functional programming was a good thing for Java after all.) It’d make Go kindof not Go any more, making it “just another language that adds features willy-nilly”.

    Plus, changing the standard library to use monads instead of multiple return values for errors would be a huge backwards-incompatible thing. Not to say backwards-incompatible changes shouldn’t be made. (I have great respect for Python’s 3.0 rework, for instance. And I think Java is extremely overdue for something similar.) But I don’t see adding monads as a benefit at all, let alone worth the effort of migrating.

    I’m sure part of the reason why most of the previous proposals haven’t been accepted is because it would create tons of interactions with existing Go functionality and/or confusing edge cases, each of which would have to be considered.

    I just googled (DuckDuckGo’d, actually) and ran across this proposal. I’m not sure I hate… something roughly like it (yet). But it’s not as if it doesn’t have any costs.

    My thoughts on it:

    • I will say I strongly oppose creating variables with magically-decided names (for which I’m pretty sure there’s no precedent in Go), so I’d want the “Declaring the err variable” version mentioned in the proposal that would require the variable name to be explicit: count := strconv.Atoi(input) ? err { return err } (rather than count := strconv.Atoi(input) ? { return err }.) (I’d probably be ok with omitting that variable name after the ? rather than requiring an underscore if that value wasn’t used in the body of the block… if I convince myself I’m ok with even the basic premise, that is.)
    • I also don’t think there’s any precedent for any syntactical elements requiring a variable to be “of interface type that implements the built-in error type”, so I’d rather the ? construct assign the positionally-last return value to the more locally-scoped variable (whose name is after the ?) than requiring that variable to be of any particular type.
    • One open question would be “would count be visible within that block”? Usually a variable is not defined until after the statement that declares it, but this new block would be… part of the statement that declares it, which makes it kindof weird for that variable to be visible inside the block. I concede it would be useful to be visible inside the block, but it still makes scoping confusing, which isn’t an insignificant cost. Of course, if count, err := strconv.Atoi(input); err != nil {...} also declares a variable that’s visible within the block is part of the statement, but that feels different to me because in that case the variable is only visible inside the block and not outside as well.
    • If hypothetically I did convince myself I was ok with a proposal like this, I might want use of the ? expanded to other situations. Like func bob() (int, error) { ... } ; func(i int) { ... }(bob()?) to silently suppress the error that bob returns. But one major cost of that would be that there’s no rule that “if you return an error, the other return values must be the zero value of the associated type”. It’s a common convention, but not so common as to be inviolable. If, say, a library did return something specific rather than the zero value when returning an error, it would probably have to devote a lot of extra documentation to that situation because that’s a pretty confusing corner case. (Like, maybe a function returns a coefficient to be multiplied by something, but does a return 1, fmt.Errorf("...") if something fails because you’re more likely to want a 1 in an error condition where you’re multiplying that value by something than a 0. (Or maybe that case would be better with a 0.))
    • I don’t think I’d ever use such a construct with a block on one line. I’d probably make it look more like the following, which honestly makes it harder to see the benefit relative to the existing if err := bob(); err != nil { ... } convention:
    count := strconv.Atoi(input) ? err {
      return err
    }
    

    Honestly, the more I think about it just while writing out my thoughts above, the more I think it isn’t worth it. There is one poposal for error handling that I can say I “like” without reservations, though. (And it seems the core Go team is, roughly, planning to take that route.)

    If I had to pick a biggest frustration with how Go is, it would probably be nil. I kindof wish it didn’t have that or anything like it. Not to say I’ve thought it through. There may be really good reasons why nil has to exist. But maybe it would be fine for the zero value of a function to be a function that does nothing but panic. And the zero value of a map to be an empty map. And the zero value of a pointer to be a pointer to a zero value of the pointed-to type. Etc. I don’t think it’s worth changing that at this point, though. I’d rather just use Go as it is than have Go embark on such a drastic change.


  • Honestly, I kinda like if err != nil {. It forces me to think more carefully about how I want errors handled than something like throw does.

    I don’t feel like I have experience with that many different languages. Maybe there’s another language that does it in a way I’d like better. But I prefer Go’s model over the way, say, Java, JavaScript, or Python does things.



  • I’m starting to suspect the way I asked my question wasn’t clear and you (and BaroqueInMind) aren’t answering the question I meant to ask. Were you thinking my question involved LLM-generated code? I intended for my hypothetical to involve only wholely-human-authored code written with knowledge originally gained from LLM output.

    (If you could read my first edit on my response to BaroqueInMind in this thread, I hope that’ll clear up what I was trying to ask.)

    (Also, I hate calling anything gotten from an LLM “knowledge” because implies LLMs are reliable sources of accurate information. I could simply call it “information”, but that makes it sound like I’m talking about copying output from the LLM into the contribution itself when I actually mean information ingested into the human’s brain and considered in the process of authoring code themselves with their own human brain. Please excuse the lack of better ways to language it.)

    If you are saying that in order to qualify for inclusion on noailist.org a project must forbid the use of knowledge gained from generative AIs, I of course want to know that as well, but yeah. I just want to make sure we’re not talking past each other.


  • The last part where you mentioned Google AI suggestion is still literally using AI.

    Well, yeah, but I’m trying to get a better understanding of where the line is exactly. Not risking using knowledge you don’t specifically remember where you learned for fear it might have been from an LLM? Not using LLMs for the duration of the process of constructing your contribution? Does it require changing your search engine from Google to something without an AI overview, or is just scrolling past the AI overview without reading it enough? Do the project core maintainers need to go research the background of the contributor for signs that they may use AI for contributions to projects not related to yours, or is it enough to review the contribution to your project and ask the contributor to promise there was no AI used? If a contributor finds a bug or vulnerability using LLMs, confirms the issue themself without using generative AI, and files a ticket without using generative AI, am I allowed to fix the bug, or must I reject that contribution because the information contained therein would not (yet) have been found had LLMs not been used? Can I use dependencies with LLM-generated code in them? Can I use dependencies which do not have LLM-generated code but which have their own dependencies with LLM-generated code in them? What about dependencies that don’t have any explicit policy on LLM-generated code that I don’t know that they contain any LLM-generated code? Can I accept code contributions authored in a text editor with a generous generative-AI-generated code policy (but with no features for users to integrate with LLMs from the editor)? What about with the use of a compiler that has LLM-generated code in it? What about on an operating system kernel with a permissive generative AI policy such as Linux? Most importantly, is the language in my project’s contributor policy sufficiently strong to justify inclusion on noailist.org? (From OP’s answers to my question, it sounds like maybe the answer is “no”.)

    If I were to contribute something to another project on noailist.org, I highly doubt it would be an issue for the project to accept it. I don’t use LLMs (or Stable Diffusion or Dalle or Suno etc) at all when I have a choice. I use noai.duckduckgo.com for search. My employer requires me to use Jira and Confluence, and both have LLM features. Confluence in particular shows summaries without being asked. I never read them, so I (purposefully) never learn anything from them, so making contributions based on information I’d learned from an LLM wouldn’t be an issue. (I’m lucky my employer doesn’t impose token usage quotas or anything.) That said, actions I take on a regular basis as part of my job result in the prompting of an LLM along the way without any specific intention to do so on my part. Assuming I’m right that noailist.org wouldn’t have any issues with contributions I make under such circumstances, my question is whether all contributors must be similarly strict for my project to be included on noailist.org. If not, I’m wondering what I’d have to change (aside from my employer, of course) to be a noailist.org-approved contributor. (Both so that I can contribute to projects on noailist.org and so I can make informed decisions if/when I get contributions to projects I maintain.)

    When I have time, I’ll probably go read some of the no-AI policies for projects on noailist.org and see just how strongly they’re worded and how my contribution policy would have to change to be similarly strict.

    Edit: Oh wait, I think I misread your comment. My example didn’t involve any LLM-generated code. (Or at least I meant for it not to.) Just getting knowledge (or at least “information”) from an LLM and then writing code themselves (not LLM-generated code) using knowledge they’d acquired from an LLM.

    This bit here:

    Did a human write that output? No? Oh it was generated by an LLM? Yes? And you used it? Yeah, that’s fucking called using AI.

    makes it sound like you thought I was talking about LLM-generated code.

    But now that I see you didn’t interpret it that way, I’m wondering if OP might have interpreted it the way you did.

    Like, let’s say:

    • I authored and published a project under a FOSS license.
    • I was the only contributor to the project.
    • I authored it before ChatGPT existed and haven’t contributed to it since, so there’s no question that no generative AI was used in its creation.
    • After noailist.org came to exist, I added a contributor policy to my project that noailist.org’s rules would agree is sufficiently strict to warrant inclusion in noailist.org’s list. I submit my project and noailist.org accepts it and includes it in their list.
    • Then one day, someone we’ll call Sam wants to contribute a new feature to my project that involves calculating the length of the diagonal of a square.
    • They go and ask an LLM “how do I calculate the length of the diagonal of a square?”
    • The LLM indicates that the length of the diagonal of a square is the length of one of the square’s sides times the square root of two (which happens to be correct). The LLM outputs no code (and was not asked/prompted to). Just an answer to the question asked.
    • Sam closes the LLM and, without involving any LLMs any further, writes code themself using their own brain that invovles, among other things, calculating the length of the diagonal of a square. One line of the code is float64 squareDiagonalLength = squareSideLength * sqrt(2);, but that line of code itself was not written by an LLM (nor was any other line in the contribution). It was authored by Sam using knowledge they’d learned from an LLM.
    • Sam then opens a PR on my project with the code they wrote (including code which calculates the length of the diagonal of a square).
    • If I accept/merge the PR after code reviewing it knowing that Sam had asked an LLM how to calculate the length of the diagonal of a square (but also knowing that no LLM-generated code was included in the PR) have I broken noailist.org’s rules?

    I hope that better illustrates the question I meant to ask.

    But whatever the case, there has to be a line somewhere, right? I think of Stallman deciding that it was acceptable when authoring Free Software to do so on a proprietary operating system when no Free Software alternative existed. Much of the first version of the GNU project was authored on proprietary OSs. (With the blessings of RMS.)

    Edit 2: Well, it looks like my go_lemmybot project with the exact contribution policy I linked eariler in this comment was accepted. It now appears on noailist.org. :shrug: I must have just been really imprecise with my earlier comment and everybody thought I was referring to LLM-generated code.



  • What kind of projects do you want? I’ve got some dead projects that only one person has ever heard of that haven’t been touched since before the term “LLM” was in the public consciousness and so don’t have any explicit policies related to AI (but also don’t contain any slop, and I’d be perfectly happy to add a no-AI policy to any of those I’ve published). (Example.) I’ve also got some tiny little projects (that only one person has ever heard of) that have been updated recently that do have explicit no-AI policies. (Example.)

    I’ve got other much more substantial side projects that I haven’t released yet that I intend specifically to get added to NoAiList.org in the future, but they’re not ready for release yet.

    Edit: Oh, one more question. The no-AI policy language I came up with forbids “Contributions wholely-generated, partially-generated, or authored with substantial assistance by LLMs”. I left open the possibility of contributions “authored with insubstantial assistance by LLMs” a little bit there. My thought process was that it made sense to allow for contributions where, say, someone while authoring a commit to contribute to my codebase did one Google search to get an answer to a specific question and trusted the AI overview rather than hunting down the answer not in an LLM-generated summary and the solution worked and none of the contribution itself contained any LLM-generated code. Is that in line with your criteria for what qualifies as “no-AI”?








  • TootSweet@lemmy.worldMtoFuck AI@lemmy.world•My GF uses AI
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 days ago

    I’ve had experiences that relate to your post, and I understand how difficult it can be to be in your position. I can’t really make your decisions for you, but hopefully some of the following will help:

    First, since I made the post I linked here, my mother made an abrupt and unexpected reversal. One day out of the blue, she asked me to help her switch her default search engine on her computer to noai.duckduckgo.com and switch her phone’s browser to the Duck Duck Go browser and disable all AI features. (She’s not technical, so she appreciated, wanted, and requested the tech support assistance.) I don’t really know what prompted her to make the switch, but I’m elated by it. She’s still quite addicted to YouTube/Facebook shorts and some of the videos I see just by virtue of the fact that they’re playing in my viscinity are slop, but she usually makes the comment that “oh, that’s AI”. (Hell, we watched something on some streaming platform that had a slop scam ad targeting seniors with promises of some “Medicare grocery card” or something and my mother was the one who pointed out it was AI.) Her attitude has changed on the topic quite drastically. Between that post and my mother’s reversal, I did tell her “don’t read me that slop” or “yeah, but you can’t trust that because it’s LLM output” not terribly infrequently when she read me Google AI summaries or “oh, that’s not real though” when she’d show me a slop YouTube short. So it’s not like she didn’t get that I disapproved, and I think part of the reason for the reversal was probably for my benefit specifically. I’ve always been careful not to make any demands on her about things that aren’t my business. If she wants to consume slop content, that’s not really on me to correct. (To express concern, maybe, but not to demand she changes how she stewards her own brain.) But I don’t want that shit infecting my brain with LLM-hallucinated misconceptions, and I’ve been careful to make it clear that the boundaries I’m setting are where she ends and I begin. I’m not trying to control her, I’m trying to control me.

    Second, I usually try to avoid making predictions about the future, but more and more voices are saying now that there’s a strong possibility the AI bubble will pop within a couple of years. OpenAI, Anthropic, etc are all giving away LLM access at a huge loss. They’ve already bumped prices and gamed the system to extract more revenue, but it isn’t enough. At some point they’ll have to either shutter their generative AI efforts or start charging what they actually cost (and then shutter their generative AI efforts when it becomes even more clear that virtually nobody is willing to pay anywhere near that). Assuming that all goes down the way I’m hoping, at that point your girlfriend may well basically lose access to LLMs. (Running LLMs locally is a little cheaper in the long run, but there’s a steep effort curve and a steep up-front-cost curve (not to mention ongoing power usage bills) to get anything that even the boosters would call acceptable results. I doubt any significant portion of people using LLMs today will undertake such and effort or cost.) All that to say, there’s a strong possibility she’ll quit using Generative AI just by virtue of an impending massive bubble pop.

    I dunno. I probably am not one to take advice from when it comes to relationships (or economics, for that matter). You’ll have to decide how to address and/or deal with this issue yourself. I told you what I did and what resulted. I think boundaries, done properly, are generally a good thing. I didn’t think it would work for me to pretend I was fine with being force-fed slop frequently and it worked out. But whatever you end up doing, I hope your situation resolves similarly positively. Good luck.