Starwhale: 革新MLOps和LLMOps的开源平台

RayRay
StarwhaleMLOpsLLMOps机器学习运营模型开发Github开源项目

starwhale

Starwhale:革新机器学习操作的开源平台

在当今快速发展的人工智能领域,如何高效管理机器学习项目、模型和数据集成为了一个巨大的挑战。Starwhale应运而生,作为一个创新的MLOps/LLMOps平台,它为机器学习操作带来了效率和标准化,彻底改变了模型开发的生命周期。

Starwhale的核心优势

Starwhale的设计理念是简化和优化机器学习工作流程的各个关键环节,包括模型构建、评估、发布和微调。它提供了三种灵活的部署配置来满足不同的需求:

  1. 🐥 Standalone: 适用于本地开发环境,通过swcli命令行工具管理,满足开发和调试需求。

  2. 🦅 Server: 部署在私有数据中心,依赖Kubernetes集群,提供集中化、基于Web的安全服务。

  3. 🦉 Cloud: 托管在公共云上,访问地址为https://cloud.starwhale.cn,由Starwhale团队负责维护,用户注册后即可使用。

Starwhale产品架构

Starwhale的核心在于将ModelRuntimeDataset抽象为一等公民,为流线型操作提供了基础。此外,Starwhale还为常见的工作流场景提供了量身定制的功能:

  • 🔥 模型评估: 通过Python SDK实现强大的生产规模评估,只需编写最少的代码。
  • 🌟 实时演示: 通过用户友好的Web界面交互式评估模型性能。
  • 🌊 LLM微调: 从高效微调到比较基准测试和发布的端到端工具链。

Starwhale的关键概念

🐘 Starwhale Dataset

Starwhale Dataset提供了高效的数据存储、加载和可视化功能,是专为机器学习和深度学习领域量身定制的数据管理工具。它支持多种数据格式,并可轻松与常用的机器学习框架集成。

Starwhale Dataset概览

使用Starwhale Dataset可以轻松创建、管理和共享数据集:

import torch from starwhale import dataset, Image # 为Starwhale云实例构建数据集 with dataset("https://cloud.starwhale.cn/project/starwhale:public/dataset/test-image", create="empty") as ds: for i in range(100): ds.append({"image": Image(f"{i}.png"), "label": i}) ds.commit() # 加载数据集 ds = dataset("https://cloud.starwhale.cn/project/starwhale:public/dataset/test-image") print(len(ds)) print(ds[0].features.image.to_pil()) print(ds[0].features.label) torch_ds = ds.to_pytorch() torch_loader = torch.utils.data.DataLoader(torch_ds, batch_size=5) print(next(iter(torch_loader)))

🐇 Starwhale Model

Starwhale Model是一种标准的机器学习模型打包格式,可用于模型微调、评估和在线服务等多种用途。一个Starwhale Model包含模型文件、推理代码、配置文件以及运行模型所需的任何其他文件。

Starwhale Model概览

使用Starwhale Model可以轻松构建、复制和运行模型:

# 模型构建 swcli model build . --module mnist.evaluate --runtime pytorch/version/v1 --name mnist # 从standalone复制模型到云端 swcli model cp mnist https://cloud.starwhale.cn/project/starwhale:public # 模型运行 swcli model run --uri mnist --runtime pytorch --dataset mnist swcli model run --workdir . --module mnist.evaluator --handler mnist.evaluator:MNISTInference.cmp

🐌 Starwhale Runtime

Starwhale Runtime旨在为Python程序提供可复现和可共享的运行环境。用户可以轻松地与团队成员或外部人员共享工作环境,反之亦然。此外,用户可以在Starwhale Server或Starwhale Cloud上运行程序,而无需担心依赖问题。

Starwhale Runtime概览

Starwhale Runtime支持多种构建方式,并可与模型和数据集无缝集成:

# 从runtime.yaml、conda环境、Docker镜像或shell构建 swcli runtime build --yaml runtime.yaml swcli runtime build --conda pytorch --name pytorch-runtime --cuda 11.4 swcli runtime build --docker pytorch/pytorch:1.9.0-cuda11.1-cudnn8-runtime swcli runtime build --shell --name pytorch-runtime # Runtime激活 swcli runtime activate pytorch # 与模型和数据集集成 swcli model run --uri test --runtime pytorch swcli model build . --runtime pytorch swcli dataset build --runtime pytorch

🐄 Starwhale Evaluation

Starwhale Evaluation使用户能够通过Starwhale Python SDK编写几行代码就可以评估复杂的、面向生产的分布式模型。

