• Faster R-CNN 还是 Dynamic R-CNN 的选择考量
    选择 Faster R-CNN 还是 Dynamic R-CNN 取决于具体任务需求、数据特性以及资源限制。1. 选择 Faster R-CNN 的场景任务需求:如果你的任务对检测速度要求较高,且场景相对简单(如目标尺寸较大、背景不复杂),Faster R-CNN 是一个成熟且稳定的选择。如果你需要快速实现一个目标检测模型,且对性能要求不是极致,Faster R-CNN 的代码和预训练模型资源丰富,易于上手。数据特性:数据分布较为均衡,目标尺寸较大,且场景复杂度较低时,Faster R-CNN 的表现已经足够好。资源限制:如果计算资源有限(如 GPU 显存较小),Faster R-CNN 的训练和推理开销相对较低。总结: Faster R-CNN 适合初学者、简单场景或对速度要求较高的任务。2. 选择 Dynamic R-CNN 的场景任务需求:如果你的任务对检测精度要求较高,尤其是小目标检测或复杂场景(如目标尺寸变化大、背景复杂),Dynamic R-CNN 的动态调整机制可以显著提升性能。如果你需要在一个竞赛或研究项目中取得更好的性能,Dynamic R-CNN 是一个更先进的选择。数据特性:数据分布不均匀,目标尺寸变化大,或者小目标较多时,Dynamic R-CNN 的动态 IoU 阈值机制可以更好地适应数据分布。资源限制:如果计算资源充足(如 GPU 显存较大),Dynamic R-CNN 的训练和推理开销虽然较高,但性能提升明显。总结: Dynamic R-CNN 适合对精度要求高、场景复杂或需要处理小目标的任务。3. 直接对比特性Faster R-CNNDynamic R-CNN检测精度较高更高(尤其在小目标和复杂场景)检测速度较快稍慢(动态调整增加计算开销)训练稳定性稳定需要调参(动态机制更复杂)适用场景简单场景、大目标复杂场景、小目标资源需求较低较高实现难度简单(代码和教程丰富)较复杂(需要理解动态机制)4. 建议如果你是初学者,或者任务场景简单,建议从 Faster R-CNN 开始,它易于实现且性能足够。如果你需要更高的精度,或者任务场景复杂(如小目标检测),建议选择 Dynamic R-CNN,尽管实现和训练会更复杂,但性能提升显著。5. 其他考虑如果你对速度要求极高,可以考虑单阶段检测模型(如 YOLO 或 SSD)。如果你对精度要求极高,可以考虑更先进的模型(如 Cascade R-CNN 或 Transformer-based 检测模型)。
  • [其他] Faster R-CNN与Dynamic R-CNN的区别
    Faster R-CNN 和 Dynamic R-CNN 都是目标检测模型,主要在区域提议网络(RPN)和分类回归头的设计上有所不同。1. Faster R-CNNRPN: 使用固定的IoU阈值(通常为0.7)生成候选区域。分类与回归头: 采用固定的IoU阈值(通常为0.5)进行正负样本分配。训练稳定性: 由于固定阈值,训练过程相对稳定,但可能无法适应数据分布的变化。2015年: Faster R-CNN 由 Shaoqing Ren、Kaiming He、Ross Girshick 和 Jian Sun 提出。背景: 在 Fast R-CNN 的基础上,为了解决 Selective Search 等外部区域提议方法效率低下的问题,提出了区域提议网络(RPN),将区域提议和目标检测统一到一个网络中。贡献:引入 RPN,实现端到端训练。大幅提升检测速度,同时保持高精度。论文: 《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》(NIPS 2015)。2. Dynamic R-CNN动态RPN: 根据训练进度动态调整IoU阈值,初期使用较低阈值,后期逐步提高,以生成更高质量的候选区域。动态分类与回归头: 同样动态调整IoU阈值,初期使用较低阈值,后期逐步提高,以提升检测精度。训练适应性: 动态调整机制能更好地适应数据分布变化,提升模型性能。2020年: Dynamic R-CNN 由 Hongkai Zhang、Hong Chang、Bingpeng Ma 等人提出。背景: 在 Faster R-CNN 的基础上,针对固定 IoU 阈值在训练过程中无法适应数据分布变化的问题,提出了动态调整机制。贡献:动态调整 RPN 和分类回归头的 IoU 阈值。提升了模型在复杂场景和小目标检测中的性能。论文: 《Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training》(ECCV 2020)。3. 主要区别IoU阈值: Faster R-CNN使用固定阈值,Dynamic R-CNN动态调整。训练策略: Faster R-CNN训练稳定但适应性差,Dynamic R-CNN通过动态调整提升性能。性能: Dynamic R-CNN通常在小目标和复杂场景中表现更好。4. 总结Faster R-CNN: 简单稳定,适合一般场景。是目标检测领域的里程碑,奠定了两阶段检测框架的基础。Dynamic R-CNN: 动态调整阈值,性能更优,适合复杂场景。是对 Faster R-CNN 的改进,通过动态调整机制进一步提升了性能。时间线:年份模型主要贡献2015年Faster R-CNN引入 RPN,实现端到端训练,提升检测速度与精度。2020年Dynamic R-CNN动态调整 IoU 阈值,提升复杂场景下的检测性能。
  • [其他] 深度学习训练过程的随机性
    深度学习的训练过程存在随机性,主要体现在以下几个方面:权重初始化神经网络的权重通常随机初始化,不同的初始值会影响模型的收敛路径和最终性能。数据 shuffling训练数据在每个 epoch 前会被随机打乱,导致每次训练时数据顺序不同,影响梯度更新。DropoutDropout 随机丢弃部分神经元,防止过拟合,但每次训练时丢弃的神经元不同,增加了随机性。优化器中的随机性如 SGD 中的随机梯度采样,或 Adam 中的动量计算,都会引入随机性。数据增强对数据进行随机变换(如旋转、裁剪等),每次训练时增强方式不同,增加了随机性。硬件和软件实现浮点运算的精度和并行计算的顺序也会带来微小的随机性。影响模型性能:相同的超参数和数据集可能产生不同的结果。可复现性:即使设置相同的随机种子,不同硬件或软件环境下结果也可能不同。应对措施设置随机种子:固定随机种子可以提高实验的可复现性。多次实验:通过多次训练取平均结果,减少随机性影响。
  • [技术干货] J市JJ银行合规大模型银行一体化应用平台实战“术”分享-代码框架迁移
             上回讨论到了Python代码迁移,必须先把调用SO库重新编译,可以借助port advisoring来搜索SO库,然后重新编译。众所周知,代码运行都需要一个框架。         框架在编译后才能重新使用,当时项目有一个适配测试环节,从一个环境迁移到鲲鹏平台,都是第一次吃螃蟹。螃蟹怎么吃?银行给出了一个测试环境,让每个应用在迁移前都要确保适配成功。        当时环境配置比较简单,一个节点+1P算力+5T的对象存储。在这个节点上进行代码适配。我们当时需要测试的小模型有5个:OCR图片识别、实物分割、沙箱测试、法规自动匹配、报告自动生成。       这五个模型都跟银行合规业务有关联,比如第一个模型通过上传的票据扫描件识别出文字,在银行存在大量表单需要自动识别;第二个通过在一张图片里分离出需要认识的章,第三个是安全方面,合同等很多文本不需要上传到外网,需要有安全沙箱保护;第四个是法规条文识别之后,自动判断哪些是适合JJ银行内部使用;第五个是合规报告文本自动生成并发送给行内系统,下发到对应部门。        这五个模型在节点测试的表现不一,OCR秒级出结果,实物分割分钟级出结果,沙箱测试和其他二者都顺利测试通过。        其实在这之前,实物分割模型测试是出了点故事的。实物分割之前采用的两个技术,首先实物轮廓识别出来,其次要把同类标识出来。标注实物是一个经验活,这对于项目组来说,是有些难度了。最后,这个专家资源通过JJ银行内部获取到了,才得以把同类标注的难题解决了。
  • [技术交流] J市JJ银行合规大模型银行一体化应用平台实战“术”分享-代码框架迁移
    上回讨论到了Python代码迁移,必须先把调用SO库重新编译,可以借助port advisoring来搜索SO库,然后重新编译。众所周知,代码运行都需要一个框架。框架在编译后才能重新使用,当时项目有一个适配测试环节,从一个环境迁移到鲲鹏平台,都是第一次吃螃蟹。螃蟹怎么吃?银行给出了一个测试环境,让每个应用在迁移前都要确保适配成功。当时环境配置比较简单,一个节点+1P算力+5T的对象存储。在这个节点上进行代码适配。我们当时需要测试的小模型有5个:OCR图片识别、实物分割、沙箱测试、法规自动匹配、报告自动生成。这五个模型都跟银行合规业务有关联,比如第一个模型通过上传的票据扫描件识别出文字,在银行存在大量表单需要自动识别;第二个通过在一张图片里分离出需要认识的章,第三个是安全方面,合同等很多文本不需要上传到外网,需要有安全沙箱保护;第四个是法规条文识别之后,自动判断哪些是适合JJ银行内部使用;第五个是合规报告文本自动生成并发送给行内系统,下发到对应部门。这五个模型在节点测试的表现不一,OCR秒级出结果,实物分割分钟级出结果,沙箱测试和其他二者都顺利测试通过。其实在这之前,实物分割模型测试是出了点故事的。实物分割之前采用的两个技术,首先实物轮廓识别出来,其次要把同类标识出来。标注实物是一个经验活,这对于项目组来说,是有些难度了。最后,这个专家资源通过JJ银行内部获取到了,才得以把同类标注的难题解决了。
  • [案例共创] 【案例共创】AI Agent应用构建开发最佳实践和体验评测
    关于华为云ModelArts系列产品的AI Agent应用构建开发最佳实践和体验评测,以下是一些关键点:ModelArts平台概述:ModelArts是华为云推出的一站式人工智能开发平台,提供全面的支持,包括数据预处理、分布式训练、自动化模型生成以及模型部署等功能。它支持多种机器学习和深度学习框架,如TensorFlow、PyTorch、Caffe等,使得开发者可以根据需求选择合适的框架进行开发。AI Agent应用构建:结合华为Maas(大模型即服务)和开源的Agent三方框架(如Dify、MaxKB、FastGPT等),可以构建知识问答、聊天助手等AI应用程序。基于ModelArts Notebook开发环境和开源应用框架(如Langchain、llamaindex等),也可以构建AI应用程序。开发实践和体验评测:ModelArts提供了丰富的功能,如自动化的超参调整、模型评估功能,以及图形化界面和命令行接口,方便开发者进行高效的操作。对于AI Agent的实战,可以遵循“三步构建,七步优化”的方法,以适应企业生产场景。ModelArts的AIGallery中预置了大量模型、算法、数据和Notebook等资产,供开发者快速上手使用。平台优势和应用技巧:ModelArts支持数据治理,包括数据筛选、标注等,提供数据集版本管理,特别适用于深度学习的大数据集。通过自研的MoXing深度学习框架,ModelArts在模型训练方面表现出高效性和易用性。总的来说,华为云ModelArts为AI开发者提供了一个强大且灵活的平台,适用于构建各种AI应用,特别是AI Agent应用。通过结合不同的框架和技术,开发者可以高效地构建、训练和部署AI模型。我正在参加【案例共创】第1期 书写云产品应用构建开发最佳实践/评测,共创官方文档https://bbs.huaweicloud.com/forum/thread-0217170307934787108-1-1.html
  • [其他] Datumaro数据集管理工具介绍
    ModelArts里的数据集的订阅后的保存和同步,是通过Datumaro来处理的,下面是介绍。Datumaro 是由 Intel 的 OpenVINO (Open Visual Inference and Neural Network Optimization)团队开发和维护的工具。OpenVINO 是一个专注于计算机视觉和深度学习推理的工具包,而 Datumaro 则是其生态系统中的一部分,专注于数据集的管理和处理。它支持多种数据集格式,并提供了丰富的功能来操作和转换这些数据集。主要功能数据集转换:支持多种数据集格式(如 COCO、YOLO、Pascal VOC 等)之间的相互转换。数据集合并:可以将多个数据集合并为一个。数据集分割:可以将数据集按比例分割为训练集、验证集和测试集。数据集过滤:可以根据特定条件过滤数据集中的样本。数据集统计:生成数据集的统计信息,如类别分布、样本数量等。数据集可视化:提供可视化工具,帮助用户查看数据集中的样本。使用方法datumaro.sh 是 Datumaro 的命令行接口脚本,用户可以通过命令行调用该脚本来执行各种操作。以下是一些常见的使用示例:转换数据集格式:./datumaro.sh convert -i input_path -o output_path -f coco这将把 input_path 中的数据集转换为 COCO 格式,并保存到 output_path。合并数据集:./datumaro.sh merge -i path1 -i path2 -o output_path这将合并 path1 和 path2 中的数据集,并保存到 output_path。分割数据集:./datumaro.sh split -i input_path -o output_path --subset train:0.8 --subset val:0.2这将把 input_path 中的数据集按 80% 训练集和 20% 验证集的比例分割,并保存到 output_path。过滤数据集:./datumaro.sh filter -i input_path -o output_path -e '/item/annotation[label="cat"]' 这将过滤 input_path 中的数据集,只保留标签为 “cat” 的样本,并保存到 output_path。生成数据集统计信息:./datumaro.sh stats -i input_path这将生成 input_path 中数据集的统计信息并输出到控制台。可视化数据集:./datumaro.sh visualize -i input_path -o output_path这将可视化 input_path 中的数据集,并将结果保存到 output_path。安装与配置要使用 datumaro.sh,首先需要安装 Datumaro。可以通过以下步骤进行安装:克隆仓库:git clone https://github.com/openvinotoolkit/datumaro.git cd datumaro安装依赖:pip install -r requirements.txt运行脚本:./datumaro.sh总结datumaro/datumaro.sh 是一个功能强大的工具,适用于需要处理和分析计算机视觉数据集的用户。它提供了丰富的命令行接口,使得数据集的操作变得简单高效。无论是数据集格式转换、合并、分割,还是过滤和统计,Datumaro 都能满足用户的需求。
  • ModelArts本地发起预测请求报错
    本地控制台报503错误码,有没有大佬尝试过本地预测请求成功的
  • [分享交流] 2025年,互联网技术会有什么更新,你有什么期待呢 。
    2025年,互联网技术会有什么更新,你有什么期待呢 。更加智能的AI,还是云技术的发展亦或是物联网的发展,大家畅所欲言,
  • [分享交流] 一个并发功能点使用Rust和Python融合编程的实战“术”分享
    有这样的一个业务场景:场景出现了3个并发分支,这个场景是在终端产品上运行,产品硬件资源非常有限,同时有Python和Rust融合编程,Python实现功能,Rust在外层封装并对外提供接口,通过这样的模式,最终完成了场景功能开发。这个场景功能编程的经历,让我对Rust充满期待并非常看好它的未来发展。由于未来根据应用场景的不断涌现,使用Rust语言和其他编程语言混合使用的场景会越来越丰富,甚至在未来三年会有一个爆发式小高潮,因此Rust语言未来会出现井喷式发展趋势。Rust的优势非常多,在我司Rust主要是和C/C++混合的场景应用比较深,例如无线LTE单板软件的开发应用,这种语言对于要求编程安全和资源受限的场景来说,都非常适用的。例如它在安全方面的设计和限制因素,让很多语言的编程安全问题迎刃而解。例如,全局变量限制使用,内存泄漏的检查等,Rust有一套比较完整的机制措施。举了应用场景和Rust优势的例子后,我们来看看这些优势会带来哪些发展机会。机会点1——手机终端产品软件编程。由于手机终端产品的资源非常有限,但手机应用消耗资源会越来越大,这要求软硬件设计非常关注资源占用。对资源占用极度友好的编程语言Rust,它恰好符合这样的条件要求。机会点2——国防JD的软件编程。这是对安全级别要求最高的领域,涉及国家机密,因此选择为编程安全而生的Rust是不二之选。机会点3——未来出现一些超大型超复杂的业务场景,例如航天场景和深海探索场景,很多是复合场景。单一语言不能实现全部功能,需要结合另一种语言,二者融合在一个平台上应用。Rust编译框架适合语言混合使用的优势,让它跟其他编程语言共生,从而应用到超大型超复杂的业务场景。 “我正在参加【案例共创】第1期 书写云产品应用构建开发最佳实践/评测,共创官方文档https://bbs.huaweicloud.com/forum/thread-0217170307934787108-1-1.html”
  • [模型管理] 为什么AI GALLERY里的模型不能直接用来部署呢?
    比如下图的这个 图像分类ResNet50-EI-Backbone, 它的介绍有这样说: 本算法的预训练模型使用的是华为云EI服务产品部自研的视觉算法, 在ImageNet线性评估上取得了SOTA的结果。算法基于Deep Residual Learning for Image Recognition中提出的模型结构实现,该算法会载入华为云EI服务产品部自研的backbone预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。这个里面是有一个预训练模型的,是否可以直接使用这个预训练模型做部署和推理呢?我想试试不做微调训练它的准确性。
  • [其他] 自动学习AutoML介绍
    Modelarts里面有特别容易上手使用的自动学习,完全0编码0调参,它使用的技术是AutoML,下面是一些介绍。AutoML(Automated Machine Learning,自动化机器学习) 是一种通过自动化流程来简化机器学习模型开发的技术。它的目标是减少人工干预,使非专家用户也能高效地构建和部署机器学习模型。AutoML 涵盖了从数据预处理、特征工程、模型选择、超参数优化到模型部署的整个机器学习流程。AutoML 的核心组成部分数据预处理自动化自动处理缺失值、数据标准化、编码分类变量等。例如:自动检测数据中的异常值并进行处理。特征工程自动化自动生成、选择和转换特征。例如:自动创建交互特征、多项式特征或基于领域知识的特征。模型选择自动化自动选择适合任务的机器学习算法(如决策树、支持向量机、神经网络等)。例如:根据数据集的特点自动选择分类或回归模型。超参数优化自动化自动搜索模型的最佳超参数组合。常用方法:网格搜索(Grid Search)、随机搜索(Random Search)、贝叶斯优化(Bayesian Optimization)等。模型评估与选择自动评估模型的性能(如准确率、F1分数、AUC等),并选择最佳模型。例如:通过交叉验证自动比较多个模型的性能。模型部署自动化自动将训练好的模型部署到生产环境。例如:生成API接口或集成到现有系统中。AutoML 的优势降低门槛使非专家用户也能轻松使用机器学习技术。减少对数据科学家和机器学习工程师的依赖。提高效率自动化流程可以显著减少模型开发时间。快速迭代和实验,加速模型优化。减少人为错误自动化流程可以减少人为操作中的错误。例如:避免手动调参时的遗漏或错误。可扩展性可以处理大规模数据集和复杂任务。例如:自动扩展到分布式计算环境。最后,无论是初学者还是专家,都可以通过 AutoML 快速构建高性能的机器学习模型。
  • [其他] 图像分类数据集介绍
    1. 猫狗分类数据集Kaggle Dogs vs. Cats简介:经典的猫狗分类数据集,包含猫和狗的图像。规模:25,000张图像(12,500张猫,12,500张狗)。图像大小:可变。用途:适合二分类任务,常用于深度学习入门。2. 花卉分类数据集Oxford 17 Category Flower Dataset简介:包含17种花卉类别的图像数据集。规模:每类80张图像,共1,360张图像。图像大小:可变。用途:适合中等规模的多类别分类任务。Kaggle Dogs vs. Cats 是一个经典的二分类数据集,适合入门和快速实验。Oxford 17 Category Flower Dataset 是一个中等规模的数据集,适合多类别分类任务。3. MNIST简介:手写数字数据集,包含0到9的灰度图像。规模:60,000张训练图像,10,000张测试图像。图像大小:28x28像素。用途:入门级数据集,常用于算法验证和教学。4. CIFAR-10简介:包含10个类别的彩色图像,如飞机、汽车、鸟、猫等。规模:50,000张训练图像,10,000张测试图像。图像大小:32x32像素。用途:适合初学者和中等复杂度的模型训练。5. CIFAR-100简介:CIFAR-10的扩展版本,包含100个类别。规模:50,000张训练图像,10,000张测试图像。图像大小:32x32像素。用途:适合更复杂的分类任务。6. ImageNet简介:大规模图像数据集,包含1,000个类别,涵盖广泛的物体和场景。规模:超过140万张训练图像,5万张验证图像。图像大小:可变(通常调整为224x224像素用于深度学习模型)。用途:深度学习模型的基准数据集,尤其是卷积神经网络(CNN)的预训练。对于初学者,可以从MNIST、CIFAR-10等小型数据集开始,逐步过渡到ImageNet等大规模数据集。
  • [其他] 物体检测开源数据集介绍
    物体检测是物体分类基础上进一步的任务,下面是:物体检测开源数据集介绍1. PASCAL VOC简介: PASCAL VOC(Visual Object Classes)是物体检测领域的经典数据集,广泛应用于图像分类、目标检测、语义分割等任务。版本: 主要版本有VOC2007和VOC2012。数据量: 约11,000张图像,27,000个标注对象。类别: 20个类别,包括人、车、动物等。标注: 提供对象边界框和类别标签,部分数据包含像素级分割标注。特点: 数据量较小,适合算法验证和初步研究。2. MS COCO简介: MS COCO(Common Objects in Context)是微软发布的大规模数据集,适用于目标检测、分割、关键点检测等任务。数据量: 超过330,000张图像,2.5百万个标注实例。类别: 80个类别,涵盖日常物体。标注: 提供对象边界框、分割掩码、关键点等丰富标注。特点: 数据量大,场景复杂,适合训练深度学习模型。3. 其他相关数据集ImageNet: 主要用于图像分类,包含1400多万张图像,2万多个类别,部分数据有边界框标注。Open Images: 谷歌发布的大规模数据集,包含900多万张图像,600多个类别,标注包括边界框、分割掩码、关系标注等。KITTI: 专注于自动驾驶,提供2D和3D边界框、光流、深度图等标注。Cityscapes: 专注于城市场景语义理解,提供5000张精细标注和20000张粗略标注的图像,适用于语义分割和实例分割。LVIS: 针对长尾分布问题,包含1200多个类别,标注包括实例分割掩码。总结PASCAL VOC: 适合初步研究和算法验证。MS COCO: 适合深度学习模型训练和评估。其他数据集: 如ImageNet、Open Images、KITTI、Cityscapes、LVIS等,各有侧重,可根据需求选择。
  • [案例共创] 【案例共创】在开发者空间使用 MateChat 和Mass快速开发智能对话界面
    一、案例介绍MateChat 致力于构建不同业务场景下高一致性的 GenAI 体验系统语言,同时匹配各种工具/平台的原生业务场景和界面特征,提供更适合研发工具领域的对话组件,打造流畅亲和、跨界一致、易学易用的用户体验,以及易接入、易维护、易扩展的开发体验。开源仓库地址: cid:link_6Mass(即 ModelArts Studio 大模型即服务平台)是华为云面向 AI 开发者推出的一站式大模型开发平台,支持开发者一键体验大模型能力,快速构建大模型应用。Mass 平台提供大模型训练、推理、部署、管理、监控等全生命周期管理能力,帮助开发者快速构建大模型应用,加速 AI 开发。开发者空间是华为云面向开发者提供的云上开发环境,支持开发者快速创建、部署、调试、运行、管理应用。开发者空间提供丰富的开发工具和资源,支持开发者快速构建应用,加速开发。本案例中我们使用华为云开发者空间,基于 MateChat 和 Mass 快速开发智能对话界面。二、免费领取云主机如您还没有云主机,可点击链接,根据领取指南进行操作。如您已领取云主机,可直接开始案例实践。三、操作流程💡 说明:本实验需要华为云账号,且经过实名认证本实验需要开发者空间账号,且经过实名认证如您还没有云主机,可点击链接,根据领取指南进行操作。仅“华东二”区域支持使用 ModelArts Studio 大模型即服务平台(MaaS)。MaaS 是白名单功能,请先申请权限。① 通过开发者空间云主机的 Firefox 浏览器访问并开通 ModelArts Studio 模型即服务。本次实验采用的 Qwen2_5-72B-Instruct 。② 通过终端从 cid:link_7 获取源代码,源代码基于 Vite+Vue3+Express 实现 MateChat 的应用。③ 通过 Firefox 浏览器访问本地部署的 MateChat 应用,体验智能对话。四、用到资源云资源消耗/时时长开发者空间-云主机免费30minModelArts Studio免费30min合计:0 元五、实践步骤1、环境开通及源代码获取1.1 配置云主机工欲善其事必先利其器,首先配置云主机并使用 Euler 的 JS 工具集(Nodejs + Git),当然如果您已经使用了其他环境,我们需要安装 NodeJS(cid:link_8)。如上图点击“安装”我们即可获得一个 NodeJS 环境,进入桌面后,我们可以打开终端执行命令查看当前的 NodeJS 版本和 Git 版本,确认环境已初始化成功:node -v npm -v git --version1.2 源代码获取本案例涉及的代码已发布在 GitCode 平台上: cid:link_7执行 git clone 拉取源代码git clone [cid:link_7](cid:link_7) 2. ModelArts Studio 模型服务2.1 访问 ModelArts Studio 模型部署进入云主机,打开浏览器,输入 https://console.huaweicloud.com/modelarts/?region=cn-east-4&locale=zh-cn#/model-studio/deployment ,即可访问 ModelArts Studio。2.2 领取免费 Token 额度领取千万免费 token 额度,可用于体验 Qwen、Chatglm 等系列模型,免费额度仅适合用于体验模型。Qwen2.5 系列预置服务还支持 Function Calling,可以用于构建 Agent。2.3 获取大模型 API 和名称以 Qwen2_5-72B-Instruct 为例,点击更多-调用,获取 API 地址和模型名称。2.4 创建 API Key左侧鉴权管理-创建 API Key,保存创建的密钥信息最多创建 5 个密钥,密钥只会在新建后显示一次,请妥善保存。2.5 调试大模型 API我们使用 curl 脚本调试大模型 API,确保 API 配置可用,在终端执行以下命令。# 调试API curl -X POST "yourBaseUrl" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer yourApiKey" \ -d '{ "model": "yourModelName", "max_tokens": 20, "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "你好"} ], "stream": false, "temperature": 1.0 }' 💡 请把 yourBaseUrl、yourApiKey、yourModelName 替换为步骤 2.1.3 和步骤 2.1.4 中的信息。能看到类似的返回即为 API 配置可用。{"id":"chat-1d324bf7eb884c728b2542ddc53f7218","object":"chat.completion","created":1734748674,"model":"Qwen2.5-72B","choices":[{"index":0,"message":{"role":"assistant","content":"你好!很高兴见到你!你有什么问题或者需要帮助吗?","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":20,"total_tokens":35,"completion_tokens":15},"prompt_logprobs":null} 3 运行 MateChat通过上面两步,我们已经获取到了所需要环境、代码、大模型 API 配置,接来我们将安装依赖并修改配置最终运行 MateChat。3.1 安装依赖我们进入到项目并执行命令安装依赖:cd MateChat-Web && npm install 安装结果如下图则说明依赖安装成功.3.2 修改配置我们可以通过 cat 命令查看 .env.examplecat .env.example其内容为:VITE_OPENAI_API_KEY=你的API密钥 VITE_OPENAI_PROXY_URL=你的API地址 VITE_OPENAI_MODEL=你的模型名称 VITE_PORT=8090 VITE_OPENAI_BASE_URL=http://localhost:8090 这是因为 Maas 提供的大模型 API 不支持客户端调用的缘故,我们需要通过 express 转发请求。接着我们通过 cp 命令复制一份名为 .env 的配置文件cp .env.eample .env cat .env接着我们通过云主机自带的 emacs 软件打开并编辑 .env 文件:emacs .env💡 也可以使用 vi 命令修改 .env ; 目的是配置好大模型 API,注意 chat/completion 这部分需删除3.3 运行 MateChat确认配置无误后,通过以下命令运行程序:npm run start按住 Ctrl,鼠标单击 http://localhost:5173 即可访问 MateChat:尝试问个问题能看到 MaasAPI 的回复:至此,我们成功运行了 MateChat!
总条数:3196 到第
上滑加载中