魔搭ModelScope社区 05月08日 15:58
魔搭社区大模型一键部署到阿里云边缘云(ENS)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

魔搭社区携手阿里云边缘云ENS,实现了大模型的一键部署,并支持按需付费和弹性伸缩。这种结合为开发者提供了高效的推理与应用落地方案,简化了部署流程,降低了使用门槛。文章详细介绍了部署流程、环境配置以及效果验证,帮助开发者快速上手并体验大模型的强大功能。

🚀 魔搭社区(ModelScope)作为开源大模型的聚集地,提供从模型探索、体验、训练、推理到部署的一站式服务,汇聚了超过5万个AI模型,服务超过1400万用户。

💡 阿里云边缘云ENS由大规模地域分散的边缘节点组成,提供低时延、本地化、小型化的服务,覆盖全球70+重点国家和地区,中国内地省份与运营商100%覆盖。

⚙️ 部署流程简单便捷,用户可在魔搭社区的模型服务中选择模型并进行部署,以DeepSeek-R1-Distill-Qwen-14B-GGUF为例,选择Ollama作为推理框架,使用边缘节点服务(ENS)进行CPU部署。

✅ 部署后,用户可以通过提供的示例代码进行效果验证,例如改造后的终端问答Bot,测试模型的实际效果,并可查看服务实例的创建时间、更新时间、实例类型、模型文件、推理框架、部署资源及参数等信息。

2025-05-01 13:52 浙江

魔搭社区携手阿里云边缘云ENS,实现大模型一键部署,支持按需付费和弹性伸缩,助力开发者高效推理与应用落地。

00

前言



随着大模型技术的快速发展,业界的关注点正逐步从模型训练往模型推理 转变。这一转变不仅反映了大模型在实际业务中的广泛应用需求,也体现了技术优化和工程化落地的趋势。魔搭社区(ModelScope)作为开源大模型的聚集地,结合阿里云边缘云ENS,提供了一种高效、便捷的部署方式。通过按需付费和弹性伸缩,开发者可以快速部署和使用大模型,享受云计算的便利。本文介绍了魔搭社区与阿里云边缘云ENS的结合使用体验,包括部署流程、环境配置、效果验证等内容。


魔搭社区(ModelScope)是中国规模和影响力最大的开源模型社区 。致力于构建模型即服务(MaaS)生态,提供从模型探索、体验、训练、推理到部署的一站式服务。该平台汇聚了超过5万个AI模型,涵盖自然语言处理、计算机视觉、语音、多模态、科学计算等领域,服务超过1400万用户。


阿里云边缘云ENS是由大规模地域分散的边缘节点相互协同组成的一朵可远程管控,安全可信,标准易用的分布式云。以广覆盖为核心定位,为客户提供低时延、本地化、小型化三大核心价值。全球拥有超过3200个边缘节点,中国内地省份与运营商100%覆盖,海外覆盖70+重点国家和地区。


01

部署入口



