Active Record attributes (has_many vs serialization vs sti)

I have a set of STI models, each have slightly different attributes.
While I could create a row for each one, I feel that there may be too
much null data in the database. At the moment I setup a has_many to a
parameters table which stores key value pairs. I want to find the best
solution for performance and simplicity.

  1. STI for each field (I think new fields will be needed more than not,
    and will require a lot of migrations)

  2. Parameters has_many association. Seems like overkill, not sure if I
    am getting a performance hit here.

  3. Serialize params via YAML or Marshal

Any recommendations? Performance is primary concern, simplicity second.