[{'key': 'asr_vad_punc_example', 'text': '正是因为存在绝对正义,所以我们接受现实的相对正义。 但是不要因为现实的相对正义,我们就认为这个世界没有正义。因为如果当你认为这个世界没有正义。', 'timestamp': [[430, 670], [670, 810], [810, 1030], [1030, 1130], [1130, 1330], [1330, 1510], [1510, 1670], [1670, 1810], [1810, 1970], [1970, 2210], [2250, 2390], [2390, 2490], [2490, 2570], [2570, 2710], [2710, 2950], [2970, 3210], [3310, 3550], [3570, 3730], [3730, 3830], [3830, 3970], [3970, 4150], [4150, 4270], [4270, 4535], [5290, 5470], [5470, 5610], [5610, 5710], [5710, 5910], [5910, 6070], [6070, 6230], [6230, 6470], [6470, 6650], [6650, 6750], [6750, 6950], [6950, 7130], [7130, 7250], [7250, 7490], [7490, 7590], [7590, 7710], [7710, 7910], [7910, 8070], [8070, 8290], [8290, 8430], [8430, 8550], [8550, 8710], [8710, 8950], [9050, 9290], [9370, 9550], [9550, 9790], [9790, 9965], [10600, 10760], [10760, 10900], [10900, 11120], [11120, 11300], [11300, 11400], [11400, 11580], [11580, 11700], [11700, 11800], [11800, 11920], [11920, 12020], [12020, 12160], [12160, 12320], [12320, 12440], [12440, 12560], [12560, 12740], [12740, 12915]]}]
结果结构解析
JSON复制
[
{
"key" : "asr_vad_punc_example" ,
"text" : "正是因为存在绝对正义,所以我们接受现实的相对正义。但是不要因为现实的相对正义,我们就认为这个世界没有正义。因为如果当你认为这个世界没有正义。" ,
"timestamp" : [
[ 430 , 670 ] , [ 670 , 810 ] , [ 810 , 1030 ] , [ 1030 , 1130 ] , [ 1130 , 1330 ] , [ 1330 , 1510 ] , [ 1510 , 1670 ] , [ 1670 , 1810 ] , [ 1810 , 1970 ] , [ 1970 , 2210 ] , [ 2250 , 2390 ] , [ 2390 , 2490 ] , [ 2490 , 2570 ] , [ 2570 , 2710 ] , [ 2710 , 2950 ] , [ 2970 , 3210 ] , [ 3310 , 3550 ] , [ 3570 , 3730 ] , [ 3730 , 3830 ] , [ 3830 , 3970 ] , [ 3970 , 4150 ] , [ 4150 , 4270 ] , [ 4270 , 4535 ] , [ 5290 , 5470 ] , [ 5470 , 5610 ] , [ 5610 , 5710 ] , [ 5710 , 5910 ] , [ 5910 , 6070 ] , [ 6070 , 6230 ] , [ 6230 , 6470 ] , [ 6470 , 6650 ] , [ 6650 , 6750 ] , [ 6750 , 6950 ] , [ 6950 , 7130 ] , [ 7130 , 7250 ] , [ 7250 , 7490 ] , [ 7490 , 7590 ] , [ 7590 , 7710 ] , [ 7710 , 7910 ] , [ 7910 , 8070 ] , [ 8070 , 8290 ] , [ 8290 , 8430 ] , [ 8430 , 8550 ] , [ 8550 , 8710 ] , [ 8710 , 8950 ] , [ 9050 , 9290 ] , [ 9370 , 9550 ] , [ 9550 , 9790 ] , [ 9790 , 9965 ] , [ 10600 , 10760 ] , [ 10760 , 10900 ] , [ 10900 , 11120 ] , [ 11120 , 11300 ] , [ 11300 , 11400 ] , [ 11400 , 11580 ] , [ 11580 , 11700 ] , [ 11700 , 11800 ] , [ 11800 , 11920 ] , [ 11920 , 12020 ] , [ 12020 , 12160 ] , [ 12160 , 12320 ] , [ 12320 , 12440 ] , [ 12440 , 12560 ] , [ 12560 , 12740 ] , [ 12740 , 12915 ]
]
}
]
字段解释
key
text
timestamp
如何理解这些数据
text
字段
timestamp
字段
1
2
3
4
5
6
7
8
9
[
{
"key"
:
"asr_vad_punc_example"
,
"text"
:
"正是因为存在绝对正义,所以我们接受现实的相对正义。但是不要因为现实的相对正义,我们就认为这个世界没有正义。因为如果当你认为这个世界没有正义。"
,
"timestamp"
: [
[
430
,
670
], [
670
,
810
], [
810
,
1030
], [
1030
,
1130
], [
1130
,
1330
], [
1330
,
1510
], [
1510
,
1670
], [
1670
,
1810
], [
1810
,
1970
], [
1970
,
2210
], [
2250
,
2390
], [
2390
,
2490
], [
2490
,
2570
], [
2570
,
2710
], [
2710
,
2950
], [
2970
,
3210
], [
3310
,
3550
], [
3570
,
3730
], [
3730
,
3830
], [
3830
,
3970
], [
3970
,
4150
], [
4150
,
4270
], [
4270
,
4535
], [
5290
,
5470
], [
5470
,
5610
], [
5610
,
5710
], [
5710
,
5910
], [
5910
,
6070
], [
6070
,
6230
], [
6230
,
6470
], [
6470
,
6650
], [
6650
,
6750
], [
6750
,
6950
], [
6950
,
7130
], [
7130
,
7250
], [
7250
,
7490
], [
7490
,
7590
], [
7590
,
7710
], [
7710
,
7910
], [
7910
,
8070
], [
8070
,
8290
], [
8290
,
8430
], [
8430
,
8550
], [
8550
,
8710
], [
8710
,
8950
], [
9050
,
9290
], [
9370
,
9550
], [
9550
,
9790
], [
9790
,
9965
], [
10600
,
10760
], [
10760
,
10900
], [
10900
,
11120
], [
11120
,
11300
], [
11300
,
11400
], [
11400
,
11580
], [
11580
,
11700
], [
11700
,
11800
], [
11800
,
11920
], [
11920
,
12020
], [
12020
,
12160
], [
12160
,
12320
], [
12320
,
12440
], [
12440
,
12560
], [
12560
,
12740
], [
12740
,
12915
]
]
}
]
1
2
3
4
5
6
7
8
00
:
00
:
00.430
-->
00
:
00
:
00.670
正是因为存在绝对正义,
00
:
00
:
00.670
-->
00
:
00
:
00.810
所以我们接受现实的相对正义。
00
:
00
:
00.810
-->
00
:
00
:
01.030
但是不要因为现实的相对正义,
ModelScope 提供的 AutoModelForCausalLM
和 AutoTokenizer
来加载一个预训练的因果语言模型(Causal Language Model,CLM),并生成文本。
代码解析
导入必要的模块
Python复制
from modelscope import AutoModelForCausalLM, AutoTokenizer
指定模型名称
Python复制
model_name = "Qwen/Qwen2.5-0.5B-Instruct"
加载模型和分词器
Python复制
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto" ,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
准备输入文本
Python复制
prompt = "Give me a short introduction to large language model."
messages = [
{"role" : "system" , "content" : "You are Qwen, created by Alibaba Cloud. You are a helpful assistant." },
{"role" : "user" , "content" : prompt}
]
使用分词器处理输入
Python复制
text = tokenizer.apply_chat_template(
messages,
tokenize=False ,
add_generation_prompt=True
)
将文本转换为模型输入
Python复制
model_inputs = tokenizer([text], return_tensors="pt" ).to(model.device)
生成文本
Python复制
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
提取生成的文本
Python复制
generated_ids = [
output_ids[len (input_ids):] for input_ids, output_ids in zip (model_inputs.input_ids, generated_ids)
]
解码生成的文本
Python复制
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True )[0 ]
代码的功能
这段代码的功能是加载一个预训练的因果语言模型(Qwen2.5-0.5B-Instruct),并根据用户提供的提示(prompt
)生成回答。它通过以下步骤实现:
加载模型和分词器。
准备输入文本(包括系统和用户角色的对话)。
将输入文本转换为模型可以处理的格式。
使用模型生成回答。
提取并解码生成的文本。
输出结果
最终,response
包含了模型生成的回答,即对输入提示的文本回答。
示例输出
假设输入提示是:
Python复制
prompt = "Give me a short introduction to large language model."
模型生成的回答可能类似于:
A large language model is a type of artificial intelligence that is trained on vast amounts of text data to generate human-like text. These models can be used for a variety of tasks, including writing, translation, and answering questions.
总结
这段代码展示了如何使用 ModelScope 的 AutoModelForCausalLM
和 AutoTokenizer
来加载预训练的因果语言模型,并根据用户输入生成回答。它涵盖了从模型加载、输入处理到文本生成和解码的完整流程。
cpu运行程序,等待结果可能需要 3-5分钟 更长。
运行中
完成。
图片推理
1
2
3
4
5
6
7
8
9
10
11
12
13
from
diffusers
import
AutoPipelineForText2Image
import
torch
from
modelscope
import
snapshot_download
model_dir
=
snapshot_download(
"AI-ModelScope/sdxl-turbo"
)
pipe
=
AutoPipelineForText2Image.from_pretrained(model_dir, torch_dtype
=
torch.float16, variant
=
"fp16"
)
pipe.to(
"cuda"
)
prompt
=
"A cinematic shot of a baby racoon wearing an intricate italian priest robe."
image
=
pipe(prompt
=
prompt, num_inference_steps
=
1
, guidance_scale
=
0.0
).images[
0
]
image.save(
"image.png"
)
从ModelScope上下载模型,然后通过其他的主流库实现模型推理,以SDXL-Turbo模型为例,完整的模型推理运行示例如下:
使用 ModelScope 和 Diffusers 库来加载一个预训练的文本到图像(Text-to-Image)生成模型,并根据给定的文本提示生成图像。
导入必要的模块
Python复制
from diffusers import AutoPipelineForText2Image
import torch
from modelscope import snapshot_download
diffusers
:一个用于生成模型的库,提供了丰富的接口来加载和使用预训练的生成模型。
torch
:PyTorch 是一个流行的深度学习框架,用于构建和训练模型。
modelscope
:ModelScope 是一个模型库,提供了多种预训练模型的管理和下载功能。
下载模型
Python复制
model_dir = snapshot_download("AI-ModelScope/sdxl-turbo" )
加载模型
Python复制
pipe = AutoPipelineForText2Image.from_pretrained(model_dir, torch_dtype=torch.float16, variant="fp16" )
将模型移动到 GPU
定义文本提示
Python复制
prompt = "A cinematic shot of a baby racoon wearing an intricate italian priest robe."
生成图像
Python复制
image = pipe(prompt=prompt, num_inference_steps=1 , guidance_scale=0.0 ).images[0 ]
pipe
:调用加载的模型管道。
prompt=prompt
:将文本提示传递给模型。
num_inference_steps=1
:指定生成图像的推理步骤数。这里设置为 1,表示只进行一步推理(通常用于快速生成,但可能影响质量)。
guidance_scale=0.0
:引导尺度,用于控制生成图像与文本提示的匹配程度。这里设置为 0.0,表示不使用引导。
.images[0]
:获取生成的图像列表中的第一张图像。
保存生成的图像
程序的功能
这段代码的功能是:
下载模型:从 ModelScope 下载指定的文本到图像生成模型。
加载模型:将下载的模型加载到内存中,并将其移动到 GPU 上(如果可用)。
生成图像:根据给定的文本提示生成图像。
保存图像:将生成的图像保存为本地文件。
运行结果
运行这段代码后,你将在当前目录下得到一个名为 image.png
的文件,该文件包含根据文本提示生成的图像。例如,根据提示 "A cinematic shot of a baby racoon wearing an intricate italian priest robe."
,生成的图像可能是一个小浣熊穿着复杂意大利牧师长袍的电影风格镜头。
注意事项
GPU 要求:代码中使用了 GPU 加速(pipe.to("cuda")
)。如果你的机器没有 GPU,可以将其改为 pipe.to("cpu")
。
模型性能:num_inference_steps=1
和 guidance_scale=0.0
设置会导致生成图像的速度较快,但可能影响图像质量和与文本提示的匹配度。可以根据需要调整这些参数。
模型大小:下载的模型可能较大,确保有足够的磁盘空间。
改成 cpu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from
diffusers
import
AutoPipelineForText2Image
import
torch
from
modelscope
import
snapshot_download
model_dir
=
snapshot_download(
"AI-ModelScope/sdxl-turbo"
)
pipe
=
AutoPipelineForText2Image.from_pretrained(model_dir, variant
=
"fp16"
)
pipe.to(
"cpu"
)
prompt
=
"A cinematic shot of a baby racoon wearing an intricate italian priest robe."
image
=
pipe(prompt
=
prompt, num_inference_steps
=
1
, guidance_scale
=
0.0
).images[
0
]
image.save(
"image.png"
)
1
2
pipe
=
AutoPipelineForText2Image.from_pretrained(model_dir, variant
=
"fp16"
)
pipe.to(
"cpu"
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from
diffusers
import
AutoPipelineForText2Image
import
torch
from
modelscope
import
snapshot_download
model_dir
=
snapshot_download(
"AI-ModelScope/sdxl-turbo"
)
pipe
=
AutoPipelineForText2Image.from_pretrained(model_dir, variant
=
"fp16"
)
pipe.to(
"cpu"
)
prompt1
=
"A cinematic shot of a baby racoon wearing an intricate italian priest robe."
prompt
=
"A girls shot of a baby racoon wearing ."
image
=
pipe(prompt
=
prompt, num_inference_steps
=
1
, guidance_scale
=
0.0
).images[
0
]
image.save(
"image.png"
)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)