generative-ai-for-beginners 第 19 课实战:小语言模型(SLM)与 Microsoft Phi-3/3.5 家族——从概念到本地推理
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
本文基于 generative-ai-for-beginners 课程第 19 课(19-slm/README.md)展开,系统讲解小语言模型(Small Language Model, SLM)的定义、训练原理、与大语言模型(LLM)的五大差异,以及 Microsoft Phi-3/3.5 家族(Instruct / Vision / MoE 三条产品线)在云端 API 与本地环境(Hugging Face Transformers、Ollama、ONNX Runtime GenAI)下的完整推理方案。读完本文,你可以独立完成 Phi-3/3.5 系列的本地部署与多模态推理调用,并理解各技术栈的适用边界。
什么是小语言模型(SLM)
小语言模型(SLM)是大语言模型(LLM)的“缩小版”:它沿用了 LLM 的大部分架构原则与训练技术,但计算足迹显著更小。SLM 是语言模型的一个子集,目标是生成类人文本。与 GPT-4 这类大型模型相比,SLM 更紧凑、更高效,因此特别适合计算资源受限的应用场景。
从构建方式看,SLM 通常由 LLM **压缩(compression)或蒸馏(distillation)**而来,旨在保留原始模型大部分的功能与语言能力。模型体积的缩减降低了整体复杂度,使 SLM 在内存占用和算力需求两方面都更高效。尽管经过优化,SLM 依然能承担多种自然语言处理(NLP)任务:
- 文本生成(Text Generation):生成连贯、上下文相关的句子或段落;
- 文本补全(Text Completion):基于给定提示预测并补全句子;
- 翻译(Translation):将文本从一种语言转换为另一种语言;
- 摘要(Summarization):把长文本压缩为更易消化的摘要。
当然,与更大的模型相比,SLM 在性能上限或理解深度上存在一定折损(trade-off),这是选型时必须权衡的代价。
小语言模型是如何工作的(训练流程)
SLM 在海量文本数据上训练。训练过程中,模型学习语言的模式与结构,从而能够生成既语法正确、又上下文贴切的文本。完整的训练流程包含四个阶段:
- 数据收集(Data Collection):从多种来源汇集大规模文本数据集;
- 预处理(Preprocessing):清洗并整理数据,使其适合训练;
- 训练(Training):使用机器学习算法教会模型理解和生成文本;
- 微调(Fine-Tuning):针对特定任务调整模型,提升其在具体任务上的表现。
SLM 的发展路线与一个现实需求高度一致:越来越多的场景(如移动设备、边缘计算平台)需要在资源受限的环境中部署模型,而全尺寸 LLM 由于资源开销巨大往往“装不下、跑不动”。通过聚焦效率,SLM 在性能与可及性之间取得平衡,从而能够在更多领域落地。
学习目标
本课将 SLM 的理论知识与 Microsoft Phi-3 家族相结合,覆盖文本、视觉与 MoE(专家混合)三类应用场景。学完后应能回答以下问题:
- 什么是 SLM?
- SLM 与 LLM 有什么区别?
- 什么是 Microsoft Phi-3/3.5 家族?
- 如何用 Microsoft Phi-3/3.5 家族完成推理?
LLM 与 SLM 的核心差异
两者都建立在概率机器学习的相同基础之上,在架构设计、训练方法、数据生成过程和模型评估技术上都遵循相似的路径。但在以下五个维度上,两者存在显著差别。
差异一:尺寸(Size)
最本质的区别在于模型规模。LLM 如 ChatGPT(GPT-4)据估计拥有约1.76 万亿(1.76T)个参数;而开源 SLM 如 Mistral 7B 只有约70 亿(7B)参数。这种数量级差异主要来自架构与训练流程的不同:ChatGPT 采用 encoder-decoder 框架中的自注意力(self-attention)机制,而 Mistral 7B 使用滑窗注意力(sliding window attention),在 decoder-only 架构中实现更高效的训练。架构差异会深刻影响模型的复杂度与性能表现。
差异二:理解能力(Comprehension)
SLM 通常针对特定领域优化,高度专业化,但在跨领域的广泛上下文理解上可能受限。LLM 则追求在更全面的层面模拟类人智能:它们在庞大且多样化的数据集上训练,设计上就要在多个领域表现良好,具备更强的通用性与适应力。因此,LLM 更适合覆盖自然语言处理、编程等更广范围的下游任务。
差异三:算力(Computing)
LLM 的训练与部署是资源密集型过程,通常需要大规模 GPU 集群——从零训练一个 ChatGPT 级别的模型可能需要数千张 GPU 运行很长时间。相比之下,SLM 凭借更少的参数,对算力资源的要求低得多:Mistral 7B 这类模型可以在配备中等 GPU 的本地机器上训练和运行,尽管训练仍需多张 GPU 协作数小时。
差异四:偏见(Bias)
偏见是 LLM 的已知问题,根源主要在训练数据:LLM 常基于网络上抓取的生数据训练,这些数据可能低估或歪曲某些群体、引入错误标注,或反映受方言、地域和语法规则影响的语言偏见。此外,LLM 复杂的架构可能在无精细微调的情况下无意中放大偏见。相反,SLM 基于更有约束、更领域化的数据集训练,天生对此类偏见的敏感度更低——但并非完全免疫。
差异五:推理速度(Inference)
体积更小赋予 SLM 显著的推理速度优势:它们可以在本地硬件上高效生成输出,无需大规模并行处理。LLM 因体积与复杂度,往往需要大量并行计算资源才能达到可接受的推理时延;当大量并发用户同时使用时,响应时间会进一步恶化,规模化部署时尤为明显。
小结:LLM 与 SLM 共享机器学习基础,但在模型尺寸、资源需求、上下文理解能力、偏见倾向和推理速度上差异显著。LLM 更通用但资源消耗大;SLM 以更低的算力要求提供领域特化的效率。
小语言模型的典型应用
SLM 的应用场景广泛,主要包括:
- 聊天机器人:提供客户支持,以对话方式与用户互动;
- 内容创作:辅助作者生成创意,甚至起草整篇文章;
- 教育:帮助学生完成写作作业或学习新语言;
- 无障碍(Accessibility):为残障人士创建工具,如文本转语音(TTS)系统。
注:本课以 Microsoft Phi-3 / 3.5 为例来介绍 SLM。
认识 Phi-3 / Phi-3.5 家族
Phi-3 / 3.5 家族主要面向**文本(Instruct)、视觉(Vision)与智能体(Agent, MoE)**三类应用场景。
Phi-3 / 3.5 Instruct 系列
Instruct 系列主要用于文本生成、对话补全与内容信息抽取等场景。
Phi-3-mini(3.8B)3.8B 参数的语言模型,可在 Microsoft Azure AI Studios、Hugging Face 与 Ollama 上获取。Phi-3 系列在关键基准测试上显著超越同等或更大规模的语言模型(基准数值越大越好)。Phi-3-mini 的表现超过了体积为其两倍的模型,Phi-3-small 与 Phi-3-medium 则超过了包括 GPT-3.5 在内的更大模型。
Phi-3-small & Phi-3-medium仅 7B 参数的 Phi-3-small 就在多种语言、推理、编码与数学基准上超越了 GPT-3.5T。14B 参数的 Phi-3-medium 延续这一趋势,超越了 Gemini 1.0 Pro。
Phi-3.5-mini(3.8B)可视为 Phi-3-mini 的升级:参数规模不变,但多语言支持能力增强(支持 20 种以上语言:阿拉伯语、中文、捷克语、丹麦语、荷兰语、英语、芬兰语、法语、德语、希伯来语、匈牙利语、意大利语、日语、韩语、挪威语、波兰语、葡萄牙语、俄语、西班牙语、瑞典语、泰语、土耳其语、乌克兰语),并加入了更强的长上下文支持。Phi-3.5-mini 以 3.8B 参数超越同尺寸语言模型,表现与比它大 1.5~2 倍的模型相当。
Phi-3 / 3.5 Vision 系列
可以这样理解:Instruct 模型是 Phi 的“理解力”,而 Vision 则赋予了 Phi 认识世界的“眼睛”。
Phi-3-Vision(4.2B)仅 4.2B 参数,却在通用视觉推理、OCR 以及表格与图表理解任务上超越了 Claude-3 Haiku 与 Gemini 1.0 Pro V 等更大的模型。
Phi-3.5-VisionPhi-3.5-Vision 是 Phi-3-Vision 的升级,新增多图片(多帧)输入支持——不只是“看”单张图片,还能对多帧内容进行推理(即初步的“看视频”能力)。它在 OCR、表格与图表理解任务上超越 Claude-3.5 Sonnet 与 Gemini 1.5 Flash,并在通用视觉知识推理任务上与之持平。
Phi-3.5-MoE(专家混合)
**专家混合(Mixture of Experts, MoE)**让模型可以用少得多的计算量完成预训练——也就是说,在相同的算力预算下,MoE 模型可以把模型或数据规模放大到稠密(dense)模型难以企及的程度。具体而言,MoE 模型在预训练阶段就能比其稠密对应版本更快地达到同等质量。
Phi-3.5-MoE 由16 个 3.8B 专家模块组成,虽然激活参数仅 6.6B,却能在推理、语言理解与数学能力上达到与远大于它的模型相当的水平。
得益于上述紧凑设计,与 LLM 不同,Phi-3/3.5-mini 或 Phi-3/3.5-Vision 可以部署在边缘设备上。
云端 API 推理:三条接入路径
以下按课程文档给出的路径,介绍通过云端 API 调用 Phi-3/3.5 的方式。
路径一:GitHub Models
GitHub Models 是最直接的途径:可以直接访问 Phi-3/3.5-Instruct 模型,配合 Azure AI Inference SDK / OpenAI SDK 通过代码发起 API 调用;也可以直接通过 Playground 在线体验不同模型的效果。
课程文档附带了一个对比 Demo:在中文场景下比较 Phi-3-mini 与 Phi-3.5-mini 的输出差异,直观展示多语言与长上下文升级带来的效果提升:
路径二:Azure AI Studio
若需要使用 Vision 与 MoE 模型,可以借助 Azure AI Studio 完成调用。课程文档建议参考 Phi-3 Cookbook 的 QuickStart 指南,学习如何通过 Azure AI Studio 调用 Phi-3/3.5 的 Instruct、Vision 与 MoE 模型。
路径三:NVIDIA NIM
除 Azure 与 GitHub 提供的云模型目录外,还可以使用 **NVIDIA NIM(NVIDIA Inference Microservices,NVIDIA 推理微服务)**完成 Phi-3/3.5 家族的 API 调用。NIM 是一套加速推理微服务,帮助开发者在云端、数据中心与工作站等多种环境中高效部署 AI 模型。其核心特性包括:
- 部署简便:单条命令即可部署 AI 模型,便于融入现有工作流;
- 性能优化:内置 TensorRT、TensorRT-LLM 等 NVIDIA 预优化推理引擎,保障低时延与高吞吐;
- 可扩展性:支持 Kubernetes 自动扩缩容,从容应对波动的负载;
- 安全可控:组织可以把 NIM 微服务托管在自己的基础设施上,保持对数据与应用的控制;
- 标准 API:提供行业标准 API,构建聊天机器人、AI 助手等应用十分容易。
NIM 属于 NVIDIA AI Enterprise 的一部分,目标是简化 AI 模型的部署与运维,确保其在 NVIDIA GPU 上高效运行。
仓库中的真实 Demo:19-slm/python/Phi-3-Vision-Nividia-NIM.ipynb 展示了完整的调用链,可作为源码级参考:
import requests, base64 invoke_url = "https://ai.api.nvidia.com/v1/vlm/microsoft/phi-3-vision-128k-instruct" with open("./img/demo.png", "rb") as f: image_b64 = base64.b64encode(f.read()).decode() # 上传前校验图片大小(超过 180_000 字符需改用 assets API) assert len(image_b64) < 180_000, \ "To upload larger images, use the assets API (see docs)" headers = { "Authorization": "Bearer Your Nvidia NIM API Key", "Accept": "application/json" } payload = { "messages": [ { "role": "user", "content": f'Please create Python code for image ... <img src="data:image/png;base64,{image_b64}" />' } ], "max_tokens": 1024, "temperature": 0.6, "top_p": 1.0, "stream": False } response = requests.post(invoke_url, headers=headers, json=payload) code = response.json()["choices"][0]["message"]["content"]从该 Notebook 的源码结构看,NIM 端点采用与 OpenAI 兼容的messages结构,图片以data:image/png;base64内联进用户消息;生成参数(max_tokens、temperature、top_p)与 OpenAI 风格一致,这意味着现有的 OpenAI SDK 代码只需替换 endpoint 与密钥即可迁移。
本地运行 Phi-3/3.5
对 Phi-3(或 GPT-3 等任何语言模型)而言,“推理(inference)”指的是基于输入生成响应或预测的过程:当向 Phi-3 提供提示或问题时,它会利用训练好的神经网络,通过分析训练数据中的模式与关联,推断出最可能且最相关的回答。本地推理有三条主流路径,外加一个跨平台引擎方案。
方案一:Hugging Face Transformers
Hugging Face Transformers 是面向 NLP 及其他机器学习任务的强大库,其关键特性:
- 预训练模型库:提供数千个预训练模型,覆盖文本分类、命名实体识别、问答、摘要、翻译与文本生成等任务;
- 框架互操作:支持 PyTorch、TensorFlow、JAX 等多个深度学习框架,模型可在一个框架训练、在另一个框架使用;
- 多模态能力:除 NLP 外,还支持计算机视觉(图像分类、目标检测)与音频处理(语音识别、音频分类);
- 易用性:提供下载与微调模型的 API 和工具,新手与专家都能上手;
- 社区与资源:拥有活跃社区、完善的文档、教程与学习指南。
这是最常用的本地方法,但需要 GPU 加速:Vision 与 MoE 场景计算量大,未量化时在 CPU 上会非常慢。
仓库中的三个官方 Demo(均可在 19-slm/python/ 目录找到):
- Instruct 文本推理:19-slm/python/phi35-instruct-demo.ipynb
- Vision 视觉推理:19-slm/python/phi35-vision-demo.ipynb
- MoE 智能体推理:19-slm/python/phi35_moe_demo.ipynb
(1)Instruct Demo 的源码解读
phi35-instruct-demo 的核心调用链如下:
import torch from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline torch.random.manual_seed(0) model = AutoModelForCausalLM.from_pretrained( "../phi-3-instruct", device_map="cuda", torch_dtype="auto", trust_remote_code=True, ) tokenizer = AutoTokenizer.from_pretrained("../phi-3-instruct") # Phi-3 的对话模板:system / user / assistant 三段式 messages = "<|system|>\n 你是我的人工智能助手,协助我用中文解答问题.\n<|end|>" \ "<|user|>\n 你知道长沙吗?? \n<|end|><|assistant|>" pipe = pipeline("text-generation", model=model, tokenizer=tokenizer) generation_args = { "max_new_tokens": 1024, "return_full_text": False, "temperature": 0.3, "do_sample": False, } output = pipe(messages, **generation_args) print(output[0]['generated_text'])几个值得注意的实现细节:
device_map="cuda"与torch_dtype="auto":模型直接加载到 GPU 并自动选择精度,这是 Phi-3 本地推理的标配写法;trust_remote_code=True:Phi-3 依赖仓库内的自定义处理代码,必须显式信任;- Phi-3 的对话模板为
<|system|>...<|end|><|user|>...<|end|><|assistant|>,即系统指令、用户输入与助手响应由特殊 token 分隔——手写 prompt 时必须严格遵循这一格式,否则模型行为会不稳定; - 生成参数中
temperature=0.3配合do_sample=False,意味着实际走的是贪心解码路径,输出更确定、可复现。
(2)Vision Demo 的源码解读
phi35-vision-demo 演示了 Phi-3.5-Vision 的多帧(多图片)输入能力:
from transformers import AutoModelForCausalLM, AutoProcessor model_id = "../Phi3Vision" model = AutoModelForCausalLM.from_pretrained( model_id, device_map="cuda", trust_remote_code=True, torch_dtype="auto", _attn_implementation='flash_attention_2') # 为每一帧构造 <|image_i|> 占位符 images = [] placeholder = "" for i in range(1, 22): images.append(Image.open(f"../output/keyframe_{i}.jpg")) placeholder += f"<|image_{i}|\>\n" messages = [{"role": "user", "content": placeholder + "Summarize the video."}] processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True, num_crops=4) prompt = processor.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = processor(prompt, images, return_tensors="pt").to("cuda:0") generation_args = {"max_new_tokens": 1000, "temperature": 0.0, "do_sample": False} generate_ids = model.generate(**inputs, eos_token_id=processor.tokenizer.eos_token_id, **generation_args) generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:] response = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]可以看到多帧推理的关键机制:每张输入图片在 prompt 中对应一个<|image_i|>占位 token,AutoProcessor负责把图片编码并与占位符对齐(num_crops=4控制每张图的多裁剪区域数量);_attn_implementation='flash_attention_2'启用 FlashAttention 以降低显存占用、加速长序列注意力计算;最后通过切片generate_ids[:, inputs['input_ids'].shape[1]:]去掉输入部分,只保留新生成的 token。Notebook 前半部分还提供了用 OpenCV 直方图相似度(cv2.compareHist,阈值 0.9)从视频中抽取关键帧的辅助脚本,正好与 Phi-3.5-Vision“对多帧进行推理”的官方能力相呼应。
(3)MoE Demo 的源码解读
phi35_moe_demo 展示了把 Phi-3.5-MoE 用作工具调用型智能体的方式:
from torch import bfloat16 import transformers model_id = "../Phi3MOE" model = transformers.AutoModelForCausalLM.from_pretrained( model_id, trust_remote_code=True, torch_dtype=bfloat16, device_map='auto') model.eval() tokenizer = transformers.AutoTokenizer.from_pretrained(model_id) pipe = transformers.pipeline("text-generation", model=model, tokenizer=tokenizer) # Phi-3.5 的对话格式化函数 def instruction_format(sys_message: str, query: str): return f'<|system|> {sys_message} <|end|>\n<|user|> {query} <|end|>\n<|assistant|>' query = 'Write something about Generative AI with MOE, translate it to Chinese' input_prompt = instruction_format(sys_msg, query) generation_args = { "max_new_tokens": 512, "return_full_text": False, "temperature": 0.3, "do_sample": False, } output = pipe(input_prompt, **generation_args) print(output[0]['generated_text'])从源码结构看,该 Demo 的 system prompt 明确要求模型以 JSON 形式输出tool_name/input键值对(如{"tool_name": "Blog", "input": "..."}),并规定最终结果按agentid(step1 / step2 / final)分步组织——这正是 MoE 模型在课程中定位的 “Agent(智能体)” 场景。另外,Notebook 中通过os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True"调整显存分配策略,以缓解 MoE 架构(16 个专家模块)带来的碎片化显存压力,这是本地运行 MoE 模型时的实用调优技巧。
方案二:Ollama
Ollama 是一个让 LLM 在本地机器上更容易运行的平台,支持 Llama 3.1、Phi 3、Mistral、Gemma 2 等多种模型。它把模型权重、配置与数据打包进单一安装包,降低了自定义与创建模型的门槛,提供 macOS、Linux 与 Windows 版本,非常适合不想依赖云服务、只想本地实验 LLM 的用户。
Ollama 是本地运行中最直接的方式,只需执行一条命令:
ollama run phi3.5方案三:ONNX Runtime GenAI
ONNX Runtime 是什么?ONNX Runtime 是跨平台的机器学习推理与训练加速器,也是支持高性能推理的开源项目。它支持 ONNX(Open Neural Network Exchange)格式——这是机器学习模型表示的通用标准。其推理能力可带来更快的用户体验与更低的成本,既支持来自 PyTorch、TensorFlow/Keras 等深度学习框架的模型,也支持 scikit-learn、LightGBM、XGBoost 等经典机器学习库的模型。ONNX Runtime 兼容不同的硬件、驱动与操作系统,在可用时利用硬件加速器,并配合图优化与变换提供最优性能。
什么是生成式 AI?生成式 AI 指能够基于训练数据生成新内容(文本、图像、音乐等)的 AI 系统,例如 GPT-3 这类语言模型与 Stable Diffusion 这类图像生成模型。ONNX Runtime GenAI 库为 ONNX 模型提供完整的生成式 AI 循环:ONNX Runtime 推理、logits 处理、搜索与采样,以及 KV 缓存(KV cache)管理。
ONNX Runtime GenAI 的主要特性:
- 广泛的平台支持:运行于 Windows、Linux、macOS、Android、iOS;
- 模型支持:支持 LLaMA、GPT-Neo、BLOOM 等众多流行生成式模型;
- 性能优化:针对 NVIDIA GPU、AMD GPU 等不同硬件加速器做了优化;
- 易用性:提供便于集成的 API,用极少代码即可生成文本、图像等内容;
- 用户既可调用高层
generate()方法,也可在循环中逐次迭代、每次生成一个 token,并可在循环内动态更新生成参数; - 支持贪心/束搜索(greedy/beam search)与 TopP、TopK 采样来生成 token 序列,内置重复惩罚等 logits 处理,也方便加入自定义打分逻辑。
快速上手:
安装 ONNX Runtime 与生成式 AI 扩展:
pip install onnxruntime pip install onnxruntime-genai一个最简单的 Python 示例:
import onnxruntime_genai as og model = og.Model('path_to_your_model.onnx') tokenizer = og.Tokenizer(model) input_text = "Hello, how are you?" input_tokens = tokenizer.encode(input_text) output_tokens = model.generate(input_tokens) output_text = tokenizer.decode(output_tokens) print(output_text)使用 ONNX Runtime GenAI 调用 Phi-3.5-Vision 的完整 Demo(对应课程文档中的多模态流式推理示例):
import onnxruntime_genai as og model_path = './Your Phi-3.5-vision-instruct ONNX Path' img_path = './Your Image Path' model = og.Model(model_path) processor = model.create_multimodal_processor() tokenizer_stream = processor.create_stream() text = "Your Prompt" # Phi-3 Vision 的对话模板:user / image_1 / assistant prompt = "<|user|>\n" prompt += "<|image_1|>\n" prompt += f"{text}<|end|>\n" prompt += "<|assistant|>\n" image = og.Images.open(img_path) inputs = processor(prompt, images=image) params = og.GeneratorParams(model) params.set_inputs(inputs) params.set_search_options(max_length=3072) # 逐 token 流式生成循环 generator = og.Generator(model, params) while not generator.is_done(): generator.compute_logits() generator.generate_next_token() new_token = generator.get_next_tokens()[0] output = tokenizer_stream.decode(new_token) print(tokenizer_stream.decode(new_token), end='', flush=True)这段代码体现了 ONNX Runtime GenAI 的核心编程模型:og.Model加载 ONNX 权重,create_multimodal_processor处理图文输入,GeneratorParams设置输入与搜索选项(如max_length=3072),Generator以is_done → compute_logits → generate_next_token的循环逐 token 产出结果,适合需要流式输出的应用。
其他本地方案
除 ONNX Runtime 与 Ollama 之外,还可以基于各厂商提供的模型引用方案完成量化模型的推理,例如:
- Apple MLX 框架(配合 Apple Metal);
- Qualcomm QNN(NPU 加速);
- Intel OpenVINO(CPU/GPU 加速)。
课程文档同时建议:如需更深入的 Phi-3/3.5 使用技巧,可参阅 Phi-3 Cookbook(微软官方 SLM 实践手册)获取更多内容。
总结
回到本课的四个学习目标,本文已给出完整答案:
- SLM 是什么:由 LLM 压缩/蒸馏而来、计算足迹显著更小但仍能完成文本生成、补全、翻译、摘要等 NLP 任务的语言模型子集;
- SLM 与 LLM 的区别:集中在尺寸(1.76T 级参数 vs 7B 级)、领域理解深度、算力门槛、偏见倾向与推理速度五个维度,本质是“通用性与效率”的取舍;
- Phi-3/3.5 家族:Instruct(3.8B/7B/14B 三档文本模型)、Vision(4.2B 单图 → 多帧视频理解)与 MoE(16×3.8B 专家、6.6B 激活参数)三条产品线,均可部署到边缘设备;
- 如何推理:云端走 GitHub Models / Azure AI Studio / NVIDIA NIM 三条 API 路径;本地走 Hugging Face Transformers(功能最全、需 GPU)、Ollama(一条命令最快)与 ONNX Runtime GenAI(跨平台、可精细控制生成循环)三种方案,仓库内 19-slm/python/ 提供了四个可运行的官方 Notebook 作为逐行参考。
掌握以上内容后,你已具备在资源受限环境下选型、部署并调用 SLM 的完整能力——这正是 Phi-3/3.5 这一代小模型相比 LLM 的最大实战价值。
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考