Building a Fault-Tolerant Drive Pool with Centos, ZFS, and RAIDZ

Summer break has come, and that means it’s time for personal projects! To get ready, I’ve upgraded the storage array on my home server from 4TB (actual) to ~32 TB (raw). I’m using sub-consumer hardware by taking apart four 8TB WD easystore backup drives to cut down on cost, and I’m using zfzonlinux with CentOS to build a fault-tolerant drive pool with raidz so that if one disk fails, my data will remain intact. ZFS also provides many nice features for snapshotting, data integrity, etc. and the raidz tends to perform better than typical raid solutions. Now that it’s completed, I have about 21TB of space to work with.

 969 total views,  1 views today

Krupczak logo


Advancements in Machine Learning: Time-aware Deep Learning with Memory

Illustration of a T-LSTM unit
T-LSTM illustration from the paper “Learning Deep Representations from Clinical Data for Chronic Kidney Disease “

“Deepfakes” of audio and video have made a lot of news lately, with stories making the including a fake video of Mark Zuckerberg that looks lifelike and scam phone calls being made to major companies that sound exactly like their CEOs.

These are powered by LSTM cells, or “Long Short Term Memory” neural networks, which are capable of learning from a set of given input data and then using their memory to predict (or fake) future events. These cells have been extremely powerful in many domains including data science, but tend to be hampered by the fact that they rely on the time step between data to be uniform (e.g. video where it is always 24 pictures per second)

Below are collected thoughts on a new, modified version of LSTM cells called T-LSTM’s that are more capable of understanding data where the time step between events is variable, such as in healthcare when doctor’s visits can be grouped close together or spaced further apart.

These modified cells have proven to be very effective so far, and could be used more widely to great effect in the future.

 950 total views,  1 views today


Krupczak logo


Translation and International Adoption:

pitbull mr worldwide translation and international adoption

I’m currently working on an open source android app with a few hundred thousand users and after seeing significant international adoption (including more users in Russia than the US) I wondered if I could do better to make my app usable worldwide. I decided to try using a cloud service named Transifex to translate my app’s user interface.

I translated the google play store listing into 13 languages , started A/B testing with the translations, and used Transifex GitHub integrations to translate the app user interface into 31 languages almost completely automatically (some code refactoring, Google Translate API wrangling, and manual oversight was necessary).

Translating the store listing has had a minor effect, but there’s been a great response from users with the translated user interface. It also has made it very easy to invite native speakers of each language to improve the translation of the app. Transifex has been great because it provides its software completely free to anyone working on open source projects. If you’re looking to translate your android app, I’ve written a config script for Transifex’s GitHub integration that works with android string files:

happy coding!

 1,323 total views,  1 views today


Krupczak logo


Cooperative Deep Learning in Quake Capture the Flag:

CTF pic png

Cooperative Deep Learning in Quake CTF:

Google’s deepmind team made some big waves recently beating the world champion at GO, a famously hard board game. They’ve since made a major advancement in agents that can play a modified version of Quake III Capture the Flag.

Capture the Flag (CTF) is a popular first-person shooter game mode where players work in teams to steal a flag from the opposing team’s base while trying to avoid being “tagged”. It requires unspoken teamwork, planning, strategy, and real time interaction with the environment, tasks hard for AI.

The agents play against themselves to train, then play against humans for competition. Just like humans, they’re only allowed to look at the screen and the game score. To make things fair, the AI was given a reaction time and aiming accuracy similar to that of humans.

Even with these handicaps, the AI teams outperformed skilled human teams significantly by cooperating more and having a better sense of strategy.

Humans were still better in some areas though, and when AI teams were augmented with human players they cooperated flawlessly and often outperformed AI-only teams.

Human teams may work with AI augments in many areas in the future. This may already be happening in military applications.

More info:

 820 total views,  1 views today


Krupczak logo