以下是 XAI 網站關於提示
xai promptide是乙個整合的開發環境,用於快速的工程和解釋性研究。 它通過SDK加速提示工程,該SDK允許實施複雜的提示技術和豐富的分析,以視覺化網路的輸出。 隨著我們繼續開發grok,我們經常使用它。
我們開發了 Promptide,以透明的方式向社群中的工程師和研究人員提供對 Grok-1(驅動 Grok 的模型)的透明訪問。 IDE 旨在為使用者提供支援,並幫助他們以更快的速度探索大型語言模型 (LLMS) 的功能。IDE 的核心是乙個 Python 編輯器,它與新的 SDK 相結合,允許實現複雜的提示技術。 在 IDE 中執行提示時,使用者可以看到有關標記化、取樣概率、備用標記和聚合注意力掩碼等的有用分析。
IDE 還提供了一些有用的功能。 它會自動儲存所有提示,並具有內建的版本控制。 執行提示生成的分析可以永久儲存,允許使用者比較不同提示技術的輸出。 最後,使用者可以上傳小檔案,例如 CSV 檔案,並使用 SDK 中的單個 Python 函式讀取它們。 當與 SDK 的併發功能結合使用時,即使是相當大的檔案也可以快速處理。
我們還想建立乙個 Promptide 社群。 任何提示都可以通過單擊按鈕公開共享。 使用者可以決定是只共享提示的單個版本還是整個樹。 共享提示時,還可以包含任何儲存的分析。
Promptide 目前僅供我們的搶先體驗計畫會員使用。 下面,您將找到 IDE 主要功能的演示。
謝謝,XAI團隊。
編輯器和 SDK
Promptide 的核心是乙個編輯器和乙個 Python SDK。 SDK 提供了一種新的程式設計正規化,允許優雅地實現複雜的提示技術。 所有 python 函式都在隱式上下文中執行,該上下文是一系列標記。 您可以使用 prompt() 函式手動將令牌新增到上下文中,也可以使用我們的模型使用 sample() 函式根據上下文生成令牌。 從模型中取樣時,可以通過將配置選項作為引數傳遞給函式來進行各種配置:
async def sample( self, max_len: int = 256, temperature: float = 1.0, nucleus_p: float = 0.7, stop_tokens: optional[list[str]] = none, stop_strings: optional[list[str]] = none, rng_seed: optional[int] = none, add_to_context: bool = true, return_attention: bool = false, allowed_tokens: optional[sequence[union[int, str]]]= none, disallowed_tokens: optional[sequence[union[int, str]]]= none, augment_tokens: bool = true,) sampleresult: """generates a model response based on the current prompt. the current prompt consists of all text that has been added to the prompt either since the beginning of the program or since the last call to `clear_prompt`. args: max_len: maximum number of tokens to generate. temperature: temperature of the final softmax operation. the lower the temperature, the lower the variance of the token distribution. in the limit, the distribution collapses onto the single token with the highest probability. nucleus_p: threshold of the top-p sampling technique: we rank all tokens by their probability and then only actually sample from the set of tokens that ranks in the top-p percentile of the distribution. stop_tokens: a list of strings, each of which will be mapped independently to a single token. if a string does not map cleanly to one token, it will be silently ignored. if the network samples one of these tokens, sampling is stopped and the stop token *is not* included in the response. stop_strings: a list of strings. if any of these strings occurs in the network output, sampling is stopped but the string that triggered the stop *will be* included in the response. note that the response may be longer than the stop string. for example, if the stop string is "hel" and the network predicts the single-token response "hello", sampling will be stopped but the response will still read "hello". rng_seed: see of the random number generator used to sample from the model outputs. add_to_context: if true, the generated tokens will be added to the context. return_attention: if true, returns the attention mask. note that this can significantly increase the response size for long sequences. allowed_tokens: if set, only these tokens can be sampled. invalid input tokens are ignored. only one of `allowed_tokens` and `disallowed_tokens` must be set. disallowed_tokens: if set, these tokens cannot be sampled. invalid input tokens are ignored. only one of `allowed_tokens` and `disallowed_tokens` must be set. augment_tokens: if true, strings passed to `stop_tokens`, allowed_tokens` and `disallowed_tokens` will be augmented to include both the passed token and the version with leading whitespace. this is useful because most words h**e two corresponding vocabulary entries: one with leading whitespace and one without. returns: the generated text. """上面的 ** 在 python 直譯器的執行中執行,直譯器可以單獨在 web worker 上。 同時執行多個 Web Worker 意味著您可以併行執行許多提示專案。
併發SDK 使用 Python 協程,允許同時處理多個 Python 函式,並帶有@prompt fn 註解。 這可以顯著加快完成時間,尤其是在處理 CSV 檔案時。
使用者輸入使用 User Input() 函式,可以通過 UI 中的文字框使提示具有互動性。 User Input() 函式會阻止執行,直到使用者在 UI 的文字框中輸入字串。 user input() 函式返回使用者輸入的字串,例如,可以通過 prompt() 函式將其新增到上下文中。 使用這些 API,可以實現只有四行的聊天機械人:
await prompt(preamble)while text := await user_input("write a message"): await prompt(f"\\human: \assistant:") await sample(max_len=1024, stop_tokens=[""], return_attention=true)檔案開發人員可以將小檔案上傳到 Promptide(每個檔案最多 5 MIB)。 總共最多 50 MiB),並在提示中使用它們。read file() 函式以位元組陣列的形式返回任何上傳的檔案。 結合上述併發功能,可以實現批處理提示,以便及時對各種問題進行技術評估。 下面的螢幕截圖顯示了計算 MMLU 分數的提示。
分析學執行提示時,會向使用者顯示詳細說明,以幫助他們更好地理解模型的輸出。 完成視窗顯示上下文的精確標記化,以及每個標記的數字識別符號。 單擊令牌時,使用者還可以在應用令牌時看到前 p 閾值和前 K 個令牌。
使用 user input() 函式時,視窗中會出現乙個文字框,使用者可以在提示執行時輸入其響應。 以下螢幕截圖顯示了執行上述聊天機械人**片段的結果。
最後,當不需要令牌視覺化功能時,還可以在 Markdown 中呈現上下文以提高可讀性。