← Cloudflare Workers AI / workers-ai / features
Promptování
Dobrých výsledků u modelů pro generování textu dosáhnete mimo jiné tím, že otázky pokládáte správným způsobem. LLM jsou obvykle trénovány s konkrétními předdefinovanými šablonami, které je pak vhodné použít společně s tokenizérem modelu, abyste při inferenci dosáhli lepších výsledků.
Ve Workers AI můžete modelům pro generování textu zadat prompt dvěma způsoby:
Prompty s omezeným rozsahem
Toto je doporučeno metoda. Díky scoped prompts přebírá Workers AI starost o znalost a použití různých chat šablon pro různé modely a poskytuje vývojářům jednotné rozhraní při sestavování promptů a vytváření úloh generování textu.
Prompty s omezeným rozsahem jsou seznamem zpráv. Každá zpráva definuje dva klíče: role a content.
Role obvykle nabývá jedné ze tří hodnot:
- system - Zprávy system definují osobnost AI. Můžete je použít k nastavení pravidel a očekávaného chování AI.
- uživatel - Zprávy user jsou místo, kde AI skutečně dotazujete položením otázky nebo vedením konverzace.
- assistant - Zprávy assistant napovídají AI požadovaný formát výstupu. Tuto roli nepodporují všechny modely.
OpenAI má dobré vysvětlení ↗ toho, jak tyto role používají u svých modelů GPT. Ačkoli jsou chat šablony flexibilní, ostatní modely pro generování textu obvykle dodržují stejné konvence.
Zde je příklad vstupu s promptem využívajícím role system a user:
{
messages: [
{ role: "system", content: "you are a very funny comedian and you like emojis" },
{ role: "user", content: "tell me a joke about cloudflare" },
],
};Zde je lepší příklad chatové relace s několika iteracemi mezi uživatelem a asistentem.
{
messages: [
{ role: "system", content: "you are a professional computer science assistant" },
{ role: "user", content: "what is WASM?" },
{ role: "assistant", content: "WASM (WebAssembly) is a binary instruction format that is designed to be a platform-agnostic" },
{ role: "user", content: "does Python compile to WASM?" },
{ role: "assistant", content: "No, Python does not directly compile to WebAssembly" },
{ role: "user", content: "what about Rust?" },
],
};Mějte na paměti, že různé LLM jsou trénovány s odlišnými šablonami pro různé případy použití. Workers AI se sice prostřednictvím jednotného API snaží vývojáře co nejvíce oprostit od specifik jednotlivých šablon LLM, podrobnosti si ale vždy ověřte v dokumentaci daného modelu. Instrukční modely, jako je Codellama, jsou například doladěny tak, aby reagovaly na pokyn zadaný uživatelem, zatímco chat modely očekávají na vstupu fragmenty dialogu.
Prompty s neomezeným rozsahem
Pomocí unscoped promptů můžete modelu poslat jednoduchý dotaz, aniž byste museli řešit poskytnutí kontextu. Workers AI váš dotaz automaticky převede na prompt vstup interně na rozumný výchozí scoped prompt, abyste získali co nejlepší předpověď.
{
prompt: "tell me a joke about cloudflare";
}Model chat template lze sestavit ručně také pomocí unscoped promptů. V takovém případě použijte parametr raw. Zde je příklad vstupu pro Mistral ↗ šablonu chatového promptu:
{
prompt: "<s>[INST]comedian[/INST]</s>
[INST]tell me a joke about cloudflare[/INST]",
raw: true
};