Model I/O由幾個部分組成。

Model I/O能干什么?

封裝模型API和處理輸入輸出數據,實現了模型的順暢交互,使得用戶可以方便地利用模型完成各種任務。

二、Model I/O的原理

Model I/O的工作流程:格式化原始輸入數據,將其傳遞給模型以獲取預測結果,并將輸出解析為結構化格式,以供下游組件或應用程序使用。

Model I/O流程包含以下三個核心步驟:

Model I/O的核心組件包括用于接收和生成文本的語言模型、指導輸入格式的提示模板、篩選訓練數據的示例選擇器,以及解析模型輸出的輸出解析器。

  1. 語言模型 (Language Models)
    1. LLM大型語言模型,接收文本字符串作為輸入,并返回相應的文本字符串作為輸出。
    2. ChatModel:聊天模型,是語言模型的一種變體。接收聊天消息列表作為輸入,并返回聊天消息作為輸出。
  2. 提示模板 (Prompt Templates)
    1. PromptTemplate:用于生成字符串提示。
    2. ChatPromptTemplate:用于生成聊天消息列表的提示。
  3. 示例選擇器(Example Selectors):
    1. 訓練新模型:Example Selectors從數據集中篩選代表性的示例來訓練新模型,確保其學習高質量、多樣化的數據,提升學習效果和泛化能力。調優現有模型:利用Example Selectors提供的新示例,對現有模型進行持續訓練和調優,逐步改進其在特定任務上的表現,提高準確性和效率。
  4. 輸出解析器(Output Parsers):
    1. Get format instructions:返回一個字符串,其中包含要求語言模型應該返回什么格式內容的提示詞。
    2. Parse:將模型返回的內容,解析為目標格式。

三、Model I/O的應用

LLM(大語言模型):簡化了自定義LLM的開發過程,實現了LLM響應的緩存管理以降低成本和加速應用,支持LLM流式傳輸響應以提升效率。

import os
from langchain.llms import OpenAl
from langchain.prompts import PromptTemplate

# 設置 OpenAl API密鑰
os.environ["OPENAIAPI_KEY"]="YOUR_OPENAI_API KEY"

# 創建一個封裝了 OpenAl GPT 模型的自定義類
class CustomLLM:
def init (self, model name="gpt-3.5-turbo",temperature=0.9):
self.llm = OpenAl(model name=model name, temperature=temperature)
self.prompt template= PromptTemplate(
input_variables=["food"],
template="What are 5 vacation destinations for someone who likes to eat ffood}?"
)

def get_vacation_destinations(self, food):
prompt = self.prompt template.format(food=food)
return self.llm(prompt)

# 使用自定義類
custom_lm= CustomLLM()
print(custom llm.get vacation destinations("dessert"))
import openai
# 設置您的OpenAI API密鑰
openai.api_key="YOUR API KEY"

def generate text and track tokens(prompt, max tokens=None, temperature=0.5):
# 使用OpenAl的Completion APl生成文本
response =openai.Completion.create(
engine="text-embedding-ada-002",#您可以更改為所需的模型,例如"text-generation-gpt-3.5-t
prompt=prompt,
max tokens=max tokens,
temperature=temperature
)

# 從響應中提取生成的文本和使用的token數量
generated text=response["choices"1[0]["text"]
used tokens =response["choices"1[0]["tokens_used"]#注意:不是所有模型都返回tokens_used字

# 打印結果和token使用情況
print(f"Generated Text: {generated text}")
print(f"Tokens Used: fused tokens}")

return generated text,used tokens

ChatModel(對話模型)實現緩存層減少API調用以降低成本、提升響應速度,同時提供簡潔語法和轉換器簡化模型管理,支持流式傳輸響應以優化用戶體驗。

import openai

# 設置您的API密鑰
openai.api_key="您的API密鑰"

# 定義一個函數來發出API請求并跟蹤令牌使用情況
def chat and track tokens(model, messages, max tokens=None):
response =openai.ChatCompletion.create(
model=model,
messages=messages,
max tokens=max tokens
)

# 從響應中提取使用的令牌數量
used tokens = response["usage"]["total tokens"]

# 使用響應和令牌使用信息做某事
print(f"啊應: {response['choices'][0]['message']['content']}")
print(f"使用的令牌: {used _tokens}")

文章轉自微信公眾號@架構師帶你玩轉AI

上一篇:

大模型開發 - 一文搞懂 LangChain(一):總體介紹

下一篇:

一文徹底搞懂深度學習(1)
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費