<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_func(self, func, pnames, args=()):
 """Set the model function to use an efficient but tedious calling convention. The function should obey the following convention:: def func(param_vec, *args):
 modeled_data = { do something using param_vec } return modeled_data This function creates the :class:`pwkit.lmmin.Problem` so that the caller can futz with it before calling :meth:`solve`, if so desired. Returns *self*. """

        from .lmmin import Problem

        self.func = func
        self._args = args
        self.pnames = list(pnames)
        self.lm_prob = Problem(len(self.pnames))
        return self