全网最全--本地模型部署

模型社区

HuggingFace

官网:https://huggingface.co/

HuggingFace 是一个自然语言处理(NLP)领域的开源社区和平台,它提供了一系列强大的工具、库和预训练模型,帮助开发者快速构建和部署自然语言处理应用。

HuggingFace 平台的主要组成部分和特点如下:

1. Transformers 库:HuggingFace 的 Transformers 库是其最著名和核心的部分。它提供了广泛的预训练模型(如BERT、GPT、RoBERTa等)的实现,并提供易于使用的API,用于进行文本分类、命名实体识别、文本生成等各种 NLP 任务。Transformers 库支持多种主流深度学习框架,如PyTorch和TensorFlow。

2. 模型架构和优化方法:HuggingFace 提供了各种用于构建和优化 NLP 模型的架构和方法,包括用于序列分类、序列标注、文本生成等任务的模型架构和损失函数,以及用于模型训练和优化的技术,如学习率调度、权重衰减等。

3. 数据集和指标:HuggingFace 提供了大量的 NLP 数据集,用于训练和评估模型。这些数据集涵盖了各种不同的任务和语言,包括文本分类、命名实体识别、情感分析等。此外,HuggingFace 还提供了常用的评估指标和评估方法,帮助用户对模型性能进行评估和比较。

4. 模型训练和部署工具:HuggingFace 提供了用于模型训练和部署的工具和库,使用户能够轻松地进行模型训练、微调和部署。例如,通过使用 HuggingFace 的 Trainer 类,用户可以更便捷地配置和执行模型的训练过程。

5. 模型分享和社区:HuggingFace 平台鼓励用户分享和交流模型、代码和经验。用户可以在 HuggingFace 的模型仓库中发布和共享自己的模型,并从社区中获取模型、代码和应用案例。

ModelScope

官网:https://www.modelscope.cn

魔搭社区ModelScope是一个由阿里达摩院推出的开源模型服务平台,其主要功能和目的如下:

1. 模型共享与探索: ModelScope汇集了各领域最先进的机器学习模型,包括但不限于自然语言处理、计算机视觉、语音识别等。用户可以在平台上发现和探索这些模型,了解其特性和性能。

2. 一站式服务: 提供从模型探索、推理、训练到部署和应用的一站式服务。用户不仅可以体验预训练模型的性能,还可以根据自己的需求对模型进行定制和训练,并方便地将训练好的模型部署到实际应用中。

3. 易用性和灵活性: ModelScope旨在为泛AI开发者提供灵活、易用、低成本的模型服务产品。用户无需额外部署复杂的环境,就可以在平台上直接使用各种模型,降低了使用和开发AI模型的门槛。

4. 开源与合作: 作为一款开源平台,ModelScope鼓励社区成员参与模型的开发、改进和分享。通过共同合作,推动AI技术的发展和创新。

5. 智能体开发框架: ModelScope还推出了ModelScope-Agent开发框架,如MSAgent-Qwen-7B,允许用户打造属于自己的智能体。这个框架提供了丰富的环境配置选项,支持单卡运行,并有一定的显存要求。

本地模型部署

LM Studio

官网:https://lmstudio.ai/

LM Studio 是一个桌面应用程序,允许本地运行大型语言模型(LLMs)

LM Studio支持的是guff格式的模型,这类模型经过重新编译打包,整体尺寸更小,文件合一,非常适合移动和存储,尤其适合在迷你主机上运行。

AMD平台的GPU使用这个地址下载:https://lmstudio.ai/rocm

部署本地模型

注意:请先创建models文件夹,models文件夹下面必须有两级路径,即手动新建两个文件夹,比如:D:/LM Studio/models/qwen/qwen1_5-7b-chat-q8_0/qwen1_5-7b-chat-q8_0.gguf

从LM Studio中下载模型

在LMStudio中,点击左侧菜单栏的模型管理,点击右上角的下载模型,选择模型社区,搜索qwen1_5-7b-chat-q8_0.gguf(可自行选择需要的模型大小),下载完成后,将文件放在models文件夹下。(不建议在LM Studio中下载,连接的是hugging face社区,需要科学上网,有些许的麻烦)

从模型社区中下载

