当前位置: 首页 > news >正文

大模型部署实践第一天——基于Colab体验完整部署流程

一、Colab初始配置

首先打开Colab,更改运行时类型选择提供的gpu。
在图片这里插入图片描述
然后我们需要挂在谷歌云盘,用于保存我们的所有操作。因为每次重启后笔记本的修改都会消失,为了防止重复操作,我们需要挂载我们谷歌云盘,实现像修改本地文件夹一样,在谷歌云盘上进行我们的一切操作。

# 挂载Google Drive,用于持久化存储模型
from google.colab import drive
drive.mount("/content/drive")

然后我们执行以下命令安装依赖

# 挂载Google Drive,用于持久化存储模型
!pip install -q bitsandbytes transformers accelerate flask nest-asyncio pyngrok
!pip install -U bitsandbytes

需要注意的是,执行完上面的安装后,我们需要重启笔记本,这样才能生效。

二、加载大模型

我们通过下面的代码,从hugging下载开源大模型

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import torch

# 创建 BitsAndBytesConfig 对象,设置量化为 4bit
quantization_config = BitsAndBytesConfig(load_in_4bit=True)

model_id = "tiiuae/falcon-7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    torch_dtype=torch.float16,
    quantization_config=quantization_config,
    trust_remote_code=True,
)

下载过程如下图:
其中我们通过load_in_4bit用于量化模型以减少对内存的需求。这个我们后面详细了解
在这里插入图片描述
第一次运行以后我们需要保存模型到云盘中,这样就不用每次都去下载了
在这里插入图片描述

三、优化加速,构建生成器

通过如下代码,基于模型,分词器和模型参数构建生成器。它是我们调用大模型回答问题的工具。

# 启用Transformer加速
from transformers import pipeline
generator = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    model_kwargs={"temperature":0.7, "max_length":200}
)

四、构建REST API服务,并进行测试

我们构建一个flask服务如下:

from flask import Flask, request, jsonify
import threading

app = Flask(__name__)

@app.route('/generate', methods=['POST'])
def generate():
    text = request.json.get('text', '')
    inputs = tokenizer(text, return_tensors="pt").to("cuda")
    outputs = model.generate(
        inputs.input_ids,
        max_new_tokens=100,
        temperature=0.7,
        do_sample=True
    )
    result = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return jsonify({"response": result})

# 后台启动Flask
threading.Thread(target=app.run, kwargs={'host':'0.0.0.0', 'port': 5000}).start()

同时,我们利用localtunnel来实现公网访问

!npm install -g localtunnel
!lt --port 5000 --subdomain myfalcon 

我们可以看到访问的地址:
在这里插入图片描述
最后我们在cmd中,输入下列命令来获取回复:

curl -X POST -H “Content-Type: application/json” -d “{“text”:“你好”}” https://myfalcon.loca.lt/generate

可以看到回复如下:
在这里插入图片描述

云盘分享

下面是我的谷歌笔记本,可以在colab中运行查看
https://colab.research.google.com/drive/1W7bzTtgHNqhqe4Sv7fS-OlLw63Da2LWS?usp=sharing

相关文章:

  • C语言中单向链表:创建节点与插入新节点
  • lerobot[部署,元数据集,加载数据集]
  • Java学习总结-线程同步
  • keil5忽略警告
  • S32K144入门笔记(二十五):FlexCAN初始化序列
  • LeetCode 1169 查询无效交易
  • 【嵌入式系统设计师】知识点:第3章 嵌入式硬件设计
  • HCIP【路由策略技术(详解)】
  • 1️⃣ 智能体基础入门教学(2025年全新版本)
  • 国内 windows powershell 安装 scoop
  • Llama 4 家族:原生多模态 AI 创新的新时代开启
  • 消息队列基础概念及选型,常见解决方案包括消息可靠性、消息有序、消息堆积、重复消费、事务消息
  • 企业网站模板源码 免费网站模板下载
  • 基础算法模拟(超详细)
  • 【spring02】Spring 管理 Bean-IOC,基于 XML 配置 bean
  • Java面试黄金宝典37
  • Spring 中的事务
  • 设计模式简述(六)代理模式
  • APS相关知识
  • 鸿蒙版(ArkTs) 贪吃蛇,包含无敌模式 最高分 暂停和继续功能
  • wordpress可以放视频播放器/新浪博客seo
  • 长沙做暑假实践活动网站/北京推广平台
  • 建设家具网站的目的及功能定位/百度人工投诉电话是多少
  • 网站建设美橙/网站推广策划
  • php网站建设参考文献/正规教育培训机构
  • 专业做网站的企业/百度关键词搜索趋势