avatar

LeeBlog

A LeeBlog BLOG

  • 首页
  • 友情链接
  • 教程
  • 关于
Home 国产大模型部署与基础推理
文章

国产大模型部署与基础推理

Posted 2024-12-9 Updated 2024-12- 9
By S.B
11~14 min read

🌟 事先声明(叠甲:距离作者学习 LLM 不超过四个月,见识浅薄请多包涵。 🙏

🚀本文档使用大模型进行Emojify🚀

本文章包括:

  1. 🚀为什么要学习使用国产llm?
  2. 🔍如何寻找国产llm?
  3. 📚我需要哪些知识?
  4. 💻我需要哪些设备?

为什么要学习使用国产llm?

  1. 即使OpenAi在GPT-4上取得了巨大成功,后起的国产llm在中文自然语言处理上能够胜过GPT-4。👍
  2. 国产llm通常有中文官方文档,学习效率相较于英文文档更高。📖
  3. 还没想出来🤔

🔍如何寻找国产llm?

以下链接收集了大量的国产llm,内容可能会有点过时,最新的模型还是需要通过搜索引擎查找新闻得到。(不过公司也就那几个,更新的版本在旧仓库也有链接)

中国大模型列表 https://github.com/wgwang/awesome-LLMs-In-China🌐
大部分开源llm都会在Github与Hugging Face上对模型进行开源,其中Github包含模型加载源码而Hugging Face上存储模型文件(国内以Model Scope魔搭社区为主)。
国产LLM也不例外。
Hugging Face https://huggingface.co/🦾
Model Scope https://modelscope.cn/home/🛠️
Github https://github.com/🗂️

📚我需要哪些知识?

想要“用”这个模型其实很简单,拥有基本的python和linux shell使用经验即课。现有的很多平台项目(例如llamaFactory)都提供了部署脚本,在软件中直接使用gui进行操作,但是为了更底层的了解模型是如何使用的,还是推荐使用模型供应商的流程完成一遍部署推理操作。

💻我们先了解一下流程:

  1. 获取拥有大量显存的Nvidia显卡Linux服务器。30系及以上为佳🖥️
  2. 下载模型到本地(大小随参数量多少变化,7B一般不到30G)📦
  3. 加载模型到显存(对显存大小要求极高,7B模型需要20G显存才能进行部署)⚡
  4. 输入提问,进行推理🔍

服务器可以租用云算力,a100 40G 在 4r/h 左右,4090 24G 在 2.5r/h左右,不进行训练直接租用显存够大的,ampere 或者以后的显卡。☁️

操作流程

这里以阿里的通义千问 7B作为例子

在操作之前

以下教程中的python代码推荐通过使用浏览器远程连接在linux服务器中的jupyter lab或者jupyter notebook中完成,这样有利于持久保持变量。📊

1.下载代码

访问github仓库,获取仓库地址,并在linux中clone一份代码到本地。

git clone https://github.com/QwenLM/Qwen.git

2. 安装依赖

克隆完代码之后会在根目录中找到requriments.txt

pip install -r requriments.txt

除了依赖,官方仓库里的代码往往还包含微调代码、Readme、一键加载模型(在此是cli_demo.py\web_demo.py)等运行脚本和文档。

3.下载模型

访问ModelScope(国内)/Hugging Face(国外)下载模型到本地。

在模型下载/Use in Transformers中获取下载模型代码,并执行。

# ModelScope
from modelscope import snapshot_download 
model_dir = snapshot_download('qwen/Qwen-7B-Chat',cache_dir='model')
# cache_dir为模型下载到的位置

也可使用git-lfs下载文件,但是速度较慢,还需要额外安装git-lfs包。

4. 加载模型

此时想要运行模型需要加载三个变量:Tokenizer、Model和GenerationConfig

from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfig

tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, fp16=True).eval()
model.generation_config = GenerationConfig.from_pretrained(model_dir, trust_remote_code=True) # Generation Config可指定不同的生成长度、top_p等相关超参

如此便成功加载模型,新建一个shell并运行以下代码查看显卡占用情况。

watch -n 1 nvidia-smi

5. 运行推理

当模型加载完成之后,执行以下代码测试运行情况

response, history = model.chat(tokenizer, "你好", history=None)
print(response)
response, history = model.chat(tokenizer, "浙江的省会在哪里?", history=history) 
print(response)
response, history = model.chat(tokenizer, "它有什么好玩的景点", history=history)
print(response)

也可以手动运行多轮对话:

response, history = model.chat(tokenizer, "你好", history=None)
print(response)
while True:
	response, history = model.chat(tokenizer, "你好", history=history)
	print(response)

🎉至此便完成了基础的开源大模型部署与推理。👏
可喜可贺,可喜可贺。

教程, 大模型
License:  CC BY 4.0
Share

Further Reading

Jun 9, 2025

1Panel后台开了HSTS(强制HTTPS)但是证书过期无法访问后台的办法

参考 https://blog.csdn.net/qq_25851273/article/details/135683207 强制HTTPS+证书过期导致无法访问后台 1Panel后台的 面板设置->安全->面板SSL 你的前端和后端使用了相同的SSL证书,前端开启HSTS之后,后台也开启了HSTS

Apr 25, 2025

初识MCP

什么是MCP? 在了解mcp的过程中,我最迷惑的就是 到底什么是MCP?他作用于哪里?MCP是怎么和大模型沟通的? 直到我翻了MCP的python sdk之后才发现: MCP和模型本身根本没有关系。 或者说:MCP和大模型完全是解耦的 MCP其实是后端协议 当你意识到这一点的时候,可能你就明白MCP

Feb 9, 2025

VsCode配置免密远程登录

1. 为什么需要免密登录 懒得输密码 2. 准备条件 2.1 基础环境要求 本地安装VSCode 拥有目标服务器的SSH访问权限 本地终端环境(PowerShell/Git Bash/macOS Terminal) 3. SSH密钥生成与配置 3.1 生成密钥对(注意修改你的邮箱) 输入的邮箱用于区

OLDER

兰空图床安装教程

NEWER

适用 Python 控制 Virtual studio 的方法

Recently Updated

  • 1Panel后台开了HSTS(强制HTTPS)但是证书过期无法访问后台的办法
  • 初识MCP
  • VsCode配置免密远程登录
  • Frp 在Openwrt 上的配置
  • Git 放弃当前修改 更新到最新版本

Trending Tags

教程 AI AI VPS

Contents

©2025 LeeBlog. Some rights reserved.

Using the Halo theme Chirpy