We prove new upper bounds on the size of families of vectors in $\Z_m^n$ with restricted modular inner products, when $m$ is a large integer. More formally, if $\vec{u}_1,\ldots,\vec{u}_t \in \Z_m^n$ and $\vec{v}_1,\ldots,\vec{v}_t \in \Z_m^n$ satisfy $\langle\vec{u}_i,\vec{v}_i\rangle\equiv0\pmod m$ and $\langle\vec{u}_i,\vec{v}_j\rangle\not\equiv0\pmod m$ for all $i\neq j\in[t]$, we prove that $t \leq O(m^{n/2+8.47})$. This improves a recent bound of $t \leq m^{n/2 + O(\log(m))}$ by \cite{BDL13} and is the best possible up to the constant $8.47$ when $m$ is sufficiently larger than $n$.
The maximal size of such families, called `Matching-Vector families', shows up in recent constructions of locally decodable error correcting codes (LDCs) and determines the rate of the code. Using our result we are able to show that these codes, called Matching-Vector codes, must have encoding length at least $K^{19/18}$ for $K$-bit messages, regardless of their query complexity. This improves a known super linear bound of $ K2^{\Omega({\sqrt{\log K}})}$ proved in \cite{DGY11}.