借一步网
作者:
在
今天,我将带你走进一个轻松愉快的旅程,探索如何利用MLX框架在Python中实现高效的大语言模型推理。我们不仅要探讨技术的深度,还会以幽默的方式解锁每一个重要步骤,让你在享受知识的同时,悟到AI的奥义。
首先,像所有伟大的冒险一样,咱们得做好准备工作。没有装备,英雄走不远,对吧?要让MLX在你的Python世界中活跃起来,首先你得安装所需的工具。这里就是我们的装备清单:
pip install --upgrade mlx-lm transformers huggingface_hub langchain
翻译一下:这条命令就像给你的AI工具箱加满了油,启用MLX、Hugging Face等神器。放心,安装过程飞快,等你喝完一杯咖啡,它就准备就绪了。
模型是AI的灵魂,而MLXPipeline是召唤这些灵魂的魔法杖!有了它,我们可以快速加载一个预训练好的大型语言模型(LLM),就像召唤一位强大的术士为你工作。来看这个例子:
from langchain_community.llms.mlx_pipeline import MLXPipeline llm = MLXPipeline.from_model_id( "mlx-community/quantized-gemma-2b-it", pipeline_kwargs={"max_tokens": 10, "temp": 0.1}, )
max_tokens
temp
max_tokens=10
temp=0.1
接下来,我们要让模型开口说话!就像训练鹦鹉一样,我们得设计好问题,然后让它按我们的脚本回答。这里的 ChatMLX 就是那个鸟笼,帮我们处理对话历史并格式化输入。
from langchain_community.chat_models.mlx import ChatMLX from langchain_core.messages import HumanMessage messages = [ HumanMessage( content="What happens when an unstoppable force meets an immovable object?" ), ] chat_model = ChatMLX(llm=llm) response = chat_model.invoke(messages) print(response.content)
HumanMessage
现在,让我们升级一下,创建一个能处理复杂问题的问答代理。这个代理不仅聪明,还能调用搜索引擎和计算器,回答那些看似无解的问题。
from langchain import hub from langchain.agents import AgentExecutor, load_tools from langchain.agents.format_scratchpad import format_log_to_str from langchain.agents.output_parsers import ReActJsonSingleInputOutputParser from langchain.tools.render import render_text_description # 加载工具 tools = load_tools(["serpapi", "llm-math"], llm=llm) # 设置ReAct风格的提示 prompt = hub.pull("hwchase17/react-json") prompt = prompt.partial( tools=render_text_description(tools), tool_names=", ".join([t.name for t in tools]), ) # 定义代理 chat_model_with_stop = chat_model.bind(stop=["\nObservation"]) agent = ( { "input": lambda x: x["input"], "agent_scratchpad": lambda x: format_log_to_str(x["intermediate_steps"]), } | prompt | chat_model_with_stop | ReActJsonSingleInputOutputParser() ) # 实例化AgentExecutor agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # 使用代理回答问题 result = agent_executor.invoke( { "input": "Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?" } ) print(result)
到这里,咱们已经完成了一个功能强大的MLX问答代理,能够处理复杂问题,并给出既有趣又准确的回答。这就像让模型从一个“书呆子”变身为一个“全能选手”。
通过这次探索,我们学会了:
这不仅是一趟技术之旅,更是一场有趣的探索。MLX框架让复杂的AI操作变得简单、高效,而我们也在这个过程中,体验到了将AI应用于现实问题的乐趣。
🚀 未来展望:现在,你已经掌握了MLX的基础技巧,未来的应用场景将更加广阔。无论是开发智能对话系统,还是构建复杂的知识问答平台,MLX都能助你一臂之力。祝你在AI的世界里玩得尽兴,探索得精彩! 🎉
要发表评论,您必须先登录。
今天,我将带你走进一个轻松愉快的旅程,探索如何利用MLX框架在Python中实现高效的大语言模型推理。我们不仅要探讨技术的深度,还会以幽默的方式解锁每一个重要步骤,让你在享受知识的同时,悟到AI的奥义。
🛠️ Step 1: 安装必要的库
首先,像所有伟大的冒险一样,咱们得做好准备工作。没有装备,英雄走不远,对吧?要让MLX在你的Python世界中活跃起来,首先你得安装所需的工具。这里就是我们的装备清单:
翻译一下:这条命令就像给你的AI工具箱加满了油,启用MLX、Hugging Face等神器。放心,安装过程飞快,等你喝完一杯咖啡,它就准备就绪了。
🚀 Step 2: 使用MLXPipeline加载模型
模型是AI的灵魂,而MLXPipeline是召唤这些灵魂的魔法杖!有了它,我们可以快速加载一个预训练好的大型语言模型(LLM),就像召唤一位强大的术士为你工作。来看这个例子:
🎯 亮点:
max_tokens
和temp
就像给模型设置的驾驶模式。max_tokens=10
意味着模型不会喋喋不休,temp=0.1
则保证它回答时不会太飘忽。🗣️ Step 3: 使用ChatMLX实现对话功能
接下来,我们要让模型开口说话!就像训练鹦鹉一样,我们得设计好问题,然后让它按我们的脚本回答。这里的 ChatMLX 就是那个鸟笼,帮我们处理对话历史并格式化输入。
🎯 亮点:
HumanMessage
是我们发给模型的“信件”。问题越有趣,回答可能也越精彩。🧠 Step 4: 构建一个简单的问答代理
现在,让我们升级一下,创建一个能处理复杂问题的问答代理。这个代理不仅聪明,还能调用搜索引擎和计算器,回答那些看似无解的问题。
🎯 亮点:
😎 大功告成!
到这里,咱们已经完成了一个功能强大的MLX问答代理,能够处理复杂问题,并给出既有趣又准确的回答。这就像让模型从一个“书呆子”变身为一个“全能选手”。
📚 小结:
通过这次探索,我们学会了:
这不仅是一趟技术之旅,更是一场有趣的探索。MLX框架让复杂的AI操作变得简单、高效,而我们也在这个过程中,体验到了将AI应用于现实问题的乐趣。
🚀 未来展望:
现在,你已经掌握了MLX的基础技巧,未来的应用场景将更加广阔。无论是开发智能对话系统,还是构建复杂的知识问答平台,MLX都能助你一臂之力。祝你在AI的世界里玩得尽兴,探索得精彩! 🎉