よ〜んです。

最近Lambdaを酷使するのにハマってて、タイムラインで話題だったQwen 3.5 4B Q4_K_MをLambdaで動かしてみました。

サンプル実装あるし、「すぐできるやろ」と思ってたんですが、意外とそうでもなかったので、ハマったポイントを残しておきます。

実装はこちらになります。mu7889yoon/examples/qwen3.5b-on-lambda

フォルダ名がtypoしているので、わかりにくいですが、動いてるモデルは4Bです。

サンプル実装 sample-chatbot-Lambda-SnapStart

実装についてのブログ Deploying AI models for inference with AWS Lambda using ZIP packaging

構成

flowchart LR
  U["Client (SigV4)"] --> F["Lambda Function URL (IAM)"]
  F --> A["FastAPI + llama-cpp-python"]
  A --> T["/tmp/*.gguf"]
  T --> S["S3 Model Bucket"]
  C["CodeBuild"] --> S
  C2["Local Build (Layer)"] --> L["Lambda Layer"]
  L --> A

詰まったところ

1. llama-cpp-python のバージョン

こちらは、ビルドやバージョンの問題なので、こんなことをせずにすぐ動くようになると思います。 2026/03/05 現在の解決方法です。

PyPI版をそのまま使うと、Qwen 3.5系の生成がうまく動きません。

一旦、Qwen 3.5 対応forkをローカルでビルドしています。

実装はここら辺を見てください。mu7889yoon/examples/qwen3.5-on-lambda/src/layers/llama-cpp

2. モデルのS3投入

最初は BucketDeployment でモデルをS3に置けば済むと思っていました。
ただ、アップロードに時間がかかりすぎて現実的じゃなかったです。

なので、CodeBuildでモデルをダウンロードしてS3へ配置する方式に切り替えました。

呼び出してみる

エンドポイントを叩いてみます。

今回の本筋ではないので、これぐらいで

  • 最初のトークンが返ってくるまで: 約4秒
  • メモリ使用量: 約5600MiB

今回の本筋ではないので、これぐらいで

まとめ

「コードを見てすぐできる」と思っていましたが、めちゃくちゃハマりました。

寒い時期になるとLLMでしんどくなりますね(卒業研究でCUDAとPyTorchに苦しめられた人間)

次回以降はJetsonとかでも動かしてみようと思います。ではー