使用MLX Local Pipelines在本地运行机器学习模型——快来揭开深度学习的神秘面纱!

113 阅读2分钟

引言

在机器学习领域,模型的本地化运行不仅提升了数据的处理速度,还为开发者提供了更多的灵活性和控制权。MLX Local Pipelines让我们能够在本地环境中轻松调用Hugging Face Model Hub的开放模型。本篇文章将带你深入了解如何通过MLXPipeline类在本地运行这些模型。

主要内容

MLX Community和模型获取

MLX Community在Hugging Face Model Hub上提供了超过150个开源模型,供大家共享和协作。通过MLXPipeline类,我们可以选择本地加载这些模型或者调用其提供的推理端点。

准备环境

要使用MLXPipeline,确保安装了mlx-lmtransformers以及huggingface_hub Python包。

%pip install --upgrade --quiet mlx-lm transformers huggingface_hub

模型加载

模型可以通过from_model_id方法加载,也可以直接传入现有的transformers管道。

使用from_model_id

from langchain_community.llms.mlx_pipeline import MLXPipeline

# 使用API代理服务提高访问稳定性
pipe = MLXPipeline.from_model_id(
    "mlx-community/quantized-gemma-2b-it",
    pipeline_kwargs={"max_tokens": 10, "temp": 0.1},
)

加载现有管道

from mlx_lm import load

# 使用API代理服务提高访问稳定性
model, tokenizer = load("mlx-community/quantized-gemma-2b-it")
pipe = MLXPipeline(model=model, tokenizer=tokenizer)

创建链

将加载的模型与提示结合,形成一个处理链。

from langchain_core.prompts import PromptTemplate

template = """Question: {question}

Answer: Let's think step by step."""
prompt = PromptTemplate.from_template(template)

chain = prompt | pipe

question = "What is electroencephalography?"
print(chain.invoke({"question": question}))

常见问题和解决方案

  1. 网络阻塞导致模型加载失败:考虑使用API代理服务以提高访问稳定性。

  2. 接口变动带来的兼容性问题:定期检查MLX和相关下载资源

因为这篇文章中提到的技术涉及MLX Community和Hugging Face Model Hub,所以以下是一些推荐的学习资源:

  1. MLX Community on Hugging Face
  2. LangChain Documentation
  3. Transformers Documentation
  4. Hugging Face Model Hub

参考资料

  1. MLX官方文档
  2. Hugging Face Model Hub指南
  3. LangChain使用手册
  4. Transformers使用文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---