If you look at your buffer the streams are not of equal length. You have 6 entries (3 floats each) in your position stream, but the others have more. Trim the surplus values in the other streams and you’re good!
Also, remove/comment the identity view and projection matrices when rendering the mesh:
-- render custom meshes
--render.set_projection(vmath.matrix4())
--render.set_view(vmath.matrix4())
render.draw(self.model_pred)