感謝祭は米国にとって祝日でしょう、(数多くの感謝すべきことがある、我々が大好きな祝日の一つです)。多くの人々は食べ物やセールの話に胸を躍らせていますが、開発者としての私にとっては、新しい技術をハックしたり遊ぶのに最適な静かな休日でもあります。このような私にとって、Stable DiffusionとCode LlamaがWorkers AIの一部として利用可能になり、Cloudflareのグローバルネットワークの100都市以上で利用可能になったことを発表できることを嬉しく思います。
多くのAIファンがご存じのとおり、Stable Diffusionはテキスト入力を基に画像を生成できる画期的な画像生成モデルです。Code Llamaは、プログラミングコードの生成に最適化された強力な言語モデルです。
さらなる詳細については、この記事を読むか、開発者向けドキュメントをご覧ください。
Stable Diffusionによる生成 - 「感謝祭を祝うオレンジ色の雲と喜ぶラマ」
Stable Diffusionによる画像生成
Stability AIはこの夏、Stable Diffusion XL 1.0SDXLを発表しました。詳細はこちらからお読みいただけますが、いくつかの特筆すべき点について簡単にご紹介します。
1つ目は、「モデルが一定の「雰囲気」や特徴を強制的に付与することなく、利用者が自由に異なるスタイルの画像を作成できる」ことです。これは開発者として、むしろアーティストとして真っ白なキャンバスを提供してくれる素晴らしいものです。
さらに、「解像度が1024x1024で、従来型よりも明確で正確な色を実現するために特に最適化されており、従来型のソリューションよりも優れたコントロール、照明、陰影を再現している」ことです。現在のカメラ(または携帯電話のカメラ)の進歩により、高画質の画像は最低限必要な要素であり、それに引けを取らないこのようなモデルの登場は喜ばしいことです。
Workers AI+ SDXL(API経由)は、これまで以上に簡単に始められます。下の例をご覧ください:
そして、こちらが喜ぶラマです。
curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/{account-id}/ai/run/@cf/stabilityai/stable-diffusion-xl-base-1.0" \
-H "Authorization: Bearer {api-token}" \
-H "Content-Type:application/json" \
-d '{ "prompt": "A happy llama running through an orange cloud" }' \
-o 'happy-llama.png'
Workerでも同様にできます:
Code Llamaでコードを生成する
import { Ai } from '@cloudflare/ai';
export default {
async fetch(request, env) {
const ai = new Ai(env.AI);
const response = await ai.run('@cf/stabilityai/stable-diffusion-xl-base-1.0', {
prompt: 'A happy llama running through an orange cloud'
});
return new Response(response, {
headers: {
"content-type": "image/png",
},
});
}
}
アートの生成に興味がない方は、コードの生成に活用するといった使い方もあります。この夏にMetaからも「Code Llama」がリリースされましたが、これはLlama 2の上に構築され、多くの一般的な言語(Python、C++、Java、PHP、Typescript / Javascript、C#、Bash)でコードを理解し生成するよう最適化されています。
現在頭を悩ませている部分のコーディングに使用したり、既存の未知のコード部分を理解するために使用することもできます。
また、Workers AIでのコードの生成は他のすべてのモデルと同様に非常に簡単です。
Workerから:
curlを使用:
import { Ai } from '@cloudflare/ai';
// Enable env.AI for your worker by adding the ai binding to your wrangler.toml file:
// [ai]
// binding = "AI"
export default {
async fetch(request, env) {
const ai = new Ai(env.AI);
const response = await ai.run('@hf/thebloke/codellama-7b-instruct-awq', {
prompt: 'In JavaScript, define a priority queue class. The constructor must take a function that is called on each object to determine its priority.'
});
return Response.json(response);
}
}
Pythonを使用:
curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/{account-id}/ai/run/@hf/thebloke/codellama-7b-instruct-awq" \
-H "Authorization: Bearer {api-token}" \-H "Content-Type: application/json" \
-d '{ "prompt": "In JavaScript, define a priority queue class. The constructor must take a function that is called on each object to determine its priority." }
Workers AI推論が100都市で利用可能に
#!/usr/bin/env python3
import json
import os
import requests
ACCOUNT_ID=os.environ["ACCOUNT_ID"]
API_TOKEN=os.environ["API_TOKEN"]
MODEL="@hf/thebloke/codellama-7b-instruct-awq"
prompt="""In JavaScript, define a priority queue class. The constructor must take a function that is called on each object to determine its priority."""
url = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/{MODEL}"
headers = {
"Authorization": f"Bearer {API_TOKEN}"
}
payload = json.dumps({
"prompt": prompt
})
print(url)
r = requests.post(url, data=payload, headers=headers)
j = r.json()
if "result" in j and "response" in j["result"]:
print(r.json()["result"]["response"])
else:
print(json.dumps(j, indent=2))
昨年9月に初めてWorkers AIをリリースしたときに推論を実行していたのは7都市でしたが、私たちはこのWorkers AI推論を年末までに100都市、2024年度末までにほぼすべての場所でサポートするという野心的な目標を設定しました。複数のチームにまたがる素晴らしい人材のおかげで、予定を前倒しして進んでおり、現在100都市でWorkers AI推論をサポートしていることを誇りに思います。開発者にとって、これは推論タスクがユーザーの近くで実行される可能性が高いことを意味し、今後18か月は改善のみを続けることになります。
Mistralを見逃した方のために
最後に、今週初めに私たちの他のアップデートをご覧にならなかった方のために、私たちはそのサイズの割にはパンチの効いた非常に有能で強力な言語モデルであるMistral 7Bも発表しました。詳しくはこちらをお読みいただくか、こちらから構築を始めることができます。
前進し、楽しいものを作っていきましょう。
今回、私たちはより多くの都市で実行されるようになった画像(アート)、コード、Workers AI推論についてお届けしました。楽しみながら、何か素晴らしいものを作ってください。そして、ヘルプが必要な場合、フィードバックを提供したい場合、構築しているものを共有したい場合は、開発者Discordにお越しください。
感謝祭おめでとう!
さらに、AIを始めたばかりの方向けに、Embedding、モデル、ベクトルデータベースなどの基本の理解から、Workers AIでのLLMの開始まで、一連の開発者ワークショップを提供しています。こちらからご登録ください。