在魔搭社区下载模型,例如qwen1_5-7b-chat-q8_0.gguf

需要下载的是gguf格式的模型文件,下载完成后,将文件放在models文件夹

 

 访问本地模型

使用openai访问

下载openai

pip install openai

案例

from openai import OpenAI

# 打开本地LM Studio软件的server
client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")

completion = client.chat.completions.create(
  model="Qwen/Qwen1.5-0.5B-Chat-GGUF",
  messages=[
    {"role": "user", "content": "你是谁"}
  ]
)

print(completion.choices[0].message)

使用LangChain的案例

from langchain_community.llms.openai import OpenAI


# 创建一个OpenAI集成对象,用于与OpenAI模型交互
llm = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")

 
llm.invoke("讲一个50字以内的笑话")

OLLAMA

官网:https://ollama.ai/download

在环境变量中配置

OLLAMA_HOST   0.0.0.0:11434

OLLAMA_MODELS  D:\OllaMa(OllaMa是需要自己创建的文件夹)

下载并运行模型

如果已经下载过,则指令为运行;

如果没有下载过,则指令为下载并运行。

ollama run qwen:1.8b

该指令为1.8b的qwen模型,如果想要换其他的模型则可以在官网选择

下载完成后就可以输入指令运行 

常见指令

ollama  serve       Start ollama

ollama  create      Create a model from a Modelfile

ollama  show        Show information for a model

ollama  run         Run a model

ollama  pull        Pull a model from a registry

ollama  push        Push a model to a registry

ollama  list        List models

ollama  ps          List running models

ollama  cp          Copy a model

ollama  rm          Remove a model

ollama  help        Help about any command

vllm

安装

pip install vllm==0.5.3

vLLM 是来自 UC Berkeley 的 LMSYS 在 LLM 推理方面的最新工作(搞出 Vicuna 的那个 group),最大亮点是采用 Paged Attention 技术,结合 Continuous Batching,极大地优化了 realtime 场景下的 LLM serving 的 throughput 与内存使用。

部署模型

CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server --model /mnt/workspace/Qwen-1_8B-Chat_merge --served-model-name qwen  --trust-remote-code

gradio

官网

https://www.gradio.app/

介绍

Gradio是一个用于创建机器学习模型交互式界面的 Python 库。通过Gradio,可以快速地为模型构建一个可视化的、易于使用的Web界面,无需编写任何Web前端代码。

Gradio 支持多种不同类型的输入(如文本、图像、音频等)和输出(如文本、图像、HTML等),并且可以直接在 Python 脚本中定义这些输入/输出和处理函数之间的关系。这使得 Gradio 非常适合用来演示和测试各种AI/ML模型,或者用来收集用户反馈。

一旦创建了一个Gradio应用,并启动了它,它就会在本地启动一个Web服务器,并生成一个 URL。然后你就可以在浏览器中打开这个URL来与你的模型进行交互。同时,如果需要将应用公开到Internet上供他人使用,也可以通过ngrok等工具实现。

安装

pip install gradio==3.41.2

使用

使用vim新建demo.py文件

使用 vim demo.py 打开文件

输入一下的代码

import gradio as gr
import requests
 
models = ['qwen']
 

def completion(question):
    model_url_dict = {models[0]: "http://localhost:8000/v1/chat/completions"}
    answers = []
    for model in models:
        headers = {'Content-Type': 'application/json'}

        json_data = {
            'model': model,
            'messages': [
                {
                    'role': 'system',
                    'content': 'You are a helpful assistant.'
                },
                {
                    'role': 'user',
                    'content': question
                },
            ],
        }

        response = requests.post(model_url_dict[model], headers=headers, json=json_data)
        answer = response.json()["choices"][0]["message"]["content"]
        answers.append(answer)
    return answers


demo = gr.Interface(
    fn=completion,
    inputs=gr.Textbox(lines=5, placeholder="input your question", label="question"),
    outputs=[gr.Textbox(lines=5, placeholder="answer", label=models[0])]
)

demo.launch(server_name='0.0.0.0',server_port=8001, share=True)

ni 插入文件内容

esc 退出输入模式

:wq 保存并退出

在使用vllm时最好需要跟gradio一起使用~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值