进入魔搭社区(https://www.modelscope.cn/my/overview) - 模型服务 - 部署服务(SwingDeploy) - 免费部署到魔搭推理API - 新建部署



02

模型选择和部署



模型选择

社区提供了热门模型的优先推荐列表,也支持通过搜索功能为您查找特定模型。下面我们以DeepSeek-R1-Distill-Qwen-14B-GGUF为例进行介绍:



服务部署配置

基础配置

针对该模型,我们选择Ollama作为推理框架,并在免费部署资源中选用边缘节点服务(ENS)进行CPU部署。对于其他模型,您可以根据需求灵活选择CPU或GPU部署。

单账号配额:支持10个免费CPU服务实例、1个GPU服务实例。

当资源不够时,服务创建会报错,并且服务状态为资源不足。

当前免费算力供应紧张,正在安排扩容,请保持关注。


高级配置

    支持在列表中更换模型文件,以选定的量化版本。

    SwingDeploy提供默认的Modelfile配置文件,同时也支持用户自定义编辑。

    如有需要,可自定义配置环境变量。


完成上述操作后,点击右下角“一键部署”按钮,即可开始部署服务。

模型部署需要一定耗时,包括模型下载、制作、资源生产和部署,请您耐心等待。可以在SwingDeploy控制台确认服务状态。


03

效果验证



在部署任务列表中,点击具体任务操作列下的“详情”按钮,即可查看任务详情。详情页展示服务实例的创建时间、更新时间、实例类型、模型文件、推理框架、部署资源及参数等信息,并提供一份示例代码,支持通过OpenAPI SDK进行调用。


以下代码基于实例代码改造,实现了一个简单终端问答Bot,用于测试模型效果。优化了终端的输入输出交互,您可按魔搭-服务详情的配置替换服务地址、api_key、模型地址。

    from openai import OpenAIimport sysfrom prompt_toolkit import PromptSessionfrom prompt_toolkit.styles import Styleimport timeimport tiktokenimport shutil# 初始化 OpenAI 客户端,base_url,api_key,model请按实际情况填写。client = OpenAI(    base_url=<填写魔搭侧的服务地址>,    api_key=<填写魔搭侧的服务api_key>)model = <填写模型路径,如unsloth/DeepSeek-R1-Distill-Qwen-14B-GGUF>def num_tokens_from_string(string: str) -> int:    """计算文本中的 tokens 数量"""    encoding = tiktoken.get_encoding("cl100k_base")    num_tokens = len(encoding.encode(string))    return num_tokensdef get_terminal_size():    """获取终端大小"""    return shutil.get_terminal_size()def clear_current_line():    """清除当前行"""    terminal_width = get_terminal_size().columns    print('\r' + ' ' * terminal_width + '\r', end='', flush=True)def chat_with_model():    # 创建 prompt session 和自定义样式    session = PromptSession()    style = Style.from_dict({        'prompt''#00aa00 bold',    })    messages = [        {            'role''system',            'content''你是一个有帮助的助手。'        }    ]    print("欢迎使用AI助手!输入'退出'或'quit'可以结束对话。")    while True:        try:            # 使用 prompt_toolkit 处理输入            user_input = session.prompt('\n你: ', style=style)            if user_input.lower() in ['退出''quit']:                print("再见!")                break            messages.append({                'role''user',                'content': user_input            })            print("\nAI助手: ", end='', flush=True)            try:                start_time = time.time()                response = client.chat.completions.create(                    model=model,                    messages=messages,                    stream=True                )                full_response = ""                for chunk in response:                    if chunk.choices[0].delta.content:                        content = chunk.choices[0].delta.content                        print(content, end='', flush=True)                        full_response += content                end_time = time.time()                elapsed_time = end_time - start_time                # 计算 tokens                response_tokens = num_tokens_from_string(full_response)                tokens_per_second = response_tokens / elapsed_time                # 确保统计信息显示在新行,并在显示后额外添加换行                print("\n")  # 先确保有一个空行                stats = f"[统计] 响应tokens: {response_tokens}, 用时: {elapsed_time:.2f}秒, 速率: {tokens_per_second:.2f} tokens/s"                print(stats)                print()  # 添加额外的换行确保滚动                sys.stdout.flush()  # 强制刷新输出缓冲区                messages.append({                    'role''assistant',                    'content': full_response                })            except Exception as api_error:                print(f"\n请求API时发生错误: {str(api_error)}")                print()  # 额外的换行                continue        except KeyboardInterrupt:            print("\n\n检测到中断,正在退出...")            print()  # 额外的换行            break        except Exception as e:            print(f"\n发生错误: {str(e)}")            print()  # 额外的换行            continueif __name__ == "__main__":    try:        chat_with_model()    except Exception as e:        print(f"程序发生错误: {str(e)}")        print()  # 额外的换行        sys.exit(1)

    运行服务,效果展示



    04

    结语



    通过本文的介绍,我们展示了如何利用魔搭社区(ModelScope)与阿里云边缘云ENS相结合,快速部署和验证大模型的实际效果。未来,随着大模型技术的不断演进和应用场景的持续拓展,我们相信“模型即服务”(MaaS)的模式将为更多企业和开发者带来创新机遇。


    希望本文能为您提供有价值的参考,也期待在实际项目中探索出更多可能性!




    👇点击关注ModelScope公众号获取
    更多技术信息~




    阅读原文

    跳转微信打开

    Fish AI Reader

    Fish AI Reader

    AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

    FishAI

    FishAI

    鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

    联系邮箱 441953276@qq.com

    相关标签

    魔搭社区 阿里云边缘云ENS 大模型部署 模型推理
    相关文章