基于Intel BigDL-LLM开发ReadIT的心得

1.引言

        这个项目的起源是参加Intel举办的BigDL大模型竞赛,这个竞赛旨在鼓励开发者利用Intel的BigDL框架和大型模型库来创新和解决实际问题。我们团队被这个机会所吸引,看到了在视觉和语音交互领域创新的巨大潜力。我们决定开发一个能将图像内容转换为语音描述的AI应用,这个应用的创意来源于团队成员的孩子要求父亲讲故事,于是就有了利用LLM改写绘本故事的想法。随后我们也意识到这个应用也可以用来为视障人士提供辅助,桥接视觉信息与语音输出之间的差距,使得视觉受限的人群能够通过听觉来理解和感知周围的世界。参加这场竞赛不仅为我们提供了展示技术实力的舞台,还促使我们深入研究并利用BigDL框架的高级功能和灵活性,从而开发出既创新又具有社会价值的应用程序。

2.技术背景

        BigDL-LLM 是一个针对大语言模型的优化加速库,是开源 BigDL 的一部分,通过 Apache 2.0 许可证发布。它提供了各种低精度优化(例如 INT4/INT5/INT8),并可利用多种英特尔® CPU集成的硬件加速技术(AVX/VNNI/AMX 等)和最新的软件优化,来赋能大语言模型在英特尔® 平台上实现更高效的优化和更为快速的运行。

        BigDL-LLM 的一大重要特性是:对基于 Hugging Face Transformers API 的模型,只需改动一行代码即可对模型进行加速,理论上可以支持运行任何 Transformers 模型,这对熟悉 Transformers API 的开发者非常友好。除了 Transformers API,很多人也会使用 LangChain 来开发大语言模型应用。为此,BigDL-LLM 也提供便于使用的 LangChain 的集成(3),从而让开发者能够轻松使用 BigDL-LLM 来开发新应用或迁移现有的、基于 Transformers API 或 LangChain API 的应用。此外,对于一般的 PyTorch 大语言模型(没有使用 Transformer 或 LangChain API 的模型),也可使用 BigDL-LLM 'optimize_model' API 一键加速来提升性能。

3.项目概述

        该应用的工作流程分为三个关键步骤,以实现从图像到语音的转换。

        首先是“图像到文本”(Image to Text)阶段,主要依赖于开源模型Recognize Anything。利用该项目的两款图像标记模型 RAM和Tag2Text,ReadIT有能力提取出图片上的关键信息,如物体、场景和活动等,将这些视觉内容转换为描述性文本。

        接着,在“文本到文本”(Text to Text)阶段,则主要使用了BigDL-LLM官方推荐的Baichuan2-13B-Chatchatglm2-6b两款开源模型。应用进一步处理这些描述性文本,进行语言优化和内容丰富,确保生成的文本既准确又易于理解。

        最后的“文本到语音”(Text to Voice)阶段,则使用了三款开源模型,分别是coqui/XTTS-v2,microsoft/speecht5_ttssuno/bark。应用将优化后的文本转换为清晰流畅的语音输出,使得用户可以通过听觉获取图像信息。

        为了提供用户友好的交互界面,我们选择了Streamlit来实现应用的前端。Streamlit的轻量化设计使得我们能够快速搭建出直观的界面,让用户能够轻松上传图片并接收语音反馈,无缝体验图像到语音的整个转换过程。这种设计不仅确保了应用的高效性和易用性,还为用户提供了一个直观且互动性强的使用环境。

4.开发过程

  在整个开发过程中,我们面临的最大挑战出现在文本生成阶段。特别是使用Baichuan2-13B-Chat模型时,我们注意到它们生成的内容质量较高,展现出更优的内容逻辑性和语句流畅度,这在比较中显得尤为突出。然而,这款模型的表现不够稳定,其输出质量波动无常。此外,由于模型规模的增大,导致推理速度变慢,这成为一个显著的不足。性能的不稳定性和文本生成的延迟成为我们面临的主要障碍,影响了持续输出高质量、逻辑一致内容的能力。挑战在于如何在追求高品质、逻辑连贯的文本和实际需要迅速可靠输出之间找到平衡,尤其是在迅速生成内容至关重要的场景中。


文本生成的流程图

  模型调用及生成prompts的部分代码参考,

import torch

from bigdl.llm.transformers import AutoModelForCausalLM

from transformers import AutoTokenizer

