訂閱以接收新文章的通知:

Workers AI 更新:在 100 個城市推出 Stable Diffusion、Code Llama + Workers AI

2023-11-23

閱讀時間:2 分鐘
本貼文還提供以下語言版本:English日本語한국어简体中文

感恩節是美國的節日(也是我們最喜歡的節日之一——我們有很多值得感恩的事情!)。許多人對食物或優惠感到興奮,但對於作為開發人員的我來說,這一直是一個可以安靜地閒逛和玩新技術的美好假期。因此,本著這種精神,我們很高興地宣佈,Stable DiffusionCode Llama 現已作為 Workers AI 的一部分提供,在 Cloudflare 全球網路覆蓋的 100 多個城市執行。

Workers AI Update: Stable Diffusion, Code Llama + Workers AI in 100 cities

正如許多人工智慧愛好者所知,Stable Diffusion 是一種突破性的影像產生模型,可以根據文字輸入來產生影像。Code Llama 是一種功能強大的語言模型,針對產生程式設計代碼進行了最佳化。

有關更多有趣的詳細資料,請繼續閱讀本文,或前往開發人員文件以開始使用!

由 Stable Diffusion 產生——「快樂的駱駝在橙色雲中慶祝感恩節」

利用 Stable Diffusion 產生影像

Stability AI 去年夏天推出了 Stable Diffusion XL 1.0 (SDXL)。您可以在此處閱讀更多相關資訊,但我們在本文中將簡要提及一些亮點。

首先,「可以在沒有模型賦予任何特定『感覺』的情況下提示不同的影像,確保風格的絕對自由」。這非常棒,因為它為作為開發人員(或者我應該說藝術家)的您提供了空白畫布。

此外,它「特別針對鮮艷和準確的色彩進行了精心調整,比其前身具有更好的對比度、照明和陰影,所有這些都採用原生 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",
      },
  });
  }
}

如果您不喜歡創作藝術,那麼也許您可以從程式碼中獲得一些樂趣。Code Llama 也是去年夏天由 Meta 發佈的,它構建在 Llama 2 之上,但經過最佳化,可以理解許多流行語言(Python、C++、Java、PHP、Typescript / Javascript、C# 和 Bash)並以此產生程式碼。

您可以使用它來幫助您為遇到的棘手問題產生程式碼,或者您也可以使用它來幫助您理解程式碼——如果您選擇了現有的未知程式碼庫,那麼 Code Llama 是最佳選擇。

就像所有其他模型一樣,使用 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 時,我們在七個城市推出了推理執行,但設定了一個雄心勃勃的目標,即到今年年底在 100 個城市支援 Workers AI 推理,到 2024 年底幾乎在所有地方支援 Workers AI 推理。很自豪地說,我們比計畫提前了,現在已經在 100 個城市支援 Workers AI 推理,這要歸功於多個團隊中一些勤奮且出色的人員。對於開發人員來說,這意味著您的推理任務更有可能在您的使用者附近執行,並且在接下來的 18 個月內還會繼續改進。

再次介紹 Mistral

最後,以防您沒有看到我們本週早些時候的其他更新,我想再次聲明,我們還推出了 Mistral 7B,這是一個功能強大的語言模型,其規模也非常強大。您可以在此處閱讀有關它的更多資訊,或在此處開始使用它進行構建。

去構建一些有趣的東西吧

今天,我們為您提供了在更多城市執行的影像(藝術)、程式碼和 Workers AI 推理。請享受樂趣,構建一些很酷的東西吧。如果您需要幫助、想要提供意見反應,或者想要分享您正在構建的內容,請進入我們的開發人員 Discord

感恩節快樂!

此外,如果您剛剛開始使用 AI,我們將提供一系列開發人員研討會,範圍包括瞭解嵌入、模型和向量資料庫等基礎知識,以及在 Workers AI 上開始使用 LLM 等。歡迎您在此處註冊

我們保護整個企業網路,協助客戶有效地建置網際網路規模的應用程式,加速任何網站或網際網路應用程式抵禦 DDoS 攻擊,阻止駭客入侵,並且可以協助您實現 Zero Trust

從任何裝置造訪 1.1.1.1,即可開始使用我們的免費應用程式,讓您的網際網路更快速、更安全。

若要進一步瞭解我們協助打造更好的網際網路的使命,請從這裡開始。如果您正在尋找新的職業方向,請查看我們的職缺
Workers AICloudflare Workers

在 X 上進行關注

Phil Wittig|@pdwittig
Cloudflare|@cloudflare

相關貼文

2024年10月31日 下午1:00

Moving Baselime from AWS to Cloudflare: simpler architecture, improved performance, over 80% lower cloud costs

Post-acquisition, we migrated Baselime from AWS to the Cloudflare Developer Platform and in the process, we improved query times, simplified data ingestion, and now handle far more events, all while cutting costs. Here’s how we built a modern, high-performing observability platform on Cloudflare’s network....

2024年10月25日 下午1:00

Elephants in tunnels: how Hyperdrive connects to databases inside your VPC networks

Hyperdrive (Cloudflare’s globally distributed SQL connection pooler and cache) recently added support for directing database traffic from Workers across Cloudflare Tunnels. We dive deep on what it took to add this feature....

2024年10月24日 下午1:05

Build durable applications on Cloudflare Workers: you write the Workflows, we take care of the rest

Cloudflare Workflows is now in open beta! Workflows allows you to build reliable, repeatable, long-lived multi-step applications that can automatically retry, persist state, and scale out. Read on to learn how Workflows works, how we built it on top of Durable Objects, and how you can deploy your first Workflows application....