ARTICLE DETAIL

资讯详情

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

在 Generative AI for Beginners 中构建 Meta Llama 家族模型:函数调用与多模态推理实战

在 Generative AI for Beginners 中构建 Meta Llama 家族模型:函数调用与多模态推理实战 在 Generative AI for Beginners 中构建 Meta Llama 家族模型函数调用与多模态推理实战【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners本文基于本课程第 21 课21-meta的内容展开系统讲解 Meta Llama Herd 家族中两个核心模型——Llama 3.1 与 Llama 3.2——的能力差异、适用场景与真实调用方式。读完本文你将掌握如何在推理端点配置环境变量并调用 Llama 3.1 的原生函数调用内置 Brave Search 与 Wolfram Alpha 工具以及如何使用 Llama 3.2 90B 完成文本 图像的多模态推理。Meta 家族模型与 Llama Herd本课聚焦 Meta 家族又称 Llama Herd中的两个模型Llama 3.1与Llama 3.2。它们以多种变体形式提供并通过推理端点Microsoft Foundry Models / GitHub Models 模式按模型名调用。课程中列出的模型变体如下模型变体特点Llama 3.170B Instruct纯文本大模型适合复杂文本任务Llama 3.1405B Instruct开源 LLM 旗舰尺寸支持原生函数调用Llama 3.211B Vision Instruct小到中型视觉多模态模型Llama 3.290B Vision Instruct大型视觉多模态模型注意Llama 3 虽也可在模型目录中获取但本课不涉及。另外根据本仓库 README.md 与英文原版 21-meta/README.md 的说明GitHub Models 已于 2026 年 7 月底退役课程代码已转向使用 Microsoft Foundry Models模型推理端点进行原型开发。Llama 3.1更强的开源 LLM 底座Llama 3.1 以 4050 亿405B参数规模跻身开源 LLM 行列是对此前 Llama 3 的一次能力升级。课程给出的升级点对比如下更大的上下文窗口128k tokensLlama 3 为 8k tokens更大的最大输出长度4096 tokensLlama 3 为 2048 tokens更强的多语言支持得益于训练 token 数量的增加这些提升使 Llama 3.1 能够承担更复杂的 GenAI 应用场景课程中列举了三个典型方向原生函数调用Native Function Calling——在 LLM 工作流之外调用外部工具与函数的能力更好的 RAG 性能——得益于更大的上下文窗口可以在提示中容纳更多检索片段合成数据生成Synthetic Data Generation——为微调等任务有效生成训练数据。从源码结构看课程围绕 Llama 3.1 提供的实操示例重点落在了原生函数调用上我们接下来深入展开。Llama 3.1 原生函数调用Llama 3.1 针对函数/工具调用进行了专门的微调能够基于用户提示自主判断何时调用工具。模型内置了两个开箱即用的工具Brave Search——执行网络搜索获取最新信息例如天气Wolfram Alpha——完成复杂数学计算无需自行编写计算函数。此外你也可以自定义工具供 LLM 调用更多函数调用的通用设计模式可参考本课程第 11 课 11-integrating-with-function-calling/README.md 中的functions定义、tool_choiceauto与响应 → 执行函数 → 回填结果的三步流程。下面的代码示例源自韩语版课程文档与英文原版一致演示了在系统提示system prompt中声明可用工具brave_search, wolfram_alpha发送一条询问斯德哥尔摩天气的用户消息LLM 返回一次 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_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)说明该示例只演示如何发起工具调用并不会真正返回搜索结果。若想拿到真实结果需要在 Brave API 页面注册免费账号并自行定义函数实现这也是本课刻意留下的延伸练习。配套的 notebook 版本见 21-meta/python/githubmodels-assignment.ipynb其中先通过%pip install azure-core与%pip install azure-ai-inference安装依赖再执行上述代码便于在 Jupyter 环境中直接复现。从 GitHub Models 迁移到 Microsoft Foundry 的端点配置上文示例读取的是GITHUB_TOKEN环境变量并指向https://models.inference.ai.azure.comGitHub Models 时代的用法。由于 GitHub Models 已退役英文原版 21-meta/README.md 已将配置更新为 Microsoft Foundry 模式# 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两者唯一差异在于认证凭证与端点的来源GitHub Models 使用个人访问令牌而 Foundry 模式使用项目概述页面提供的AZURE_INFERENCE_CREDENTIAL与AZURE_INFERENCE_ENDPOINT。其余的ChatCompletionsClient初始化与消息构造逻辑完全一致。无论采用哪种方式都建议像本仓库 shared/python/env_utils.py 中封装的那样通过get_required_env()/validate_env_vars()对凭证环境变量做缺失校验避免密钥硬编码进代码from shared.python.env_utils import get_required_env token get_required_env(AZURE_INFERENCE_CREDENTIAL, Microsoft Foundry 推理凭证) endpoint get_required_env(AZURE_INFERENCE_ENDPOINT, Microsoft Foundry 推理端点)Llama 3.2多模态支持与灵活部署尽管 Llama 3.1 是强大的 LLM它仍有一个明显局限——缺乏多模态能力即无法将图像等异构输入作为提示并给出响应。这一能力正是 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 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)与 Llama 3.1 示例相同若要使用 Foundry 端点只需把token/endpoint改为读取AZURE_INFERENCE_CREDENTIAL与AZURE_INFERENCE_ENDPOINT。代码中的几个关键点值得留意ImageUrl.load(image_filesample.jpg, image_formatjpg)从本地加载图片image_file需指向实际存在的图片路径本仓库中该示例图片位于 21-meta/python/sample.jpg是一张展示 Generative AI FOR BEGINNERS 视频画面与模型目录界面的截图detailImageDetailLevel.LOW控制图像送入模型的细节等级LOW可降低 token 消耗、加快推理图像内容通过ImageContentItem与文本内容TextContentItem并列放在同一条UserMessage中这正是 OpenAI 兼容的多模态消息结构。在课程体系中的定位与延伸本课第 21 课与课程中其他主题形成互补模型选择与对比如何从目录中挑选、评测与部署模型参见第 2 课 02-exploring-and-comparing-different-llms/README.md其中介绍了开源/开放权重模型与专有模型的差异以及 Encoder-Decoder 与 Decoder-only 架构的类比函数调用机制第 11 课 11-integrating-with-function-calling/README.md 详细讲解了为什么需要函数调用解决响应格式不一致、访问外部数据两大问题以及定义工具 → 读取函数调用 → 回填结果二次请求的完整闭环同族开源模型实践第 20 课 20-mistral/README.md 演示了 Mistral 模型家族Large/Small/Nemo的 RAG、函数调用与代码生成示例代码组织方式与本课高度一致。通过本课你已经具备了两项可立即落地的能力一是基于系统提示声明工具并让 Llama 3.1 自主发起函数调用二是使用 Llama 3.2 90B 完成图文混合输入的多模态推理。进一步学习可结合 21-meta/python/githubmodels-assignment.ipynb 直接在 notebook 中运行全部示例。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表