今天刷抖音看到了豆包手机的视频,正好之前实习的时候做过豆包的微调,没想到这么快就落地了,于是对于底层的原理很好奇故进行一个总结,肯定有不少问题,而且很浅,如果有大佬希望能赐教(虽然准备秋招找开发岗,但还是想紧跟AI潮流哈哈)
- 用户输入需求,点击发送后发送给服务器
- 服务器调用大模型首先去除需求中的无效语气词等token,然后将干净的需求通过查token表拆分成一系列token
- 模型输入为token序列通过attention和各种卷积提取特征,结合微调任务中类似的操作计算可能会执行的任务概率,通过softmax输出最可能执行的任务,应该是使用解码器每次输出一个token,然后根据输入和已生成得token预测下一个token,softmax应该说1*5w这种级别,因为要尽可能覆盖所有token。最后将预测结果并转换为用户指令和内核指令返回给手机客户端。
- 手机客户端依次执行指令,例如click()打开某个app,每执行一条指令都会得到结果,此时部署在手机上的图像识别模型捕捉结果,输出下一条指令最大概率需要操作的位置(x,y)
- 在(x,y)位置执行下一条指令,得到返回结果,重复步骤4
我觉得主要难点在第2条,虽然我之前接触过nlp模型,但是完全没法想象服务器端的大模型参数量是多么庞大,每次预测结果可能有好几百个词吧,一次生成一个token串行100次都能实现实时响应那得是多大的内存和多少cpu并行。