台智云在今年5月发表了福尔摩沙大模型,以可商用的开源模型BLOOM为基础,经连续预训练、全参数微调和人类回馈强化学习(RLHF)等三阶段优化而成。(图片来源/台智云)
以打造台湾杉2号超级电脑起家的华硕子公司台智云,在今年5月和9月先后揭露多款繁中语料优化的大型语言模型(LLM),不只有懂台湾文化的福尔摩沙系列模型(FFM),还有一系列企业级模型开发工具和无程式码平台,来供企业使用。
这是除了国科会可信任人工智慧对话引擎(TAIDE)外,另一个具本地知识和用语的LLM选择。
以繁中资料优化2种开源LLM
台智云总经理吴汉章指出,5月揭露的福尔摩沙大模型,是以可商用的开源模型BLOOM为基础,经连续预训练、全参数微调和人类回馈强化学习(RLHF)等三阶段优化而成。
他们用来训练模型的资料量高达1.5TB,其中包含繁中在内的46种人类语言、13种程式语言等无版权资料,共2千亿个Token。他们也针对微调,建置专用的问答组,来强化模型执行特定任务的能力。
经过3个月开发,福尔摩沙模型共有2个版本,也就是1,760亿参数版本和70亿参数版本。台智云技术长陈忠诚指出,福尔摩沙模型具备多语言、写程式和推理能力,在语言部分,不只繁体中文表现优异,可准确回答不少ChatGPT难以答对的问题,还特别加强东南亚语系的语言能力,为未来南向发展做准备。
今年9月,台智云更进一步揭露新模型FFM-Llama 2,包含70亿、130亿和700亿参数等3种版本。这款模型以Meta开源的Llama 2为基础,用繁中资料优化而成。与原Llama 2相比,不只能用繁体中文回答问题,而非如Llama 2会以英文回答中文问题,还能在写程式时,在程式码中保留所需的中文。
不只如此,台智云以这些模型为核心,进一步推出企业级大语言模型服务AFS,可细分为AFS Cloud和AFS Appliance两款产品。前者是云端托管服务,提供完整训练过的模型,来让企业以API呼叫使用,而后者则是地端部署方案,企业可下载大型模型到本地端环境部署,来执行LLM应用。在AFS的预训练模型库中,除了有福尔摩沙大模型和FFM-Llama 2模型,还有BLOOMZ、Llama 2、Code Llama等开源模型。
平行化运算是训练LLM关键
打造企业级LLM服务并不容易,台智云如何能这么快推出产品?关键是算力的准备。
训练和微调LLM需要大量算力,特别是千亿参数的庞大模型BLOOM,更需要一套有效的运算方法。早在2022年下半年,台智云就开始研究训练LLM所需的平行运算技术;他们的初始目标是,在台湾杉2号上,实际用3种平行化方法来训练BLOOM。
这3种平行化方法,包括将模型水平切割的工作流程平行化(Pipeline Parallelism)
、将模型垂直切割的张量平行化(Tensor Parallelism)
,以及使用前述两种平行化后,再将训练资料分割给不同GPU群运算的资料平行化(Data Parallelism)
。
为实作这3种平行化,他们首先修改模型训练程式码,来让模型训练时,可执行相对应的平行化,比如能使用不同的GPU资源。接著,他们解决一系列挑战,比如找到最佳切割组合、让每张GPU都能发挥最佳效能,以及分割时,解决GPU记忆体不够用的问题。
陈忠诚还点出,LLM训练需要好几个月,团队不只要实现同时调度大量GPU,比如训练福尔摩沙大模型,最高调度840片GPU来进行平行化运算,还要注意硬体故障问题,以防止训练流程中断。因此,台智云设计一套机制,能在硬体故障问题修复后,自动开始LLM训练流程。最终,他们成功在台湾杉2号上,最高调度840片GPU、同时进行平行化运算来训练BLOOM。这个成功经验,也用于FFM-Llama 2的训练上。
不只是算力,台智云还有不同方法,来解决LLM训练问题。比如,为确保训练资料品质,他们还自建一套自动辨识工具,来筛选训练资料,比如判断是否夹杂不预期的语言,是否含不适当内容以及低品质的资料等。
同时,为避免模型发生灾难性遗忘,忘记先前学习过的知识,台智云也特别分配训练资料集,比如每一批平均涵盖不同领域的资料、新旧混合等,来让模型均衡学习。这些方法综合起来,就打造出具备繁中知识、表现良好的福尔摩沙大模型和FFM-Llama 2。
台智云也将训练LLM累积的平行化经验,发展成容易自助操作的LLM训练服务。吴汉章表示,他们将平行化技术打包成无程式码平台,使用者点击滑鼠,选择各种想要微调的模型需求和条件,比如用1,200万字在1小时内完成Llama 2模型微调的组合条件,系统会自动根据这些条件,来调度相应GPU支援,自动进行平行化的模型训练任务,来降低企业训练LLM的门槛。他也揭露台智云下一步,不只要添加更多模型到AFS,还要往亚洲市场进一步推广算力服务。