
掌握ChatGPT插件與自定義GPT
本文將詳細介紹如何調(diào)用文心一言ERNIE4.0 API服務(wù),包括獲取 API 密鑰的步驟、基礎(chǔ)配置、API 調(diào)用示例及注意事項。
使用文心一言產(chǎn)品之前,需先在百度開放平臺申請 API 密鑰用于請求認證。
申請步驟:
1. 注冊百度賬號:前往 百度賬號注冊頁面 完成注冊,輸入您的個人信息,如姓名、郵箱等。
2. 成為開發(fā)者:在 百度智能云開放平臺 中注冊成為開發(fā)者。選擇個人或企業(yè)認證并按提示完成。
1.進入百度智能云官網(wǎng)進行登錄
2.進入千帆ModelBuilder點擊左側(cè)的應(yīng)用接入并且點擊創(chuàng)建應(yīng)用
3.在頁面上的應(yīng)用名稱輸入上自己想要的應(yīng)用名稱和應(yīng)用描述,
4.獲取對應(yīng)的API Key 和 Secret Key
1.選擇一個想要使用的模型
2.調(diào)用API調(diào)試(本文選擇的為ERNIE-4.0-8K模型)
用Python調(diào)用
import os
import qianfan
# 通過環(huán)境變量初始化認證信息
# 方式一:【推薦】使用安全認證AK/SK鑒權(quán)
# 替換下列示例中參數(shù),安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk,如何獲取請查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
# 方式二:【不推薦】使用應(yīng)用AK/SK鑒權(quán)
# 替換下列示例中參數(shù),將應(yīng)用API_Key、應(yīng)用Secret key值替換為真實值
#os.environ["QIANFAN_AK"] = "應(yīng)用API_Key"
#os.environ["QIANFAN_SK"] = "應(yīng)用Secret_Key"
chat_comp = qianfan.ChatCompletion()
# 指定特定模型
resp = chat_comp.do(model="ERNIE-4.0-8K", messages=[{
"role": "user",
"content": "你好"
}])
print(resp["body"])
用Java調(diào)用
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.chat.ChatResponse;
public class Demo {
public static void main(String[] args) {
// 使用安全認證AK/SK鑒權(quán),替換下列示例中參數(shù),安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk
Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
// 指定模型
ChatResponse resp = qianfan.chatCompletion()
.model("ERNIE-4.0-8K")
.addMessage("user", "你好")
.execute();
System.out.println(resp.getResult());
}
}
用Go調(diào)用
package main
import (
"context"
"fmt"
"os"
"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)
func main() {
// 使用安全認證AK/SK鑒權(quán),通過環(huán)境變量初始化;替換下列示例中參數(shù),安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk
os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
// 指定特定模型
chat := qianfan.NewChatCompletion(
qianfan.WithModel("ERNIE-4.0-8K"),
)
resp, _ := chat.Do(
context.TODO(),
&qianfan.ChatCompletionRequest{
Messages: []qianfan.ChatCompletionMessage{
qianfan.ChatCompletionUserMessage("你好"),
},
},
)
fmt.Println(resp.Result)
}
用Node.js調(diào)用
import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";
// 使用安全認證AK/SK鑒權(quán),通過環(huán)境變量初始化;替換下列示例中參數(shù),安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
const client = new ChatCompletion();
async function main() {
const resp = await client.chat({
messages: [
{
role: 'user',
content: '你好',
},
],
}, 'ERNIE-4.0-8K');
console.log(resp);
}
main();
在Prompt中的實體對象存在多種諧音,而我們在拼寫錯的情況下,往往會獲得錯誤的返回結(jié)果。同理,在語法錯誤以及標點錯誤的情況下,可能也會得到不符合預(yù)期的返回結(jié)果。因此,我們在構(gòu)建Prompt時,需要保證語法、用詞以及標點的準確性來引導(dǎo)模型生成更準確的內(nèi)容
生成式大模型很多時候也和人類的理解能力相似,需要輸入一些更明確的指示內(nèi)容助于理解并執(zhí)行內(nèi)容生成,意圖不明的模糊指令會讓模型生成內(nèi)容與預(yù)期有些偏離,甚至影響原本Prompt指令的生成內(nèi)容。如下例中,讓大模型生成一個短點的故事內(nèi)容,在結(jié)構(gòu)上可能進行了縮短,但生成內(nèi)容有些偏離“故事”本身;而明確讓大模型生成一個故事并規(guī)定字數(shù)限制后,可見的表現(xiàn)變得更好了
在針對一些實體對象進行評價、分析等場景時,大模型訓(xùn)練時不含這類實體對象的語料,就像我們無法對不認識的人產(chǎn)生評價一樣,大模型也無法理解并生成對應(yīng)的內(nèi)容。因此,在針對特定對象以及特定場景進行內(nèi)容生成時,需要補充更完整的背景信息
在一些對話場景、創(chuàng)作場景下,不同的身份視角往往會基于Prompt具體的指令內(nèi)容給出不同角度的生成內(nèi)容,例如在法律咨詢的場景,我們期待大模型基于律師的視角給與建議;在學生考前焦慮的提問對話場景下,可以讓大模型基于老師、家長不同的視角給與建議與安撫
提供更多明確的示例內(nèi)容與格式,可以明確大模型生成的內(nèi)容在可控范圍內(nèi),是在很多通用場景下提升大模型生成內(nèi)容質(zhì)量的有效手段
在一些需要明確返回內(nèi)容范圍的場景,例如需要通過返回內(nèi)容進行檢索等,給出明確的指令輸入模型,能夠提升返回內(nèi)容的準確度,來滿足場景訴求。同時,這樣限定生成內(nèi)容范圍的Prompt在某種程度上也減少了泛化內(nèi)容的生成,節(jié)約了網(wǎng)絡(luò)傳輸與資源成本
Q:預(yù)置服務(wù)的付費方式那么多,我應(yīng)該如何選擇?
??A:?1. 首先初步結(jié)合業(yè)務(wù)場景自行估算TPM/RPM/QPS的速率要求,如果預(yù)置服務(wù)默認的速率限制滿足業(yè)務(wù)需求,則可以首選按tokens計費,更為經(jīng)濟;如果速率要求超出了默認的速率配額,則可以購買TPM&RPM包,從而實現(xiàn)速率提升。
????2. 如果選擇按tokens用量計費,可以進一步靈活選擇預(yù)付費還是后付費,按照經(jīng)驗來看如果業(yè)務(wù)比較穩(wěn)定,首選預(yù)付費,折扣力度更大;如果僅僅是前期試用,后付費即可,隨用隨停。需要注意的是,購買預(yù)付費的Tokens資源包,只是多Tokens可用量進行了擴容,并未對調(diào)用速率進行擴容。
????3. 如果選擇購買TPM&RPM配套擴容速率限制,建議購買一定數(shù)量的基礎(chǔ)預(yù)付費TPM&RPM配額,更加經(jīng)濟實惠。如果需要應(yīng)對業(yè)務(wù)場景中偶發(fā)的突增峰值流量,建議按需搭配靈活數(shù)量的后付費配額以應(yīng)對突增流量。
Q:為什么我開啟的訓(xùn)練任務(wù)一直在無法提交,我應(yīng)該怎么做才能推動模型訓(xùn)練的進度?
??A:當前訓(xùn)練任務(wù)一直無法提交,一般由于未通過實名認證引起,需要您進入用戶中心,完成實名認證后再正常提交任務(wù)。
Q:我在多輪對話的SFT中,有部分輪次的對話效果不符合預(yù)期,因為模型并未按照指定要求回答問題,此時如果我使用全部輪次的數(shù)據(jù)進行精調(diào),模型效果會受到影響,應(yīng)該怎么辦?
??A:您可能遇到以下情況:[{"prompt":"可以請你用熱情的語氣回答我的問題嗎?", "response":"當然可以,請說出你的問題"}, {"prompt":"法國的首都是哪里", "response":"巴黎"}, {"prompt":"請你用熱情的語氣認真回答", "response":"哦!是巴黎,浪漫之都,那兒有很多漂亮的建筑,有機會你一定要去看看!"}]
其中在第二輪,模型并未按照指定要求熱情地回答問題。
此時,您可以在數(shù)據(jù)集中配置weight
字段,在SFT精調(diào)時選擇性跳過特定輪次的模型回答,使之不參與損失函數(shù)(loss)的計算過程,避免模型在訓(xùn)練過程中學習到錯誤信息。
取值:0或1,0表示該輪對話不參與SFT loss計算,默認值為1
格式示例[{"prompt":"可以請你用熱情的語氣回答我的問題嗎?", "response":"當然可以,請說出你的問題", "weight":1}, {"prompt":"法國的首都是哪里", "response":"巴黎", "weight":0}, {"prompt":"請你用熱情的語氣認真回答", "response":"哦!是巴黎,浪漫之都,那兒有很多漂亮的建筑,有機會你一定要去看看!", "weight":1}]
注意:含weight字段的數(shù)據(jù)僅在ERNIE Tiny、ERNIE Character、ERNIE Lite 0308、ERNIE Lite128K-0419和ERNIE Speed模型精調(diào)SFT中可用,該字段對其他模型開放的情況,請您時刻關(guān)注官方說明。
Q:我在調(diào)用Stable-Diffusion-XL服務(wù)的時候,總出現(xiàn)請求超時的情況,應(yīng)該怎么辦?
??A:建議使用以下方式調(diào)用:
????(1)如果未部署該服務(wù),需要您部署本模型為服務(wù),再調(diào)用部署好的服務(wù)。發(fā)布服務(wù)流程可參考說明文檔,詳細計費可查看價格文檔。
????(2)如果您已經(jīng)部署過此服務(wù),可在部署資源中進行復(fù)購。
Q:我可以在已購買后付費配額的前提下,繼續(xù)擴充或者縮小配額嗎?
??A:平臺支持您支持靈活變更配額,可在已購買后付費配額的前提下,擴增TPM額度或降低TPM額度。(Tips提示:兩次降配TPM額度操作至少間隔60分鐘),同時私有資源池AI加速卡Ⅰ型支持按分鐘后付費,低于15分鐘按15分鐘計算。
Q:千帆ModelBuilder現(xiàn)在有臨期續(xù)購提醒嗎?我應(yīng)該如何配置?
??A:百度智能云提供專屬消息類型配置和消息接收人配置,具體使用方法,可查看幫助文檔。
Q:我已將ERNIE-Lite-8K-0922的預(yù)置服務(wù)QPS切換為TPM和RPM,如果1分鐘內(nèi)請求數(shù)量大于RPM數(shù)值會有什么影響?
??A:假設(shè)API服務(wù)RPM=60,如果客戶在1分鐘之內(nèi)發(fā)送100個請求,只會有60個請求成功,剩余40個請求直接失敗。
Q:我已將ERNIE-Lite-8K-0922的預(yù)置服務(wù)QPS切換為TPM和RPM,RPM數(shù)值為60,可以1秒直接發(fā)送60個請求么?
??A:不可以。建議用戶均勻的發(fā)送API請求,較短時間內(nèi)發(fā)送過多的請求,會導(dǎo)致部分請求會進入排隊隊列,排隊請求會按照一定周期重新發(fā)送,直到請求成功或排隊超時。
Q:我在創(chuàng)建知識庫的導(dǎo)入配置時,數(shù)據(jù)庫配置時選擇BES,為什么連接不到了呢?
??A:當前僅支持選擇北京區(qū)域的BES,且只能通過Http協(xié)議連接您的自建BES。
Q:我的Embedding-V1和bge-large-zh公有云在線體驗服務(wù)都已經(jīng)開通付費了,余額也充足,命中測試提醒我請求數(shù)量已達上限?
??A:當前命中測試有上限限制,每日請求量限制不超過100次,每分鐘請求量限制不超過20次。
Q:我在提交模型訓(xùn)練運行的時候,提醒我模型數(shù)量已達上限?
??A:SFT任務(wù)、獎勵模型訓(xùn)練、強化學習訓(xùn)練任務(wù)。每種任務(wù)的運行(包含新創(chuàng)建的、排隊中的、運行中的)不能超過5個。
Q:我在文生文任務(wù)SFT時,LoRA訓(xùn)練后的模型,為什么增量訓(xùn)練的時候選不到?
??A:當前平臺僅支持訓(xùn)練方式為全量更新的文生文基準模型,開啟增量訓(xùn)練。
Q:我上傳自己的數(shù)據(jù)集會不會被其他用戶調(diào)用去訓(xùn)練他們的大模型?
??A:您的上傳的數(shù)據(jù)集是屬于您賬號下的專屬數(shù)據(jù),未經(jīng)您的許可不會被其他人員查看到,更加不會被其他用戶在大模型訓(xùn)練時調(diào)用。
Q:我將預(yù)置模型發(fā)布為服務(wù)以后,調(diào)用接口報錯誤碼17,這是怎么回事?
??A:以上情況出現(xiàn),是因為您發(fā)布了API服務(wù),但是并未進行API付費,需要您根據(jù)提示進行在線API付費。
Q:我在調(diào)用文心系列大模型服務(wù)時,模型返回:“我是文心一言”,是否對百度造成侵權(quán)?
??A:出現(xiàn)以上情況不會對百度造成侵權(quán),請您放心使用。
Q:模型訓(xùn)練過程中,手動終止訓(xùn)練任務(wù)的話,還會計費嗎?
??A:任務(wù)終止,計費也將會終止。一旦任務(wù)終止,將無法重啟,請您謹慎終止訓(xùn)練任務(wù)。
Q:為什么版本更新完成后,體驗中心的模型輸出調(diào)用token為0了?而且我在調(diào)用千帆ModelBuilder api時,遇到error code=06,是為什么?
??A:版本更新后,需要您在應(yīng)用接入中,選擇指定應(yīng)用的“編輯”按鈕,完成“更新”操作。注:未創(chuàng)建應(yīng)用的情況下使用在線測試功能,也會遇到此現(xiàn)象,需先創(chuàng)建應(yīng)用。
在調(diào)用部分大模型相關(guān)API時,例如調(diào)用ERNIE 3.5 ,需使用請求參數(shù)Messages,表示聊天上下文信息。
針對Messages介紹,”成員數(shù)目必須為奇數(shù),成員中message的role值說明如下:奇數(shù)位messsage的role值必須為user或function,偶數(shù)位message的role值assistant,第一個message的role不能是function。”,說明如下。
1.以下列為例介紹Messages使用"messages": [ {"role":"user","content":"你好"}, {"role":"assistant","content":"如果您有任何問題,請隨時向我提問。"}, {"role":"user","content": "我在上海,周末可以去哪里玩?"}, {"role":"assistant","content": "上海是一個充滿活力和文化氛圍的城市,有很多適合周末游玩的地方。以下是幾個值得推薦的地方:\n\n1. 上海科技館:上海科技館是中國大陸最大的科技館之一,有許多互動展覽和科學實驗室,可以讓您了解科技的發(fā)展歷史和最新成果。\n2. 上海博物館:上海博物館是一座集藝術(shù)、歷史和文化于一體的博物館,有許多精美的藝術(shù)品和文物,可以讓您深入了解中國和世界的文化歷史。"}, {"role":"user","content": "周末這里的天氣怎么樣?"} ] }
(1)成員
例如:其中一個message成員為 {"role":"user","content":"你好"}
(2)成員數(shù)目
例如,示例中messages參數(shù)共有5個message成員。
(3)message的role限制
例如,示例中message中的role值分別為user、assistant、user、assistant、user。
錯誤原因:message成員需要是奇數(shù),示例中為2,是偶數(shù)"messages": [ { "role": "user", "content": "你好" }, { "role": "assistant", "content": "你好,有什么我可以幫助你的嗎?" } ]
錯誤原因:偶數(shù)位message中的role應(yīng)該為assistant,示例中為user"messages": [ { "role": "user", "content": "你好" }, { "role": "user", "content": "我在上海,周末可以去哪里玩?" } ]
文心一言(ERNIE 4.0)是百度推出的先進大語言模型,提供強大的自然語言處理能力。如果您正在尋找其替代品,以下是一些值得考慮的選項:
1. 通義千問:由阿里云開發(fā)的通義千問大模型,具備強大的語言理解和生成能力,適用于多種應(yīng)用場景。
2. 訊飛星火:科大訊飛推出的訊飛星火大模型,專注于中文語言處理,廣泛應(yīng)用于教育、醫(yī)療等領(lǐng)域。
3. Minimax:Minimax系列模型在自然語言處理方面表現(xiàn)出色,適用于文本生成、智能問答等任務(wù)。
4. ChatGPT:由OpenAI開發(fā)的ChatGPT模型,支持多語言處理,廣泛應(yīng)用于全球各行業(yè)。
5. Felo AI Search:Felo AI Search是一款多語言人工智能搜索引擎,提供跨語言搜索和實時信息獲取功能,適合作為文心一言的替代方案。
在選擇替代品時,建議根據(jù)您的具體需求、應(yīng)用場景以及對模型性能的要求,綜合考慮上述選項。
本文詳細介紹了如何獲取和調(diào)用千帆大模型 API,包括密鑰申請、基礎(chǔ)配置、調(diào)用方法及調(diào)試注意事項。通過合理配置 prompt、temperature 和 max_tokens 參數(shù),可以靈活調(diào)整輸出效果,最大化千帆大模型的應(yīng)用價值。