import typing as t import gradio from starwhale import evaluation from starwhale.api.service import api def model_generate(image): ... return predict_value, probability_matrix @evaluation.predict( resources={"nvidia.com/gpu": 1}, replicas=4, ) def predict_image(data: dict, external: dict) -> None: return model_generate(data["image"]) @evaluation.evaluate(use_predict_auto_log=True, needs=[predict_image]) def evaluate_results(predict_result_iter: t.Iterator): for _data in predict_result_iter: ... evaluation.log_summary({"accuracy": 0.95, "benchmark": "test"}) @api(gradio.File(), gradio.Label()) def predict_view(file: t.Any) -> t.Any: with open(file.name, "rb") as f: data = Image(f.read(), shape=(28, 28, 1)) _, prob = predict_image({"image": data}) return {i: p for i, p in enumerate(prob)}

🦍 Starwhale Fine-tuning

Starwhale Fine-tuning为大型语言模型(LLM)调优提供了完整的工作流程,包括批量模型评估、实时演示和模型发布功能。Starwhale Fine-tuning Python SDK非常简单易用。

import typing as t from starwhale import finetune, Dataset from transformers import Trainer @finetune( resources={"nvidia.com/gpu":4, "memory": "32G"}, require_train_datasets=True, require_validation_datasets=True, model_modules=["evaluation", "finetune"], ) def lora_finetune(train_datasets: t.List[Dataset], val_datasets: t.List[Dataset]) -> None: # 初始化模型和tokenizer trainer = Trainer( model=model, tokenizer=tokenizer, train_dataset=train_datasets[0].to_pytorch(), # 将Starwhale Dataset转换为Pytorch Dataset eval_dataset=val_datasets[0].to_pytorch()) trainer.train() trainer.save_state() trainer.save_model() # 保存权重,然后Starwhale SDK会将它们打包成Starwhale Model

Starwhale的应用案例

Starwhale在各种机器学习任务中都有广泛的应用,以下是一些典型案例:

  1. 🚀 LLM应用:

    • OpenSource LLMs Leaderboard: 提供开源LLM模型的评估和排名。
    • Llama2: 快速部署和运行Llama2聊天模型。
    • Stable Diffusion: 文本到图像生成模型的部署和微调。
    • LLAMA: 模型评估和微调。
    • Text-to-Music: 文本到音乐生成模型的演示。
    • Code Generation: 代码生成模型的部署和使用。
  2. 🌋 模型微调:

    • Baichuan2和ChatGLM3: 中文大型语言模型的微调。
    • Stable Diffusion: 图像生成模型的微调。
  3. 🦦 图像分类:

    • MNIST: 手写数字识别模型的评估和部署。
    • CIFAR10: 通用物体分类模型的训练和评估。
    • Vision Transformer(ViT): 视觉Transformer模型的应用。
  4. 🐃 图像分割:

    • Segment Anything(SAM): 通用图像分割模型的部署和使用。
  5. 🐦 目标检测:

    • YOLO: 实时目标检测模型的部署和评估。
    • Pedestrian Detection: 行人检测模型的应用。

此外,Starwhale还支持视频识别、机器翻译、文本分类和语音识别等多种任务,为研究人员和开发者提供了全面的MLOps解决方案。

Starwhale的安装和快速入门

Starwhale提供了简单的安装方式和快速入门指南,使用户能够迅速上手:

  1. Starwhale Standalone安装:

    python3 -m pip install starwhale
  2. Starwhale Server: Starwhale Server以Docker镜像形式提供,可以直接用Docker运行或部署到Kubernetes集群。对于笔记本环境,使用swcli server start命令是一个合适的选择,该命令依赖Docker和Docker-Compose。

  3. 快速入门: Starwhale使用MNIST数据集作为Hello World示例来展示基本的Starwhale Model工作流程。用户可以选择在自己的Python环境中按照Standalone快速入门文档操作,或者使用Google Colab环境按照Jupyter notebook示例进行操作。

Starwhale的社区和支持

Starwhale拥有活跃的开源社区和全面的支持体系:

Starwhale的开源性质和Apache-2.0许可证使其成为一个灵活、可定制的MLOps平台。它的框架设计注重清晰度和易用性,使开发者能够根据自身需求构建定制化的MLOps功能。

结语

Starwhale作为一个创新的MLOps/LLMOps平台,正在改变机器学习和深度学习的开发和部署方式。通过提供全面的工具链和灵活的部署选项,Starwhale帮助团队更高效地管理机器学习项目的整个生命周期。无论是对于研究人员、开发者还是企业用户,Starwhale都提供了强大的功能和便捷的使用体验,推动着AI技术的快速发展和广泛应用。随着AI领域的不断进步,Starwhale将继续发挥其关键作用,为机器学习操作带来更多创新和效率。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多