由 Arash Sadrieh Tahir Azim 和 Tengfui Xue 于 2024年6月27日发表于 人工智能,AWS Trainium 永久链接评论 分享
NinjaTech AI的使命是通过高效、经济的人工智能AI代理,让人人都能够更高效。我们最近推出的MyNinjaai是全球首批多代理个人AI助手之一,旨在推动我们的使命。MyNinjaai依托专用代理构建,能够代表用户完成任务,包括安排会议、进行深度网络研究、生成代码和协助写作。这些代理可以将复杂的多步骤任务分解为分支解决方案,并在动态评估所生成的解决方案的同时,不断学习过去的经验。所有这些任务都是以完全自主和异步的方式完成,让用户可以在日常工作中继续进行,而Ninja会在后台处理这些任务,并在需要时与用户互动。
由于没有单一的大型语言模型LLM可以完美解决所有任务,我们知道构建个人AI助手需要多个专为不同任务优化的LLM。为了提供令人满意的精确度和能力,我们也清楚这些模型需要协同工作。最后,我们需要可扩展且成本有效的方法来训练这些不同模型这一目标对于大多数初创企业来说,历来都是一道难题。本文将介绍如何利用AWS Trainium芯片构建我们先进的生产力代理NinjaLLM,这是MyNinjaai的支柱。
我们很早就意识到,为了实现代表用户处理任务的使命,我们需要优化特定任务的多个模型。示例包括我们的深度研究者Deep Researcher、深度编码器Deep Coder和顾问Advisor模型。在测试现有开源模型后,我们认为仅通过提示工程很难满足我们的需要,现成的能力和响应都不够。例如,在对开源模型的测试中,我们确保每个模型优化为ReAct/链式思维形式的提示。此外,我们希望模型能够在作为检索增强生成RAG系统的一部分时,准确引用每一个来源,避免对“我不知道”的偏向,避免生成错误答案。为了实现这一目标,我们选择对各种下游任务进行微调模型。
在构建训练数据集时,我们的目标有两个:使每个模型适应其特定的下游任务和角色研究者、顾问、编码器等,并使模型遵循特定的输出结构。为此,我们借鉴了Lima方法进行微调。我们使用大约2000万个token的训练样本,集中注意输出的格式和语气,同时使用一个多样但相对较小的样本集。为了构建有监督的微调数据集,我们首先为每个模型创建初始种子任务。利用这些种子任务,我们生成了初始合成数据集,并使用Meta的Llama 2模型进行初轮微调。为了初步评估该微调模型的性能,我们通过众包用户反馈迭代创建更多样本。我们还使用了一系列基准测试包括内部和公共测试,评估模型性能并持续迭代。
我们选择从Llama模型开始作为预训练基模型,主要原因有:其开箱即用的优秀性能、来自各种库的强大生态支持,以及真正的开源和宽松的许可证。当时我们开始使用Llama 2,测试了不同的规模7B、13B和70B。在训练方面,我们选择使用一组trn132xlarge实例,以利用Trainium芯片的优势。我们使用32个实例的集群以高效并行化训练。我们还使用了AWS ParallelCluster来管理集群编排。通过使用Trainium实例的集群,每次微调迭代花费不到3小时,成本不到1000美元。这个快速的迭代时间和低成本使我们可以迅速调整和测试模型,提升模型的准确性。为了达到以下各节所述的准确性,我们仅花费大约3万美元,节省了数十万甚至数百万美元的训练费用,如果我们使用传统的训练加速器。
以下图示展示了我们的训练架构。
在建立了基于Trainium的微调管道之后,我们能够利用Neuron分布式训练库对模型进行微调和优化。这在MyNinjaai上线前格外及时,因为Meta的Llama 3模型也发布了。Llama 3与Llama 2具有相似的架构,因此我们能够快速升级到更新的模型。这一迅速的转变使我们能够充分利用模型准确率的固有提升,并迅速使用Llama 3的权重进行下一轮微调,为发布做好准备。
飞鱼加速器破解版在评估模型时,我们有两个目标:评估模型回答用户问题的能力,以及评估系统使用提供的来源回答问题的能力,因为这是我们个人AI助手的主要界面。我们选择了HotPotQA和Natural Questions (NQ) Open数据集,因其为良好的适合,且具备公开的基准数据集和公开排行榜。
我们通过将模型的答案与预期答案进行匹配来计算准确性,并使用从维基百科语料库中检索的前10个段落。我们使用ColBERTv2进行内容过滤和排名。我们在NQ Open数据集上达到了6222的准确性,在HotPotQA上达到了5884,显示出相较于其他基准模型的显著提升。下图总结了我们的结果。
展望未来,我们在继续提高模型性能和用户体验方面正着手于几项发展。首先,我们打算使用ORPO对模型进行微调。ORPO结合了传统微调与偏好对齐,并使用单一的偏好对齐数据集。我们相信这将使我们模型更好地对齐,从而为用户提供更佳效果。
此外,我们还打算从目前为止微调的各种模型构建一个自定义的集成模型。受Mixture of ExpertMoE模型架构的启发,我们希望引入路由层来整合我们的各个模型。我们相信,这将大大简化我们的模型服务和扩展架构,同时保持个人AI助手为用户提供的多任务质量。
构建下一代AI代理使每个人更高效是NinjaTech AI实现其使命的途径。为使这一变革技术的访问民主化,获得高性能计算机、开源模型及工具生态系统至关重要,这些都能够使每个新代理的训练既高效又经济。AWS的专用AI芯片、对顶级开源模型的访问,以及其训练架构使这一切成为可能。
欲了解更多关于我们如何构建NinjaTech AI的多代理个人AI的信息,请阅读我们的白皮书。您还可以在MyNinjaai免费尝试这些AI代理。
Arash Sadrieh是NinjaTechai的联合创始人和首席科学官。Arash与他人共同创立了NinjaTechai,旨在通过AI代理处理耗时任务来提升每个人的生产力。这个愿景是在他担任AWS高级应用科学家的期间形成的,他在此期间推动了显著的基础设施效率研究,获得了多项针对优化核心基础设施的专利。他拥有计算机建模和仿真的博士学位,并与牛津大学、悉尼大学和CSIRO等著名机构合作。在进入行业之前,Arash进行了博士后研究,并在诸如《自然通讯》等高影响力期刊上发表了多篇论文。
Tahir Azim是NinjaTech的员工软件工程师。Tahir专注于NinjaTech的Inf2和Trn1基础的训练与推理平台以及其访问这些平台的统一网关和基于RAG的研究技能。在亚马逊担任高级软件工程师期间,他构建了数据驱动的系统,以最优利用亚马逊的全球互联网边缘基础设施,从而降低成本、拥堵和延迟。在进入行业之前,Tahir在斯坦福大学获得计算机科学硕士和博士学位,并在巴基斯坦的NUST国立科技大学担任了三年的助理教授,完成了在EPFL进行的快速数据分析系统的博士后研究。Tahir在VLDB、USENIX ATC、MobiCom和MobiHoc等顶级会议上发表了多篇论文。
Tengfei Xue是NinjaTech AI的应用科学家。他目前的研究兴趣包括自然语言处理和多模态学习,特别是利用大型语言模型和大型多模态模型。Tengfei在悉尼大学计算机科学学院完成了博士学位,专注于利用各种模态进行深度学习的医疗保健领域。他还曾在哈佛大学数学成像实验室Laboratory of Mathematics in Imaging担任访问博士生,研究复杂几何数据的3D计算机视觉。
加载评论