Reason and non-reason in language model use

Posted on techcode

Language model-based tools (abbreviated below as LMBT; some people call them "AI," "generative AI," or "AI agents," though I am reluctant to use these terms) have gained popularity since a while ago and it strikes debates among tech people on whether or not to use them. For this question, I do not have a clear-cut answer. A detailed analysis is needed and thus this post.

One main fear about LMBTs in free and open-source software communities is about copyright. On one hand, some fear that LMBTs may generate code that comes from incompatibly-licensed code. On the other hand, many criticize the use of copyleft code in language model training, whose result is then used in potentially non-free software. For me, if legal issues are taken into account, these may well be points of worries. However, from a purely ethical point of view, I have no issues with people using LMBTs to turn non-free code into free code. However, using LMBTs to turn free code into non-free code will be unethical.

Social/environmental impacts

The production of language models and LMBTs often comes with social and environmental impacts, many negative. Data are probably harvested from non-consenting people. Workers are exploited. They cost a lot of energy to build and run. These can all be true. However, I will not consider them as reasons in deciding whether to use LMBTs. Why? Ordinary people cannot be demanded to make purchase choices that cost them more. Say, for example, A sells a coconut for $1, and B sells a coconut of the same size and quality for $10, but B boasts their product is "made without the exploitation of animals." An animal protectionist may think the coconut of B is more ethical, with which I do not disagree. However, the product of A is more affordable. People, especially those without much money, cannot be demanded to buy B's coconut instead of A's, because otherwise it may not be the best choice for them. The extra money could have been used for other means that improve their well-being. The fact that A's product being less ethical is a reason to protest against A's way of production, for example, through a rally or demonstration. That is because, a rally or demonstration costs less for the participant while at the same time is more effective. A demonstration of 1000 people has more impact than the same 1000 people just switching to a more expensive competitor's product. Moreover, such impact may further cause other, relatively richer people, which sacrifices less when they pay the same extra price, to be willing to stop using A's product.

The same holds for LMBTs. Of course, if someone wants to not use LMBTs due to the social or environmental impacts, it is their choice and I have nothing against it. But it fails as a reason when one wants to persuade other people to stop using it -- the negative impacts of LMBTs does not make people who use them unethical, because they can be pressured to use them (affordability being one of the potential causes, even if not using LMBTs costs less in the long run, because it is expensive to be poor), and those who are the most pressured are those who are the most unprivileged people.

Performance

Whether LMBTs benefit the user is definitely a decisive point on whether to use them. For tasks that are tedious for human beings but easy for machines, it seems that LMBTs are suitable to do them. Of course, we still want to analyze where these tasks come from, whether they can be eliminated altogether. For example, writing in a "formal" and "professional" tone (read: passive-aggressive) is a good task for LMBTs, but I do not think they should exist. Passive-aggressiveness is much more disgusting for me than active-aggressiveness. On the other hand, expressing oneself more clearly is beneficial on its own.

Conversely, when LMBTs cannot perform a task very well, or when using them is slower than doing it yourself, this naturally gives a reason to not use them for such task.

Service as a Software Substitute (SaaSS)

Many large language models cannot be deployed on personal devices, and one has to rely on services provided by others to do the computation. But that computation is their own computation: language model itself does not interact with other people when it generates the output. Indeed, LMBTs do often do the computation locally on the user's device, except for calling the language model. But in the end, they depend on services that give responses for the user's own computation. SaaSS is a reason to not use language models hosted by people or entities I do not trust.

"AI [sic] coding is just evil!"

To me, LMBTs are just tools, like auto-completion or language servers. In some aspects, some language servers may be more "intelligent" than language models -- they contain logic, not just probability (correlation). Whether someone has used LMBTs in writing their code makes no difference to me. If there is code quality issue, we must be reminded that human beings can write bad code too. If someone uses a LMBT to automatically submit many patches or answering review questions, it should be treated no differently than any other spamming bot, or people who are just unwilling to cooperate.

Enshittification of things happens well before LMBTs become popular. Degradation of quality of software and services has been omnipresent even ten years ago. Examples: video sites prevent you from downloading videos; novel sites prevent you from copying their text; DRM.

For this reason, I do not think we should require people to explicitly declare LMBT-generated output, although those who do can be helpful. I also do not recommend committing "AGENTS.md" or the like into the source code repository. Each tool will likely benefit from slightly different wordings, and whether and which one to use should be decided by individual developers.