Like, with the modulation of MLT-3 and 4D-PAM5, how the clock data recovery is done?
Depends on how "blind" you want it to work, i.e. how much you want to assume you know about the modulation and pulse shape.
There's many ways to do it, but typically, you build a control loop, in which you strive to put the zero crossings on average at the same time. A zero crossing is too early – notch the local clock to run a tiny bit faster. A zero crossing is too late – slow down the local clock a tiny bit.
While the zero crossings naturally don't all occur at the same instant relative to the symbol period (because sending the same symbol 10 times followed by a different one will produce a slightly offset zero crossing position, usually, than alternating between two symbols; between the identical symbols, there's not even necessarily a zero crossing. It depends on the line coding!), the do on average; so you really make the adjustment small enough that the clock just drifts toward being synchronous with the symbol clock, and then doesn't jump around a lot once it achieved that.
By the way, I'm not writing much in detail here, because
- it's a large field, and I can't tell you what a specific CDR does – there's, as said, many ways of doing it,
- the very wikipedia article you linked to has a link at the bottom, "Wikibooks has a book on the topic of: Clock and Data Recovery", and maybe you need to do a little more research on your own to be able to ask a more precise question.