• 0 Posts
  • 23 Comments
Joined 3 years ago
cake
Cake day: June 16th, 2023

help-circle




  • I have seen this argument before and it doesn’t make sense even in theory.

    I used to work at a company that did open source work and also proprietary work with third party closed source code. The company didn’t let anyone who had seen proprietary code contribute to open source, because they felt once a person ‘learned’ from a proprietary codebase, then it’s too risky if similar looking code lands in a project.

    Imagine if someone saw the source code for Excel. Then sometime later they notice that Calc didn’t have a feature that Excel did, and contributed an implementation of the feature. Even if they hadn’t been looking directly at the Excel source code in the moment of implementation, you think Microsoft would be so “understanding” when they see someone that once worked on Excel contributing what could be construed as infringing?

    The AI companies also seem to acknowledge this, as they have offerings that promise not to use your proprietary code as training fodder. If it is not a risk of infringement, then why would it matter to promise that the proprietary code is kept out of training data? Though it was short lived, why would OpenAI have even made a deal to license Disney material if it’s all fair use anyway? If this sort of stuff is fair game, why do they get so pissy when other companies distill models?

    Even as the AI company’s have roughly defended this scenario, their defense should be a cause for concern for users. Generally they say that anything they do with things they can read is ‘fair use’, and when exhibits of clearly infringing outputs are given, they respond with the model only did that because the user’s prompt directed it, and thus the responsibility for infringement should be with the AI user, not the engine that produced the infringing output. So the possibility of an unwitting infringement is possible as the AI companies explicitly say it’s the fault of the user even if it happens.

    But we come to your last point, that essentially at this point, the whole thing is ‘too big to fail’ and thus the practical risk is low. Which is true. It’s just a bit disheartening that these companies are given free reign to interpret intellectual property law whichever way is convenient in the moment.


  • Note a key point of contention is how the training data is used and whether it is effectively discarding copyright. If you invested time making an open source project to do something people appreciate and you get attribution as a result, you may be unhappy that a model trained on your stuff can let a user prompt up an embedded implementation of what your project does without any attribution.

    This pretty much applies to all models. No one limited training data to explicitly public domain stuff.


  • I think broadly most people are less bothered by what the GenAI can do, but more bothered by what experiences are inflicted upon them by other people using the tech.

    All well and good if it can so code reviews and code gen at your behest and you can evaluate and get as much as you think you can out of it, but other people are enabled to be amazingly more obnoxious about it.

    “Slop” is mostly because people were inclined to do the slop level quality, but were self limited by the reality their poor ideas were roughly as hard to do as much better ideas. Now AI accelerates people that are not concerned with quality or specifics way more than it can accelerate people that care about specifics and quality.



  • They mostly don’t, but this is also not how the datacenters cool them.

    A datacenter will either have an open water loop, or an all in one taking heat to a more advantagous place for a radiator to be, or at the very least better managed airflow with bigger fans and more specific air baffles.

    This thing has no such luxury and has a small area and unknown broader thermal context, so screaming it is to make up for the limitations of the scenario.



  • Well that description of a car is actually fairly close to the fundamentals, add an engine or motor and a steering wheel, and you’ve got it. Yes, a lot of engineering goes into the best possible realization of those basics, efficiency, suspension, safety, maintenance, and just a ton of more stuff, and it is a very valued execution above and beyond what, say, the Model T delivered. Automotive engineers have done hard and valuable work and complicated work, but no one is surprised that Model T led to faster, more comfortable, safer, more convenient vehicles that move around. It is a bit more surprising that LLM architecture works as well as it does while always focusing on the next token without ability to go further, best case running through and messing up and regenerating until you have operator appropriate output.

    The ‘seahorse emoji’ was a pretty fun example of this at work, as it didn’t have a seahorse emoji, but since it wasn’t trying to generate the emoji, it started by building up the words to confirm and introduce the emoji since obviously there will be one, then putting up a wrong thing, then the words that would go after the wrong thing, but the weight still suggested there should be a correct answer and to start generating words for another try, and so on. “Reasoning” does the job of incurring this hit out of sight a lot of the time. Looking at the reasoning chains you’ll see this behavior a fair amount, that the model suggests words that build toward an answer but fails on the key word and retries until something tests right or it models that it tried enough and it can’t find the key word that would have been expected. It can of course digest it’s own output and summarize the result without showing the operator spinning out, but it at all times is operating on the fundamental principle of model+very cleverly managed context influencing an answer one token at a time and ideally discarding the first run.




  • Actually, it’s better at programming if you don’t know how to program.

    For example, someone who didn’t know how to program sent me a patch to my code to ‘fix’ a problem they encountered. It was changed to silently swallow the error that really really would have needed to be fixed, but they were so enthusiastic that the problem looked to go away that they wouldn’t let me know actually actionable debug information and just whined that I wouldn’t take Claude’s perfectly good fix for it. It is much better at satisfying folks that don’t know how to look for better.

    To satisfy my standards, I would have had to extract more debugging info, probably construct a test case tickling that exact situation making an expected error to ensure it won’t just throw it away, and add it to the suite and then ask it to spin until the test case passed.

    But alas, I’m neck deep in merge requests from folks that were formerly intimidated by coding and are now complaining that I’m not accepting more of their changes and more quickly because “all” I have to do is review the code which is obviously so much easier than writing it… It’s like the “I have an app idea, all I need is for you to do it”, but on steriods…


  • Particularly software development with very good and very quick tests allow rerolling and that is very appealing in those scenarios. Problems being that very good tests are rarer than people like to think and sometimes it just gets stuck in a loop. At work the other week someone set it at the task of fixing a bunch of build warnings that had accumulated over the years. It succeeded after burning through tokens to take 30 tries at it. It’s solution after all that hard thinking? It put // @ts-nocheck at the top of every file and called it a day.

    But superficially, someone handed it a chore and didn’t have to think about it, and if no one looked deeper, then it was able to get to the desired behavior simply by rerunning the given task over and over without human intervention until it worked. Which is also broadly relatable as there’s a lot of humans in the industry acting broadly the same, but I’ve always been frustrated by those folks anyway.


  • But that context is a mix of model output and other sources. The model output portion was generated token by token, and is combined in interesting ways with things like human response, search results, software output. It’s still a backward looking mechanism, rather than having established a concept as a goal and then trying to build the words to reach that concept like we do.

    Size and strategy for managing the context has been critical for improved subjective results, but it still doesn’t exhibit the behavior of the words as a tool to address some concept, everything about the model is about the words themselves. So we end up with something very good at generating what seems right and there’s a super high chance of what seems to be right actually being right. Especially when the software can automatically execute commands and the good or bad results reach into the context window, enabling it to effectively get automatically second guessed. The potential for automatic verification in some scenarios automatically feeding the context window is what makes it particularly appealing for software folks, though not universal.


  • I’m torn, because yeah, it’s a made up story, but at least it’s a made up story that is more positive than other made up stories that stoke the worse inclinations.

    Of course, if it’s easy to find their little bakery from that social media account, well then cynicism cuts hard back toward ‘hoping for viral marketing’.

    So I guess the compromise is to take in the positivity and completely ignore the source…

    Just so tiring always looking for the “catch” and having to assume the worst of others.


  • I assumed that but everything I have seen as I dug deeper has been that at some level that is what is happening. If it is ‘reasoning’, it’s generating a ‘reasoning chain’ next token by next token and using that to influence the final output tokens. The reasoning chain is discarded and since the actual output is a continuation of the reasoning chain it may conceptually be described as allowing the model to ‘rethink’ things, but even as the generation of a ‘reasoning chain’ has results that more closely resemble reasoning, it is still a scenario where it’s building it one token at a time and we get to see meaning as an emergent property, rather than trying to find words to build to a more abstract concept like humans do. It just gets to throw away the intermediate work and the extra tokens manage to improve the ‘accuracy’ of the preserved final output.