
在 generative-ai-for-beginners 中使用 Meta 家族模型Llama 3.1 原生函数调用与 Llama 3.2 多模态实战指南【免费下载链接】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 课21-meta的完整技术解读聚焦 Meta 家族Llama 羊群两大开源模型Llama 3.1 与 Llama 3.2。你将掌握如何通过 Microsoft Foundry Models 的 Azure AI Inference SDK 调用这些模型用 Llama 3.1 的原生函数调用Function Calling让模型触发外部工具并用 Llama 3.2 的视觉多模态能力同时理解文本与图片输入。课程背景与本课定位在完成第 20 课Mistral之后本课把目光转向 Meta 开源生态。作为一门面向初学者的生成式 AI 课程本课的目标非常聚焦探索 Meta 家族的两个主力模型Llama 3.1与Llama 3.2理解每个模型适合的使用场景use cases通过可运行的代码示例演示每个模型的核心独有特性。配套的可执行代码位于 21-meta/python/githubmodels-assignment.ipynb读者可以在 Jupyter 环境中逐 Cell 运行验证。Meta 家族模型概览从 Llama 3.1 到 Llama 3.2Meta 家族的模型以Llama 羊群Llama Herd著称本课重点探讨其中两个模型的多个变体。这些变体均可通过Microsoft Foundry Models 模型目录一个统一端点 一个 API Key 即可访问 OpenAI、Meta、Mistral、Cohere、Microsoft 等数百个模型的服务获取。注意根据本仓库 00-course-setup/03-providers.md 的说明GitHub Models 将于 2026 年 7 月底退役Microsoft Foundry Models 是其直接替代方案提供相同的免费试用模型目录与 Azure AI Inference SDK / OpenAI SDK 体验。因此本课代码统一采用 Microsoft Foundry 的端点与凭据配置。本课涉及的模型变体如下模型变体定位Llama 3.170B Instruct中大规模开源指令模型Llama 3.1405B Instruct千亿级开源大模型Llama 3.211B Vision Instruct中小规模多模态视觉文本模型Llama 3.290B Vision Instruct大规模多模态模型注Llama 3 在 Microsoft Foundry Models 中同样可用但本课不展开讲解聚焦于其升级版本。Llama 3.1从参数规模到复杂场景能力Llama 3.1 拥有4050 亿405B参数属于开源 LLM 范畴。作为早期 Llama 3 的升级版它在三个关键维度上做了显著增强能力维度Llama 3Llama 3.1上下文窗口Context Window8k tokens128k tokens最大输出 TokenMax Output Tokens20484096多语言支持训练 token 较少训练 token 增加多语言能力更强这三大升级让 Llama 3.1 在处理复杂生成式 AI 应用时具备了三个关键能力原生函数调用Native Function Calling——在 LLM 工作流之外调用外部工具与函数的能力更好的 RAG 性能——得益于更高的上下文窗口可以塞入更多检索上下文相关课程见 15-rag-and-vector-databases合成数据生成Synthetic Data Generation——为微调见 18-fine-tuning等任务高效构造训练数据。深入理解原生函数调用Native Function Calling函数调用是让 LLM 摆脱只能回答训练截止日期前知识的关键机制。Llama 3.1 经过专门微调在发起函数/工具调用时更加高效。更重要的是模型自带两个内置工具模型会依据用户提示自动判断是否需要调用Brave Search——执行网络搜索获取实时信息例如天气Wolfram Alpha——处理更复杂的数学计算无需自己编写计算函数。此外你完全可以自定义工具供 LLM 调用。关于函数调用的完整方法论与端到端集成流程可以参考本仓库第 11 课 11-integrating-with-function-calling——该课详细讲解了如何定义函数、解析模型返回的function_call项、映射到真实 Python 函数并回传结果。函数调用代码示例下面的示例演示了完整的工具声明与调用过程在系统提示system prompt中定义可用工具brave_search、wolfram_alpha发送一条询问某城市天气的用户提示LLM 将以工具调用作为响应形式类似|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 # Get these from your Microsoft Foundry projects Overview page token os.environ[AZURE_INFERENCE_CREDENTIAL] endpoint os.environ[AZURE_INFERENCE_ENDPOINT] model_name Meta-Llama-3.1-405B-Instruct client ChatCompletionsClient( endpointendpoint, credentialAzureKeyCredential(token), ) tool_promptf |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)示例要点拆解tool_prompt使用 Llama 3.1 的原生 Chat Template 特殊 token|begin_of_text|、|start_header_id|system|end_header_id|、|eot_id|构造系统消息其中Tools: brave_search, wolfram_alpha一行即是对模型的工具清单声明client.complete()返回的响应中message.content会携带工具调用指令而非自然语言答案该提示中还声明了Environment: ipython与Cutting Knowledge Date/Today Date帮助模型理解运行环境与时效性边界。重要提示该示例只演示了发起工具调用这一环。若想真正获得结果需要在 Brave API 页面创建免费账户并在代码中定义brave_search函数本身再按照第 11 课讲解的调用函数 → 把结果回传模型流程完成闭环。环境变量与凭据配置代码依赖两个环境变量它们来自Microsoft Foundry 项目的 Overview 页面AZURE_INFERENCE_ENDPOINT——Foundry 项目的推理端点AZURE_INFERENCE_CREDENTIAL——Foundry 项目的 API Key。本仓库 00-course-setup/03-providers.md 给出了完整的配置指引将仓库根目录的.env.copy复制为.env填入上述两个变量即可## Microsoft Foundry Models (multi-provider model catalog, replaces GitHub Models, which retires end of July 2026) AZURE_INFERENCE_ENDPOINTadd your Microsoft Foundry project endpoint here AZURE_INFERENCE_CREDENTIALadd your Microsoft Foundry Models API key here仓库在 shared/python/env_utils.py 中还提供了get_required_env()、validate_env_vars()等工具函数用于在加载配置时对缺失的环境变量给出清晰报错是编写健壮示例代码的推荐模式。历史版本说明本课的印地语译文translations/hi/21-meta/README.md仍保留了旧版 GitHub Models 的写法GITHUB_TOKEN与https://models.inference.ai.azure.com端点。由于 GitHub Models 将于 2026 年 7 月底退役实际运行请以本文使用的 Microsoft Foundry 配置AZURE_INFERENCE_CREDENTIAL/AZURE_INFERENCE_ENDPOINT为准。Llama 3.2开源模型的多模态突破尽管 Llama 3.1 能力强大但它有一个明显局限——缺乏多模态能力无法将图片等不同类型的输入作为提示也无法基于图像生成回答。这正是 Llama 3.2 的核心卖点之一。Llama 3.2 的特性包括多模态Multimodality——能同时评估文本与图像提示中小规模变体11B 与 90B——提供灵活的部署选项兼顾成本与能力纯文本变体1B 与 3B——可在边缘/移动设备上部署具备低延迟优势。多模态支持是开源模型世界的一大步开发者无需依赖闭源商业模型也能构建看图说话类应用。下面的示例使用 Llama 3.2 90B同时接收一张图片与一段文本提示让模型分析图片内容。多模态支持代码示例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 # Get these from your Microsoft Foundry projects Overview page token os.environ[AZURE_INFERENCE_CREDENTIAL] endpoint os.environ[AZURE_INFERENCE_ENDPOINT] 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)示例要点拆解多模态消息结构UserMessage.content不再是一段纯文本而是一个内容列表同时容纳TextContentItem文本问题与ImageContentItem图片这正是 Llama 3.2 与 3.1 在调用方式上的本质差异图片加载ImageUrl.load(image_filesample.jpg, image_formatjpg, ...)直接从本地文件加载图片——示例所用的输入图片正是本仓库 21-meta/python/sample.jpg细节级别控制ImageDetailLevel.LOW让模型以较低分辨率处理图片在视觉理解任务上通常能显著减少 token 消耗、降低成本是官方推荐参数系统提示设计You are a helpful assistant that describes images in details.明确指引模型输出详细图片描述任务边界清晰。动手实践运行配套 Notebook仓库为第 21 课提供了可直接运行的实验环境 21-meta/python/githubmodels-assignment.ipynb其中以 Markdown Cell 完整复述了本课的核心概念模型家族、变体列表、特性对比通过两个代码 Cell 分别演示Llama 3.1 函数调用与Llama 3.2 多模态图片理解每个代码 Cell 前均包含依赖安装指令%pip install azure-core %pip install azure-ai-inference运行前请确保已按上文配置好AZURE_INFERENCE_ENDPOINT与AZURE_INFERENCE_CREDENTIAL两个环境变量并将 sample.jpg 放在与 Notebook 相同的目录下ImageUrl.load()的image_file是相对路径。延伸学习把 Meta 模型放入完整技术栈理解模型能力只是第一步本仓库为你准备好了完整的进阶路径模型选型方法论——02-exploring-and-comparing-different-llms 系统对比了开源权重模型与专有模型的取舍Llama 家族正属于典型开源权重模型函数调用的完整工程化——11-integrating-with-function-calling 讲解如何把模型发起的工具调用真正执行并回传结果是 Llama 3.1 原生函数调用的必要补充RAG 与向量数据库——15-rag-and-vector-databases 充分利用 128k 大上下文窗口构建检索增强应用微调与小型语言模型——18-fine-tuning 与 19-slm 可结合 Llama 的合成数据生成能力与 1B/3B 边缘部署变体继续深入本地离线运行——00-course-setup/03-providers.md 还介绍了 Foundry Local / Ollama 等本地运行方案可在无云订阅的情况下把 Llama 等开源模型跑在自己的设备上。小结本课围绕 Meta 家族两大模型给出了清晰的选型与上手路径需要实时工具调用、长上下文 RAG 或合成数据时选Llama 3.1405B Instruct 为核心代表需要图文多模态理解或边缘低延迟部署时选Llama 3.211B/90B Vision Instruct 与 1B/3B 文本变体。借助 Microsoft Foundry Models 的统一端点与 Azure AI Inference SDK两个模型仅需修改model_name一行即可切换配合本仓库的 Notebook 示例即可快速验证效果为后续构建真实的生成式 AI 应用打下基础。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考