What defines a nonmetal?
A non-metal is a substance that shows none of the properties we associate with metals. (not kidding here! read on...)
It would probably be best to first ask "What is a metal"?
A metal is a substance that has a certain collection of physical properties - good electrical and heat conductivity, malleable, ductile, shiny and reflective surface.
With that established, a non-metal is a material that does not demonstrate these properties at all, and a semi-metal (or metalloid) is one that shows some, but not all of the properties.
In my opinion, this is a better way to define a non-metal than trying to do so on the basis of valence electrons for example.