Can we also create a self hosted runner with CPU machine?
Of course! Are you using cml runner in conjunction with the --cloud option?
Moreover, when I tried to run the pipeline via GitLab CI/CD, I could not install required python dependencies […]
Sounds very similar to iterative/cml#1324 (comment); can you log in to the self-hosted runner and try running the pip install command manually? It looks like a connectivity issue.