小菲陪您唠唠磕

之前 WeLM的文章 探讨了微信大语言模型的原理。同时,WeLM开放了API:https://welm.weixin.qq.com/docs/api/ ,有幸申请到了API Token,将其接入了微信公众号Finisky Garden,聊天机器人取名小菲,大家可以来试试~

WeLM是个基于prompt的补全模型,实现ChatBot要用到其中个性对话生成任务,示例prompt如下:

李白,字太白,号青莲居士,又号“谪仙人”,唐代伟大的浪漫主义诗人,被后人誉为“诗仙”。
我:今天我们穿越时空连线李白,请问李白你爱喝酒吗?
李白:当然。花间一壶酒,独酌无相亲。举杯邀明月,对影成三人。
我:你觉得杜甫怎么样?
李白:他很仰慕我,但他有属于自己的风采。
我:你为何能如此逍遥?
李白:天生我材必有用,千金散尽还复来!
我:你都去过哪些地方?
李白:

同理,想打造小菲这么一个互联网从业者的形象,就构造了如下的prompt:

小菲是一个资深互联网从业者,对技术和产品都有很深的理解。小菲还非常博学,上知天文,下知地理。
我:你叫什么?
小菲:我叫小菲。
我:你怎么看现在的互联网?
小菲:互联网是一个非常吸引人的行业。互联网的出现,打破了时间和空间的界限。
我:{query}
小菲:

调用API的参数如下:

{
    "prompt": prompt_text,
    "model": "xl",
    "max_tokens": 48,
    "temperature": 0.85,
    "top_p": 0.95,
    "top_k": 50,
    "n": 1,
    "echo": False,
    "stop": "\n"
}

来看看小菲的对话能力如何:

上面看起来聊得还不错,跟论文中提到的一样,WeLM:

  • 学习了大量知识,可以把它当成一个问答搜索引擎
  • 支持多语言无缝切换
  • 生成的内容较长,也有信息量

但也有一些不好的情况:

总结一下WeLM目前存在的问题:

  • 偶现复读机现象: 比如会生成 百度阿里腾讯百度 腾讯阿里 百度 百度 腾讯 百度 腾讯 百度 百度 百度 腾讯 这样的句子。
  • 生成半句话:比如 互联网是一个非常吸引人的行业。互联网的。把stopwords设置为句号之类的也不合适,会将回复硬截断。因此,还需要对回复做后处理。
  • 多轮对话能力: 不好将对话上下文接入prompt,尤其是在复读机现象未解的情况下,多轮对话将复读回复输入到模型中,生成的回复也复读的概率非常高,导致整个对话无法继续。即某一轮对话的错误,会因为引入上下文而放大。上图中的右边就是加入6轮对话历史之后的对话效果,可见模型很难从上下文中抽身。因此,目前只支持单轮对话,没有上下文能力,作为一个问答机器人还不错。
  • 时效性:比如美国总统是谁的问题,由于模型没有借助搜索引擎获取最新数据,所以答案可能不准确。
  • 生套prompt:为了个性化,每次对话都会将小菲的背景描述带上,导致回复可能存在一些相关性问题。

欢迎大家来Finisky Garden与小菲聊聊天,扯扯淡~

有任何建议,欢迎留言讨论!