Population Control – Chapter 3
This is a translation of a Japanese novel. You can read the Raw here.
This is a work of fiction, with depictions of violence such as death of many people at a time. It is not suitable for readers under 15.
I was planning to do a double release today, but for many reasons, I can’t. However, know that starting from today, this novel will be getting more frequent releases.
Anyway, here is chapter 3 of population control, I hope you’ll enjoy it!
Chapter 3: Parameters and registry
“Mister Kageyama! Mister Kageyama! Please pull yourself together!”
Kageyama is my last name. It’s pretty common in Hamamatsu but not so much in Tokyo. It’s often envied by middle schoolers with delusions of grandeur, who think it sounds ‘cool’ because Kage means shadow in English.
Hearing the desperation in the voice calling out to me, I slightly opened my eyes, only to find my junior, Hattori, peering right into my face with a look of worry.
He said he found me unconscious near the office kitchen area. He had apparently lined up a few pipe chairs into a bed and laid me down on them with the help of another junior of mine, Nakayama. They were going to call an ambulance if I didn’t wake up in the next ten minutes.
Hattori was happy see that I was conscious again. His black, squirrel-like eyes were still teary, yet his big front teeth were showing me a big smile. He’s a good guy.
“Sorry… it must have been hard to carry me. I put you through all that trouble when you guys must be dead tired, too. Thank you.”
I tried to bow down to show my gratitude, but my shoulders and neck creaked in response. I must say, the comfort of a pipe chair bed is not so great.
“I knew 20 consecutive days would be too much. I’m almost 30 years old now, I can’t be doing these things. I do remember drinking some tea, but it’s all a blank after that.”
“Well, glad to see you’re okay, mister Kageyama. Then again, you still look tired; I’ll understand if you want to rest some more. However, if we don’t deal with today’s workload, we’ll be stuck here tomorrow, too. So we’ll be leaving you here, but please come back to the frontline once you feel better.”
“…Sorry about this again. Just give me some time to recover and I’ll be right back.”
After thanking me with a light bow, Hattori and Nakayama turned off the lights of the conference room and went out, leaving me by myself.
So I fell down, huh. I remember having a strange dream while I was out of it. There was some kind of god-like game addict who asked me to reduce the population of the earth or something… I remember he said something about… what was it again? …Oh yeah, he said I could access the offset coordinates and variables of every ‘object’ on earth. It felt ridiculously realistic. There were even details about abstraction layers, parameters and whatever. It played out as if the earth was an object-oriented program.
I grinned in derision at myself, amazed by the absurd dream I had. But as absurd as it was, the dream was oddly coherent. I can’t think of any logical fallacy within it.
A normal dream would have been a bit more strange, more bizarre.
Yet the existence of the white room and of the guy who told me to reduce the population of the world were strangely still fresh in my memory.
…How would I go about looking at the parameters of an ‘object’? Would I start start seeing people’s lifespans and true names above their heads or something?
While muttering to myself in the dimly lit room, I recalled the lecture I was given inside the dream.
“After determining the offset coordinates of an object relative to your planet, you can select it as your target. Then, a list will be displayed to you. Each list can have many levels of sub-lists. And once you’ve found the parameter you need, you can simply toggle it. If you want to modify it, enter any number you want and it will change accordingly.”
“Hold on, are you serious right now? This is basically just a windows registry editor.”
“I made it look that way to make it match as well as possible with your knowledge and human capabilities.”
“If you can change it as you want, can’t you pick a better user interface?! Any other problem I should know about?!”
“Like I said, the whole process will be like riding a bicycle. Everything will come to you naturally.”
“Okay then… That’s actually pretty amazing.”
“Well, there is just one more teeny tiny issue. Since it uses a part of your cerebellum, it will sort of interfere with your general motor functions and such when you use it. If you do it while walking or driving a car, you can be sure you’ll have an accident. So, yeah, be careful about that.”
“What the hell, man!”
I tried to focus on a chair in the conference room and somehow… I was able to tell what its offset coordinates were. Then, a list of numbers and letters in a tree structure popped up in my mind. It felt like the list’s structure and elements were neatly lined up inside my head. The raw data was probably converted to letters and numbers out of consideration for me, so that I could understand it. Although I can’t exactly tell what each parameter does, these numbers seem to be the ones set by the simulator.
I understand now what he meant when he said it would be like riding a bicycle. I wouldn’t be able to explain how I did it to someone else. That’s good and all, but it also left me with an awful, sluggish feeling in my neck and limbs after use.
Oh shit, it was real! It was real!!
That white room! That higher life form, too! Maybe even that request!!
The shocking reality left me quite shaken. I mean, how could I NOT be shaken?! It wasn’t just a dream I had when I passed out!
So I really have to reduce the population by 4 billion people? That’s basically more than half of humanity! More than one in two people! And if I don’t do it, that guy will report the bug to the developers, and they’ll use god knows what kind of ‘measures’ to correct it! I absolutely can’t let that happen, I can’t…
I felt like I was about to go crazy from hopelessness.
But that guy has apparently reinforced my mental strength without my permission.
I recovered so fast that I couldn’t believe it.
I drank what was left inside my small bottle of already lukewarm tea, and then, after clearing my throat, I decided to get right back to work.
…Right now, I should be focusing on fixing our program before the imminent deadline, not on reducing the population.
No, I’m not escaping from reality, okay?
If I could actually escape from this, I damn sure would have.
I just wish someone could tell me that none of this is real.
It didn’t take me long to get back to work on debugging our artificial intelligence system.
“The problem is that we hit a bottleneck in your part, mister Kageyama. This bug is too hard to reproduce.”
I nodded along as my juniors explained the situation.
The system we’re working on is divided in six parts. One for acquiring data that pertains to the stock market, one to acquire data that doesn’t pertain to the stock market, one that pre-processes the data, one that predicts future stock prices based on that data, then a part that determines the investment to be made according to the predicted prices, and finally, a part that trades online stocks.
I personally did most of the work on implementing and designing the part of the system that estimates the prices.
Although we arrogantly call the system an ‘artificial intelligence’, it just uses a slightly elaborate recursive neural network to predict stock prices. But it’s not possible to predict stock prices all that accurately in the first place. So even if it predicts a wrong value, that’s not considered a bug.
What we’re having trouble with now is that, once in a while, the program shows some obviously wrong values that don’t make any sense. Every time it makes a prediction, the system has an approximately 0.07% chance of giving a value with three digits too many. If the system is linked to a client’s automatic trading system as it is, he’ll go bankrupt within a few months.
The reason I kept working for 20 consecutive days is that I simply can’t find the specific reason behind this. The bug happens rarely and it doesn’t show up in the log file. The system thinks it’s working normally and doesn’t identify the problem as a bug, which makes this difficult to handle.
“Oh, is that what this is?”
As a test, I used my newfound ability on the test server that the system was running on, and looked for any numbers in the parameters that looked close to 0.0007.
Finding the dodgy part ended up being as easy as working the pedals of a bicycle. It was the ‘Memory error rate’.
The number shown in the list was much smaller than 0.0007, but I could tell this was probably the cause of the bug.
This happened because the memory and CPU of our cheap test server don’t have proper error correction features. That damn project manager. This is exactly why said we should match our conditions with the actual production environment, but all I got in response were ambiguous excuses about the budget and whatever to evade the request. You can be sure there’ll be no evading anything when it’ll be time to take all the credit for the project.
That aside, if this is a problem with the memory, why does it have to manifest only in my part of the system? Give me a break, damn it…
Fortunately, we keep our test server inside the workplace, so we were able to work on it right away. All we had to do was replace the faulty memory card with a new one, which was checked and tested multiple times by Hattori before being inserted. That took us barely any time. In fact, it was extremely fast considering how long it would have taken under different circumstances.
If the server had been at a data center in Otemachi, a lot of time and efforts would have been wasted between making an official request and actually being given access to the server, especially considering we’re in the middle of the week-end.
After fixing this issue, I resumed working on debugging the system, and found even more bugs.
I see… So the reason I wasn’t able to identify the exact source of the bug earlier was that it was caused by two problems overlapping with each other. It was the combination of both issues that made the frequency of the bug reach 0.07%. That kind of combined effect is more common than you’d think, but it’s still very annoying. The only reason I managed to successfully find what I was looking for is that, once the first source of the bug was gone, the problem became much more simple. It ended up being much easier to identify the second cause of the bug.
As it turns out, there is a sample that doesn’t fit in the range of the LSTM encoder. Is that what’s making it hard for the system to learn properly? …Well, I just have to further normalize the database then.
Will this be enough…? Yeah, I’m sure that did the trick. Probably… We’ll run a test and see. But it will definitely work!
“It’s done. Now, let’s try it.”
I let out all the air that had been gathering in my lungs while I was focusing, and then I asked Hattori to run a unit test. It seems like I was so engrossed in my work that I forgot to breath. I’m feeling a little dizzy.
Although I spoke of the test like it’s no big deal, it’s actually more complicated than it seems. The test will input all sort of stock prices and outside parameters that guide the market within the system’s TCN and LSTM networks, and then, it will use an algorithm to compare the results… All in all, it’s gonna take a long time to get the final verdict of the test.
Not to mention that, to definitely prove that the occurrence of the bug moved from 0.07% to 0%, it will take much more than just running the test once or twice. And once we’ve run that test enough times, we’ll have to test our system in coordination with an Automatic trading system and a Market stock-prices acquisition system. There is still a lot to do.
“I’ll let the test run for two nights starting from today, and if no error shows up after a hundred tries, we’ll be done with the debugging of this part of the system.”
Hattori spoke with a serious, professional tone.
It’s his fourth year at the company, but he’s quite methodical and skilled in his work considering that I had to carefully train him from scratch when he first came. The only issue I might have with him is that he uses a vi editor, which is insane to me.
Not that it should matter.
“That means we get to go back home today. Good job, everyone.”
“The best part is that we can finally get some rest tomorrow. I mean, I know that resting on a sunday is nothing special, but I’m still kinda glad, you know?”
Hattori spoke with such a bright and carefree face that it made me wonder. Will I have to kill one in every two good guys like him?
That’s a tough pill to swallow.
Translator’s note: If you have difficulties understanding anything, please let me know in the comments. I know there are a lot of difficult technical terms, but I tried to make everything as clear as I could.
And yup, the lifespan/true name thing is a Death Note reference. Well played if you caught it.