来源:面包芯语
不过在这之前,我们首先需要向 Meta 申请模型下载的许可,方可开始下载,具体如何发送申请可以参考 Llama2 仓库中的说明和引导:https://huggingface.co/meta-llama/Llama-2-7b-hf
在运行项目仓库中的 export_ir.py 脚本后,会在本地指定路径中生成openvino_model.bin和 openvino_model.xml ,前者为模型参数文件,后者为模型结构文件。
(资料图)
这里再简单介绍下什么是 Optimum。Optimum 库是 Hugging Face 为了方便开发者在不同的硬件平台部署来自 Transformer 和 Diffuser 库的模型,所打造的部署工具,其中的 Optimum-Intel 库则支持在 Intel 平台部署模型时,调用 OpenVINO™ 工具套件作为模型的推理后端,提升任务性能。
最终效果如下:
我们采用 streamlit 框架构建构建聊天机器人的 web UI 和后台处理逻辑,同时希望该聊天机器人可以做到实时交互,实时交互意味着我们不希望聊天机器人在生成完整的文本后再将其输出在可视化界面中,因为这个需要用户等待比较长的时间来获取结果,我们希望在用户在使用过程中可以逐步看到模型所预测的每一个词,并依次呈现。因此需要利用 Hugging Face 的 TextIteratorStreamer 组件,基于其构建一个流式的数据处理 pipeline,此处的 streamer 为一个可以被迭代的对象,我可以依次获取模型迭代过程中每一次的预测结果,并将其依次添加到最终答案中,并逐步呈现。
当完成任务构建后,我们可以通过 streamlit run chat_streamlit.py 命令启动聊天机器,并访问本地地址进行测试。这里选择了几个常用配置参数,方便开发者根据机器人的回答准确性进行调整:
· max_tokens: 生成句子的最大长度。
· top-k: 从置信度对最高的k个答案中随机进行挑选,值越高生成答案的随机性也越高。
· top-p: 从概率加起来为p的答案中随机进行挑选, 值越高生成答案的随机性也越高,一般情况下,top-p会在top-k之后使用。
· Temperature: 从生成模型中抽样包含随机性, 高温意味着更多的随机性,这可以帮助模型给出更有创意的输出。如果模型开始偏离主题或给出无意义的输出,则表明温度过高。
标签: