Skills that algorithm engineers need to master: algorithmic ability, programming ability (Python, C, Java and other programming languages, Sql, database), package adjustment ability, Pipeline construction ability, data analysis ability, auxiliary technology ability, etc.
For an excellent algorithm engineer, he or she must have not only excellent technical capabilities, but also a deep business understanding. And external communication skills, in short, the requirements can be very high!
However, in terms of the division of responsibilities and capabilities, an algorithm engineer is first and foremost an engineer, so this article mainly discusses the engineering capability requirements.
Before you start, let’s put down a mind map. This will be the core content to be shared in this article:
Engineering Ability Overview
Algorithm Engineer, as we can see from the name, an algorithm engineer should first have algorithmic capabilities and engineering capabilities. We can think of these as basic technical capabilities. Due to the popularity of open source technology, Sklearn, Tensorflow and Spark ML have basically become the standard tool libraries of most algorithm engineers. Therefore, skilled outsourcing ability also determines whether an algorithm engineer can quickly implement requirements.
Secondly, in a real production environment, the implementation of algorithms will encounter various business scenarios and data environments, which also requires algorithm engineers to have Pipeline construction capabilities to integrate the data in the entire production environment. The flow and model are connected. At the same time, in the production environment, there will be various "difficult problems" waiting for you to explain, such as why the experimental results are particularly poor? Why is the model effect unstable? This requires algorithm engineers to have certain data analysis capabilities.
Many times, you will find that the energy you spend on data analysis and pipeline construction may occupy more than 80% of your work content.
When you have the above abilities, you can already call yourself an algorithm engineer. At this point, you can have a little fun with the data analysis: "Look, I can build the Pipeline of the entire model, but you can only get the data provided by others and then adjust the package." Or, you can also find Developer Deser: "Look, I understand a lot of algorithms, so you can only write code." ? The answer is of course not enough. Since different companies have different team maturity levels, tooling and process maturity, this will have different requirements for algorithm engineers, such as model publishing capabilities and report development capabilities. Of course, there will also be some other capabilities, although it may It is not particularly important, but when no one does these tasks for you, algorithm engineers may still have to take on these tasks, such as grayscale testing capabilities, load balancing capabilities, etc.
After sorting out the above content, it will be such a mind map.
Detailed explanation of engineering capabilities
1. Basic capabilities1. Algorithm capabilities
I won’t go into detail about algorithmic capabilities. The basic ability requirements of algorithm engineers. It is unreasonable for an algorithm engineer to not understand algorithms. Here the layman has also included the content of statistics.
2. Programming ability
Programming ability is mainly divided into two parts:
Although everyone will ridicule the adjuster, but to be honest, there are not many people who can adjust the package very smoothly. For example, now Let yourself use tensorflow to build a complex network. If you can't google it, can you write it? Can you remember how to use it clearly?
1. Pipeline construction ability
Pipeline construction ability. What I want to express here is more about the construction ability of the entire data flow. The data starts from Log->Features->Model Training->Feedback, whether this chain can be completed, there will be many problems that need to be overcome. For example:
2. Data analysis ability
The data analysis capabilities here do not refer to business analysis or business analysis, but more to the capabilities of feature analysis, algorithm effect analysis and various abnormal problem location analysis.
In many cases, the ability level of two algorithm engineers can also be seen from the data analysis ability.
3. Assistive technical abilities
Assisted technical abilities refer to whether you know them or not. The impact will not be particularly large, but they are also useful abilities, especially The development situation of different companies is different. It is very likely that an algorithm engineer will be responsible for data access, data cleaning, algorithm platform and front-end, and be responsible for model launch and system operation and maintenance.
I won’t go into details here.
For more related knowledge, please visit: PHP Chinese website!
The above is the detailed content of What skills do algorithm engineers need to master?. For more information, please follow other related articles on the PHP Chinese website!