class BaiChuan():

    MODEL_PATH="baichuan-inc/Baichuan2-13B-Chat"

    BAICHUAN_PROMPT_FORMAT = "<human>{prompt} <bot>"

    PRETRAINED_PATH=f'pretrained/{MODEL_PATH}-bigdl-llm-INT4'

from data_models.tags_and_caption import TagsAndCaption

class PromptProcessor():

    def __init__(self) -> None:

        self.story_prompt = '''

        Your job is to tell a story based on the below picture. Your audience will be 4 - 6 years old children.

        Here is the picture, it shows {caption}.

        The picture contians: {image_tags}.

        Here are more details:

        The upper left of the picture shows {upper_left_caption}

        The upper left corner contains {upper_left_tags}

        The upper right of the picture shows {upper_right_caption}

        The upper right corner contains {upper_right_tags}

        The lower left of the picture shows {lower_left_caption}

        The lower left corner contains {lower_left_tags}

        The lower right of the picture shows {lower_right_caption}

        The lower right corner contains {lower_right_tags}

        '''

5.BigDL-LLM加速库实验

  在本次实验中,我们分别使用了两款云服务器进行大模型的推理运算,在两种平台上进行了BigDL-LLM性能优化的实验。

  基于Intel云服务器的实验

  服务器配置:

Processors: 16 Intel® Xeon® Platinum 8171M CPU @ 2.60GHz

Memory: 64G

  众所周知,深度学习模型的推理要进行大量矩阵运算,在CPU上进行这些运算是非常吃力的,而大模型对算力要求极高,这使得在CPU上进行开源大模型应用的开发寸步难行。以THUDM/chatglm2-6b模型为例,在本实验Intel云服务器上调用32 token的completion推理耗时6m8s(图一)。

图一

  同样的,若直接在CPU上用该模型进行本报告中的故事创作,单次推理耗时达到了惊人的137m18s(图二)。

图二

  在使用BigDL-LLM进行加速后,相同的使用场景仅分别耗时5s(图三),1m10s(图四),速度提升超过100倍。并且随着文本长度的增加,BigDL-LLM的性能提升幅度越大。

图三
图四

  我们注意到BigDL-LLM能够更加充分地发挥CPU的硬件优势,加速后CPU使用率从32%(图五)提升到了84%(图六)。

图五
图六

基于AMD云服务器的实验

服务器配置:

Processors: 16 AMD EPYC 7763 64-Core Processor

Memory: 64G

令人感到惊喜的是,虽然BigDL-LLM是针对Intel XPU平台的加速库,但在AMD云服务器上依然能够取得优秀的加速效果。在故事推理的场景下能够取得9m44s的成绩。

图七

6.最终效果



ReadIT Demo

7.未来方向

        在竞赛的初赛阶段,我们的目标是构建一个能够基于单一图像生成语音的端到端系统。系统支持中文和英文的内容输出,能够适应多种应用场景,如旅游指导、教育辅助等,增强了其应用的广泛性和实用性。此外,我们还开发了一个基于Web的交互界面,使用户能夜方便地上传图片并接收相应的语音输出,提升了用户体验。

        后续,我们将基于当前版本,针对特定应用场景深化系统功能。可以实现智能博物馆导览、故事机器人和视障辅助工具三个场景,这些应用将能够根据多图输入生成更加丰满和连贯的文本内容,更好地满足用户需求。同时,我们将引入支持多种人声风格的功能,为用户提供更加个性化和多样化的语音内容选择。为了确保系统的实用性,我们将进一步优化推理速度,以提供可接受的性能表现,确保用户在使用过程中能够获得流畅且连贯的体验。

8.结论

        在这个项目开发过程中,我们深化了对AI领域,尤其是图像识别和语音合成技术的理解。学会了如何将复杂的AI模型和算法应用于实际问题,解决了从图像内容理解到语音输出生成的一系列技术挑战。此外,还获得了在高压竞赛环境下快速学习和适应新技术的能力,以及团队协作和项目管理的宝贵经验。这些学习成果不仅对我们当前的项目有重要贡献,也为我的职业生涯提供了宝贵的资本。

        在BigDL框架下开发AI应用意味着能够充分利用Intel的硬件加速技术,如使用Intel的CPU和GPU资源来加速模型训练和推理过程。这种硬件优化进一步提升了应用的性能,降低了延迟,使得我们的应用能够在实时环境中更加高效地运行,轻薄本也能高效的跑大模型,对于大模型应用的普及意义深远。


开发者团队:金光闪闪

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容