How to define likelihood by myself in Pymc3

You need to provide a log likelihood, not a likelihood to PyMC.

The warning you see happens when you call sample_prior_predictive or posterior_predictive in a model with Potentials because PyMC won’t know how to take random draws from those terms.

If you implement a CustomDist you can provide a random method that PyMC can use in those cases: pymc.CustomDist — PyMC dev documentation