您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Gradio機器學習模型快速部署工具接口狀態源碼分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Gradio機器學習模型快速部署工具接口狀態源碼分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
例子來解釋
import gradio as gr scores = [] def track_score(score): scores.append(score) top_scores = sorted(scores, reverse=True)[:3] return top_scores demo = gr.Interface( track_score, gr.Number(label="Score"), gr.JSON(label="Top Scores") ) demo.launch()
如上所述,scores,就可以在某函數中訪問。
多用戶訪問,每次訪問的分數都保存到scores列表
并并返回前三的分數
Gradio 支持的另一種數據持久化類型是會話狀態,其中數據在頁面會話中跨多個提交持久化。但是,數據_不會_在模型的不同用戶之間共享。要在會話狀態中存儲數據,您需要做三件事:
將一個額外的參數傳遞到您的函數中,該參數表示界面的狀態。
在函數結束時,返回狀態的更新值作為額外的返回值。
創建時添加'state'
輸入和輸出組件'state'``Interface
聊天機器人是一個您需要會話狀態的示例 - 您想要訪問用戶以前提交的內容,但您不能將聊天歷史存儲在全局變量中,因為那樣聊天歷史會在不同用戶之間混亂。
import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer import torch tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium") model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium") def user(message, history): return "", history + [[message, None]] # bot_message = random.choice(["Yes", "No"]) # history[-1][1] = bot_message # time.sleep(1) # return history # def predict(input, history=[]): # # tokenize the new input sentence def bot(history): user_message = history[-1][0] new_user_input_ids = tokenizer.encode(user_message + tokenizer.eos_token, return_tensors='pt') # append the new user input tokens to the chat history bot_input_ids = torch.cat([torch.LongTensor(history), new_user_input_ids], dim=-1) # generate a response history = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id).tolist() # convert the tokens to text, and then split the responses into lines response = tokenizer.decode(history[0]).split("<|endoftext|>") response = [(response[i], response[i+1]) for i in range(0, len(response)-1, 2)] # convert to tuples of list return history with gr.Blocks() as demo: chatbot = gr.Chatbot() msg = gr.Textbox() clear = gr.Button("Clear") msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then( bot, chatbot, chatbot ) clear.click(lambda: None, None, chatbot, queue=False) demo.launch()
讀到這里,這篇“Gradio機器學習模型快速部署工具接口狀態源碼分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。