PyMC3 pm.sample()でAttributeErrorが出る

Traceback (most recent call last):
  File "test_pymc.py", line 18, in <module>
    trace = pm.sample(niter, step, start)
  File "pymc3/sampling.py", line 224, in sample
    init = init.lower()
AttributeError: 'dict' object has no attribute 'lower'

pipでバージョンを指定せずに導入したのでPyMC3のバージョンは3.1だった。
とりあえずの解決策はPyMC3のバージョンを3.0にダウングレードすること。

python -m pip install pymc3==3.0

もう一つの解決策はpm.sample()の引数の書き方を変えること。

trace = pm.sample(niter, step=step, start=start, init='ADVI')


PyMCについて詳しくないので適当に調べた経緯を以下に。
https://github.com/pymc-devs/pymc3/issues/2357
Git-hubのissueで開発者が一方的にコメントしClose、解決したかのようになっているが、実際にはpm.sample()の書き方によってはエラーが残る。
https://qiita.com/yadoyado128/items/e4a8d8fa23ec76473d5c
で紹介されているように

trace = pm.sample(niter, step, start)

と書くとv3.1ではエラーが出る。v3.0ではそのまま動く。
issueで指摘されているようにinit='ADVI'などと入れたい場合、

trace = pm.sample(niter, step=step, start=start, init='ADVI')
or
trace = pm.sample(draws=niter, step=step, start=start, init='auto')

などのように別の書き方が必要。これならv3.1でも動く。
http://docs.pymc.io/api/inference.html?highlight=metropolis#module-pymc3.sampling
(公式Documentより)
3.0 => 3.1 でどうしてここまで変わるのか……