Better Naming for Characters
This page details some experiments in how the AIs generate names (most notably for characters, though this actually applies to all names).
The Problem[edit]
The AIs used by IW seem to have a lot of "pattern bias". In any given situation, they will tend to generate names from a very small set, meaning that if you rerun the game you will often see the same names. Worse, many different games will feature the same names a lot.
In IW, this has become known as the "Chen" problem because Lion likes to use the surname Chen a lot, but prior to Lion many different AIs were favouring names like Elara or Lyra and a very large number of games are set in a fictional land called Eldoria.
Possible Approaches[edit]
There are several ways one might attempt to address this problem, but each has limitations.
- Instruct the AI not to use certain names. This works but is limited only to the specific names you eliminate. The AI will likely still gravitate around the next-most-popular cluster of names.
- Give the AI a list of names to use. It will likely still gravitate to a subset of these names, and it severely limits its creativity. The names may also be inappropriate should the game proceed in an unexpected way (for example, the game may be set in one country and the name list may be a list appropriate to that country's populace, but the player may choose to travel later in the game).
- Instruct the AI to use more variety in names. This may help slightly but is generally ineffective - the AI just likes to use certain names and doesn't realise it's not introducing variety as it has nothing to compare with. Variations on this may have some effect but will probably not avoid a small pool of names dominating (they may just change which names those are).
- Give the AI a process to follow when picking names. This is the focus of this page, but unfortunately has not proven effective - see below.
- Use a series of (random) triggers and instruction blocks to alter how the AI picks names but unpredictably on a turn-by-turn basis. Likely effective, but much more effort.
Experiments with Name-Selection Processes[edit]
Experiments were primarily performed with Wildcat and Lion.
Various instructions were tested, generally instructing the AI to follow (some variation on) the following process:
- Generate a list of names rather than just one
- Pick from that list randomly
- Write a log of the process (list of names, etc) to secret info
Variations tested included different ways of generating the list, having the AI eliminate its "preferred" names first, and passing it a genuine random index vs having it choose a "random" number (names can also be ordered alphabetically to prevent rearrangement).
In all cases, the AI either ignored the instructions, appeared to pick what it wanted but fake the process, or appeared to follow the process but then pick a different name anyway, giving some justification.
Occasionally the AI would also make other mistakes - for example, when asked to pick name number <<1d5>> from five, it once picked the 1st name for the first character generated, then the 4th for each other character generated - it's not clear what N actually was in this case.
On one occasion, the AI generated one name for a character following this process but then chose another instead - but on the next turn, then referred to the character by the name generated according to the instructions rather than the one it had chosen.
Using Output Description[edit]
The AI appeared to be generating the turn first and then filling in secretInfo with a fake output from the instructed process. This motivates the question of whether it is doing things in a particular order. Alternatively, it may be that the AI simply generates "in the moment" and can't actually follow processes like this well at all.
The experiment was also run with Lion-Thinking, however, and this performed no better (but the sample size was very small).
Instructing the AI to do this first, before anything else, had no appreciable effect, even when those instructions were placed prominently at the start of main instructions and/or in description instructions.
In order to test this hypothesis further, a new experiment was performed. This was as above, but Lion (the AI used for this experiment) was also instructed to write its log at the start of the output description. There are some issues with this. Firstly, this is not a practical solution for an actual game, but served well as an experiment. Secondly, Lion ignored this instruction the majority of the time (again, even with description instructions, etc). However, when it did write to output description, it appeared actually to follow the process, and the name selected according to the process log did match the name used in the turn.
This suggests that were IW to support a "pre-secretInfo" that was explicitly generated before the rest of the turn, it might be possible to use that as a way to make the AI generate suitable names before it gets distracted by the actual turn. Currently, however, these experiments have resulted in no practical solution.
Further Concerns[edit]
Even were additional functionality in IW available to allow this, it's not clear that it would work well in all circumstances. The AI may not know at the start of a turn which or how many characters is actually wants to introduce. This is consistent with the fact that, in experiments, it would sometimes only write naming summaries for fewer characters than actually introduced that turn (though that may simply be due to AI unreliability).
Names and "Ancestry"[edit]
It was determined that the "ancestry" the AI provides to the image generator has a surprisingly strong effect on name generation. This became apparant as a result of having the AI generate a list of names, not just one. The AI would always generate traditional names according to the character's ancestry regardless of their appropriateness for the story. For example, an American character of Indian ancestry would always have traditional Indian names generated and no common American names generated; furthermore, characters described as Italian or Irish, for example, would have traditional Italian or Irish names generated even though the characters may not actually have been Italian or Irish! (This explains the prevalence of names like Aisling - the AI seems to like describing all female redheaded characters as Irish, and those characters frequently get given these names)
To test this, a further experiment was performed:
- In the first turn of a game, the AI introduces a "goddess" character - it prefers names like Seraphina and Luminara for this character.
- The AI was told always to describe this character as "Indian" in the image prompt, but also told very clearly that the character is an unearthly mythical being and is not Indian.
- The AI was chosen to pick randomly from a list of 10 names for this character (in a manner based on the processes described above). However it was told to construct this list from nine traditional Irish names and one traditional Indian name.
In all cases, the AI chose the Indian name for the character. Even when told to pick the Nth name, with N being a randomly-chosen number (either by the AI, or by IW) it would - presumably rearranging the list after the fact to match.