ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

generative-ai-for-beginners 第 21 课实战:基于 Meta 家族模型 Llama 3.1 / 3.2 构建生成式 AI 应用

generative-ai-for-beginners 第 21 课实战:基于 Meta 家族模型 Llama 3.1 / 3.2 构建生成式 AI 应用 generative-ai-for-beginners 第 21 课实战基于 Meta 家族模型 Llama 3.1 / 3.2 构建生成式 AI 应用【免费下载链接】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 的第 21 课仓库内正文见 translations/de/21-meta/README.md英文主版见 21-meta/README.md展开系统讲解 Meta 家族Llama 羊群中两大主力模型 Llama 3.1 与 Llama 3.2 的定位、适用场景与编码方式。读完本文你将掌握如何在模型推理 API 上选用 Llama 3.1 变体触发原生函数调用以及如何调用 Llama 3.2 视觉模型同时处理文本 图片两类输入把开源模型能力真正落到可运行的生成式 AI 应用里。课程导读本节学什么第 21 课的核心学习目标非常聚焦共三条认识 Meta 家族两大主模型——Llama 3.1 与 Llama 3.2理解每个模型的典型应用场景use-case通过代码示例演示每个模型独有的能力。课程配套的动手练习以 Notebook 形式提供英文源 21-meta/python/githubmodels-assignment.ipynb德文翻译版 translations/de/21-meta/python/githubmodels-assignment.ipynb。Notebook 中的环境准备单元会先执行两条安装命令%pip install azure-core %pip install azure-ai-inference也就是说本课示例依赖azure-ai-inference推理客户端与azure-core凭据与传输基础库两个 Python 包。Meta 家族模型概览Llama 羊群中的两大主力本课挑选了 Meta 家族中发布时序相邻的两个代表——Llama 3.1 与 Llama 3.2。它们以多种参数规模变体出现可从模型市场GitHub Models直接选用。课程中可用的变体清单如下模型变体定位按课程描述Llama 3.170B Instruct文本指令模型体量相对轻量Llama 3.1405B Instruct旗舰级开源参数规模函数调用 / RAG 场景主力Llama 3.211B Vision Instruct中等规模的视觉-语言多模态模型Llama 3.290B Vision Instruct大参数多模态模型图像理解能力更强需要说明Llama 3 同样存在于模型市场但本课不将其作为讲解对象示例代码均围绕 Llama 3.1 / 3.2 展开。要理解两个模型的差异关键线索在于代际分工Llama 3.1 把文本大模型的上下文与工具调用推向新高度Llama 3.2 则在保持文本能力的同时补齐多模态输入。下文分别深入。Llama 3.1以 405B 开源参数支撑复杂应用场景Llama 3.1 405B Instruct 拥有约 4050 亿参数属于典型的开源大型语言模型open-source LLM阵营。课程明确把它定位为 Llama 3 的一次代际升级升级体现在三个可量化的维度上更大的上下文窗口128k TokensLlama 3 为 8k Tokens可一次性容纳长文档、长对话或大批检索片段更大的最大输出长度4096 TokensLlama 3 为 2048 Tokens单次生成的文本量上限翻倍更好的多语言支持得益于训练语料 token 数量的增加跨语言能力随之增强。上下文窗口扩大并非只是能读更多字它直接解锁了三类更具工程价值的复杂用例原生函数调用Native Function Calling——模型可以判断何时需要调用外部工具并发出调用外部函数/工具的指令把流程延伸到 LLM 工作流之外更强的 RAG 效果——更大的上下文窗口允许把更多检索到的资料一次性注入提示词从而改善检索增强生成的质量合成数据生成——模型可为微调fine-tuning等任务批量构造高质量训练数据。这三类能力在本课程体系中均有后续纵深。函数调用的完整工程范式见第 11 课 11-integrating-with-function-calling/README.mdRAG 检索与向量数据库在第 15 课 15-rag-and-vector-databases/README.md 有系统讲解微调含数据准备则在第 18 课 18-fine-tuning/README.md。原生函数调用实战让 Llama 3.1 自己决定调什么工具Llama 3.1 经过针对性微调在执行函数/工具调用时更加可靠。特别地它内置了两个开箱即用的工具模型会根据用户提示词自行判断是否需要触发Brave Search——通过网页搜索获取实时信息例如天气这类对时效性敏感的数据Wolfram Alpha——处理复杂数学计算免去自行编写数学函数的成本。除了内置工具开发者也可以自定义工具交给 LLM 调用。课程给出的示例演示了一个完整链路先在系统提示词中声明可用工具集brave_search、wolfram_alpha随后发送一条询问斯德哥尔摩天气的用户消息模型将返回对 Brave Search 的工具调用其文本形态为|python_tag|brave_search.call(queryStockholm weather)。import os from azure.ai.inference import ChatCompletionsClient from azure.ai.inference.models import AssistantMessage, SystemMessage, UserMessage from azure.core.credentials import AzureKeyCredential token os.environ[GITHUB_TOKEN] endpoint https://models.inference.ai.azure.com model_name meta-llama-3.1-405b-instruct client ChatCompletionsClient( endpointendpoint, credentialAzureKeyCredential(token), ) # 在系统提示词中声明可用工具并给出运行环境约束 tool_prompt f |begin_of_text||start_header_id|system|end_header_id| Environment: ipython Tools: brave_search, wolfram_alpha Cutting Knowledge Date: December 2023 Today Date: 23 July 2024 You are a helpful assistant|eot_id| messages [ SystemMessage(contenttool_prompt), UserMessage(contentWhat is the weather in Stockholm?), ] response client.complete(messagesmessages, modelmodel_name) print(response.choices[0].message.content)从代码可以拆解出几个关键实现细节提示词模板系统提示词以|begin_of_text|开头用|start_header_id|system|end_header_id| ... |eot_id|界定系统消息段|python_tag|则用于标记模型返回的 Python 风格工具调用这些特殊标记是 Llama 模型约定格式的一部分需要照原文保留工具声明Tools: brave_search, wolfram_alpha一行把可用工具集合告知模型这是模型自行决定调用哪个工具的前提客户端构造通过ChatCompletionsClient(endpoint..., credentialAzureKeyCredential(token))建立会话其中GITHUB_TOKEN从环境变量读取一次补全client.complete(messagesmessages, modelmodel_name)完成单轮调用结果从response.choices[0].message.content取出打印。需要特别提醒课程原注上述示例仅演示模型做出工具调用这一决策动作并不会真正执行搜索。若想拿到真实搜索结果还需要在 Brave API 平台注册免费账号自行实现该函数并把工具调用分发到函数执行逻辑上。Llama 3.2开源模型补上多模态短板Llama 3.1 虽然强大但本质上仍是纯文本 LLM——它无法把图片等异质输入当作提示词理解并作出回应。这正是 Llama 3.2 的核心卖点其特性可归纳为三点多模态能力——可同时评估文本与图像提示词是开源模型世界迈出的一大步中大规模变体11B / 90B——在能力与部署成本之间提供灵活选项纯文本轻量变体1B / 3B——面向边缘设备 / 移动端部署可提供低延迟推理。其中 1B/3B 这类小参数纯文本模型与课程第 19 课对小型语言模型SLM的讨论相呼应见 19-slm/README.md小体量换来了端侧可部署性与低延迟。而视觉能力让 Llama 3.2 补上了 Meta 家族此前缺失的看图说话链路。图文双模态实战用 Llama 3.2 90B 做图像分析下面的示例同时携带文本问题 本地图片两类内容请求模型分析系统消息要求助手详细描述图像用户消息则由文本Whats in this image?与一张本地图片组成。代码中图片正是仓库内的 21-meta/python/sample.jpg一幅生成式 AI 教学场景的截图画面左侧是戴着耳机的讲解者右侧展示了一个 AI 模型目录MODEL CATALOG页面可用于直观验证模型是否真的看懂了画面中的人与界面元素。示例代码节选自课程正文如下import os from azure.ai.inference import ChatCompletionsClient from azure.ai.inference.models import ( SystemMessage, UserMessage, TextContentItem, ImageContentItem, ImageUrl, ImageDetailLevel, ) from azure.core.credentials import AzureKeyCredential token os.environ[GITHUB_TOKEN] endpoint https://models.inference.ai.azure.com model_name Llama-3.2-90B-Vision-Instruct client ChatCompletionsClient( endpointendpoint, credentialAzureKeyCredential(token), ) response client.complete( messages[ SystemMessage( contentYou are a helpful assistant that describes images in details. ), UserMessage( content[ TextContentItem(textWhats in this image?), ImageContentItem( image_urlImageUrl.load( image_filesample.jpg, image_formatjpg, detailImageDetailLevel.LOW) ), ], ), ], modelmodel_name, ) print(response.choices[0].message.content)这段代码相较纯文本调用有四处结构差异值得关注模型名切换model_name指向视觉模型Llama-3.2-90B-Vision-Instruct用户消息多模态化UserMessage的content不再是一个字符串而是一个内容项列表由TextContentItem文本与ImageContentItem图片拼装而成本地图片装载ImageUrl.load(image_filesample.jpg, image_formatjpg)负责从本地文件读取并上传图片image_format显式声明格式为jpg细节等级参数detailImageDetailLevel.LOW指定请求图片时采用的细节档位示例选择较低档以控制传输开销。运行前提是示例图片文件sample.jpg位于代码执行目录下仓库内对应文件为 21-meta/python/sample.jpg若在其他目录执行可把image_file改为指向该文件的完整或相对路径。模型返回的response.choices[0].message.content即为对画面内容的文字描述可直接打印查看。运行环境与仓库实操提示在动手前请先确认以下几点均与本仓库第 21 课相关文件的描述一致依赖安装先执行pip install azure-core azure-ai-inferenceNotebook 环境中写作%pip install凭据注入两个示例都通过os.environ[GITHUB_TOKEN]读取访问令牌请确保运行前已设置GITHUB_TOKEN环境变量例如在终端执行export GITHUB_TOKEN你的令牌或在 Notebook 中先写入该变量默认端点两个示例均指向公共推理端点https://models.inference.ai.azure.com模型名称按变体区分meta-llama-3.1-405b-instruct与Llama-3.2-90B-Vision-Instruct可用代码载体上述两段代码都已完整收录于课程 Notebook 21-meta/python/githubmodels-assignment.ipynb逐格运行即可复现。关于平台的版本演进提示仓库当前英文主版 21-meta/README.md 指出GitHub Models 将于 2026 年 7 月底停用推荐迁移至 Microsoft Foundry Models 目录进行 AI 模型原型验证迁移后代码中对应改为从AZURE_INFERENCE_ENDPOINT/AZURE_INFERENCE_CREDENTIAL读取端点与凭据模型名也调整为 Foundry 目录中的规范名如Meta-Llama-3.1-405B-Instruct。本课德文翻译 translations/de/21-meta/README.md 仍保留旧版调用形态对照英文版 translations/en/21-meta/README.md 可以清晰看到这一迁移路径。因此在实际运行时请以你所用平台当前支持的端点、凭据变量名与模型标识为准。学完本课之后把 Llama 放进更大的课程拼图本课聚焦选对 Meta 模型并调用其独有能力是整条 21 课学习路径的收尾一环可与邻近主题串联成完整能力链想深入函数调用tool calling全流程可回到第 11 课 11-integrating-with-function-calling/README.md想在应用中落地检索增强参考第 08 课 08-building-search-applications/README.md 与第 15 课 15-rag-and-vector-databases/README.md想让模型更贴合自身业务可在掌握 Llama 3.1 合成数据能力后进入第 18 课 18-fine-tuning/README.md对照第 20 课 Mistral 家族 20-mistral/README.md可以横向比较不同开源模型家族小体量 强能力的实现路线。回到本课本身一句话总结就是——文本大任务交给 Llama 3.1 的长上下文与工具调用图文混合理解交给 Llama 3.2 的多模态变体再按部署端云端大模型 / 端侧小模型选取合适的参数规模即可把 Meta 家族模型快速接入你的生成式 AI 应用。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表