如何在Amazon SageMaker中用ml.p3.2xlarge实例运行单个代码单元格并存储结果到S3?
解决方案步骤
1. 将LLM部署为SageMaker端点(用ml.p3.2xlarge实例)
别在t3实例里跑模型推理,先把你的预训练LLM部署到ml.p3.2xlarge的SageMaker端点上——GPU实例能大幅加速LLM推理。如果是Hugging Face模型,用官方容器就能快速部署:
import sagemaker from sagemaker.huggingface import HuggingFaceModel # 初始化SageMaker会话 sess = sagemaker.Session() role = sagemaker.get_execution_role() # 加载模型(替换成你的模型ID或S3上的模型包路径) huggingface_model = HuggingFaceModel( model_id="your-huggingface-model-id", # 或者model_data="s3://your-bucket/model.tar.gz" role=role, transformers_version="4.28", pytorch_version="2.0", py_version="py310", ) # 部署为异步端点(适合大任务量,避免超时) predictor = huggingface_model.deploy( initial_instance_count=1, instance_type="ml.p3.2xlarge", endpoint_name="llm-p3-inference-endpoint", async_inference_config={ "output_path": "s3://your-bucket/async-inference-output/" } )
2. 批量处理DataFrame调用端点
别用progress_apply逐行跑,改成批量请求端点,效率提升N倍:
import pandas as pd from sagemaker.predictor import Predictor from sagemaker.serializers import JSONSerializer from sagemaker.deserializers import JSONDeserializer # 初始化端点预测器 predictor = Predictor( endpoint_name="llm-p3-inference-endpoint", serializer=JSONSerializer(), deserializer=JSONDeserializer(), sagemaker_session=sess ) # 批量推理函数 def batch_predict(texts, batch_size=100): results = [] for i in range(0, len(texts), batch_size): batch = texts[i:i+batch_size].tolist() # 按模型要求构造请求体 payload = {"inputs": batch} batch_results = predictor.predict(payload) results.extend(batch_results) return results # 批量获取预测结果 df_new['predicted_values'] = batch_predict(df_original['comment_body'])
3. 将结果存回S3
直接用Pandas把处理后的DataFrame写到S3路径:
# 保存为Parquet(大数据场景优先,压缩比高、读写快) df_new.to_parquet("s3://your-bucket/final-results/predicted_data.parquet", index=False) # 或者保存为CSV df_new.to_csv("s3://your-bucket/final-results/predicted_data.csv", index=False)
额外优化点
- 如果数据量超大到Notebook加载费劲,直接用SageMaker批量转换作业:把S3里的原始数据作为输入,让p3实例后台批量处理,结果自动存S3,不用在Notebook里扛大DataFrame
- 推理完成后记得删除端点,避免GPU实例持续扣费:
predictor.delete_endpoint() - 可以调整批量大小(比如200、500),找到适合你模型的最优批量值
内容的提问来源于stack exchange,提问作者Sar99
相关产品推荐
相关产品推荐

