国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

企業(yè)網(wǎng)站做seo輿情報告范文

企業(yè)網(wǎng)站做seo,輿情報告范文,宇舶手表網(wǎng)站,昌吉做網(wǎng)站推廣的公司01 背景 隨著大型語言模型的迅猛增長,各種模型在各個領(lǐng)域的應用如雨后春筍般迅速涌現(xiàn)。在研發(fā)全流程的效能方面,也出現(xiàn)了一系列貫穿全流程的提效和質(zhì)量工具,比如針對成本較高的Oncall,首先出現(xiàn)了高質(zhì)量的RAG助手;在開…

01 背景

隨著大型語言模型的迅猛增長,各種模型在各個領(lǐng)域的應用如雨后春筍般迅速涌現(xiàn)。在研發(fā)全流程的效能方面,也出現(xiàn)了一系列貫穿全流程的提效和質(zhì)量工具,比如針對成本較高的Oncall,首先出現(xiàn)了高質(zhì)量的RAG助手;在開發(fā)階段的Copilot、Comate、Tabnine等輔助編程應工具;在測試階段,也有缺陷檢查、安全合規(guī)檢查、智能Code Review等工具;哪怕在交付階段,也有替代人工的自動化Agent…

當使用git commit提交代碼時,需要寫繁雜的CommitMessage,有時候?qū)懥撕髤s不符合提交規(guī)范被hook,有時候還被CodeReview的同學點評寫不到點上…智能CommitMessage就是這樣一個小助手,幫你按照提交規(guī)范自動生成符合規(guī)范的CommitMessage。

以百度APP 的提交規(guī)范為例,規(guī)范包括提交類別、產(chǎn)品版本、需求卡片、變更摘要等,其中類別又包括:功能、更新、優(yōu)化、提測、上車、Merge、FixBug等,手動抒寫較為復雜。

按照CommitMessage的組合標準,可以分為兩個部分:規(guī)范格式 + 變更摘要:

圖片

CommitMessage組成部分

  • 普通摘要類:提交規(guī)范格式 + 變更摘要
  • FixBug類:提交規(guī)范格式 + 變更摘要(包括bug原因、影響、修復方式等)

其中運用大模型能力生成變更摘要部分,而提交規(guī)范格式及其他標簽由個性化插件定制,即可對不同業(yè)務線/產(chǎn)品線可定制符合提交規(guī)范的CommitMessage。

智能CommitMessage的最終使用效果如下:查看原文

git aicommit 用法示例

下面就以智能CommitMessage為例,介紹下大模型效能工具開發(fā)流程,主要包括:

  • 簡單的功能設計
  • 應用指標和模型評估指標
  • 大模型數(shù)據(jù)處理過程
  • 模型性能優(yōu)化的幾種方式

02 功能與設計

用戶入口一:git aicommit

Git是高效便捷的版本控制系統(tǒng),雖然百度APP移動端已經(jīng)多倉庫化,隨著組件化進程的完善,有至少有一半的需求不需要跨倉庫提交而使用Git。

用戶入口二:mgit aicommit

MGit?(https://github.com/baidu/m-git)是百度自研的一套開源的、基于Git的多倉庫管理工具,針對多倉庫的應用場景安全地、高效的管理多個Git倉庫,在基礎版本之上增加MGit插件即可擴展或者修改原命令。

對入口的基本要求:

  1. Git/MGit入口的使用不影響原有g(shù)it/mgit commit功能的使用,只是能力擴展
  2. 保證Git和MGit的入口分離的同時,保證功能統(tǒng)一,低成本維護

處理方式:抽象實現(xiàn)共用模塊git-aicommit,該模塊由MGit插件和Git alias命令直接調(diào)用,開發(fā)語言選型ruby,便于 MGit 插件直接調(diào)用。

git-aicommit模塊:提取所有提交倉庫中Git暫存區(qū)內(nèi)的變更內(nèi)容,請求模型服務生成Commit Message。

  • MGit/Git入口,即用戶使用入口,對于MGit插件可以參考MGit如何擴展(https://github.com/baidu/m-git);Git Alias按如下配置即可:
# 給 git 添加 Alias:git aicommit
$ git config --global alias.aicommit '!f() { ruby -e '''require "git-aicommit"; MGit::GitAICommit.run(ARGV);''' -- "$@"; }; f'
  • 個性化插件:提交規(guī)范的格式定制,任何不同的提交規(guī)范均可定制為獨立的插件,詳細參考下面自定義提交規(guī)范章節(jié)。
  • 模型服務:接受git-aicommit模塊的請求,調(diào)用LLM生成CommitMessage摘要內(nèi)容,加載對應的個性化插件生成最終的CommitMessage。

03 評估指標

管理學之父彼得·德魯克說過:“If you can’t measure it, you can’t manage it.”。

度量指標對于模型選擇、后續(xù)Prompt調(diào)優(yōu)以及SFT都至關(guān)重要,因為它決定了優(yōu)化的標準。

生成CommitMessage時,既需要理解變更的代碼,也需要生成對應的摘要、評估影響等,生成式大模型適合此類任務,當前生成式大模型在市面上也百花齊放,經(jīng)過綜合評估使用成本(包括數(shù)據(jù)管理、部署運維、性能調(diào)優(yōu)、Prompt和模型評估)、生成質(zhì)量、安全風險等方面的考慮,我們選擇了百度智能云千帆平臺的ERNIE4(文心4)。

針對此類摘要任務,常用的度量指標有BLEU Score、ROUGE Score、BERT Score、PPL、MSE等,結(jié)合生成CommitMessage的任務特性,最終確定模型和產(chǎn)品的核心指標:

  • 模型性能指標:MSE(Mean Squared Error,均方誤差),用于衡量生成的文本序列與參考CommitMessage的文本序列之間的語義相似度;
  • 用戶使用指標:AR(Acceptance Rate,直接采納率),也叫用戶直接滿足度,針對模型服務生成的CommitMessage,用戶直接采納的次數(shù)相對于總的使用次數(shù)的占比

均方誤差MSE(Mean Squared Error)

參考CommitMessage的文本序列,指高質(zhì)量的、簡潔的、準確的、標準的CommitMessage,客觀標準是至少包括:為什么修改(Why)、改了什么(What)、影響面(可選),主觀標準是人工篩選并提取。

根據(jù)定義,計算MSE即計算兩段文本的語義相似度差值,簡單的分為如下三個步驟:

1.文本Embedding向量化:

  • 將兩段文本轉(zhuǎn)換為向量表示。大模型時代Embedding的方式太多太多了,這里依然直接選用了千帆的Embedding方式。

2.向量差異計算:

  • 計算兩段文本的向量表示間的差異或距離時,我們選擇使用余弦相似度;盡管歐幾里得距離和馬氏距離也是常用的方法,但針對CommitMessage這種長度不一致的向量時,余弦相似度表現(xiàn)更為準確。

3.均方誤差計算:

  • 將差異或距離平方,然后計算平均值以得到均方誤差。
  • 圖片
  • 其中,xi 和 yi 是兩段文本在第 i 個維度上的表示,n 是維度數(shù)量。

本文多次提交兩個概念:

參考CommitMessage:可以是RD生成已提交入庫的,也可以由大模型生成、經(jīng)過人工標注的保證質(zhì)量的CommitMessage,作為評估的標準yi

生成CommitMessage:由大模型生成的CommitMessage,評估輸入的判定項xi

直接采納率AR(Adoption Rate)

總的使用次數(shù)包括3個結(jié)果:

  • 直接采納數(shù) CA
  • 編輯采納數(shù) CE
  • 拒絕數(shù) CR

圖片

04 數(shù)據(jù)處理

大模型應用開發(fā)為了更好的性能(包括生成質(zhì)量、效率、準確度、采納率),數(shù)據(jù)處理的成本投入較高,通常占據(jù)整個應用開發(fā)投入的相當大的比例,有時甚至可能超過模型訓練和調(diào)優(yōu)的工作量??傊?#xff0c;有效和高效的數(shù)據(jù)處理是提升模型性能的關(guān)鍵因素,因此在項目計劃和資源分配中應給予足夠的重視和投入。

數(shù)據(jù)處理的目標就是管理(增刪改/標查)好數(shù)據(jù)集,產(chǎn)物是各類數(shù)據(jù)集,數(shù)據(jù)集的最終應用場景是模型的性能優(yōu)化(模型選擇、Prompt優(yōu)化、SFT),也就是說,如果不做性能優(yōu)化,就可以不用做數(shù)據(jù)處理。

數(shù)據(jù)集與性能優(yōu)化的關(guān)系如下:

  • 評估集,模型選擇、Prompt調(diào)優(yōu)、SFT后都需要評估集對本次調(diào)優(yōu)進行評估,是否比之前的好,是否達到調(diào)優(yōu)的效果
  • 訓練集,指用于SFT的標注數(shù)據(jù),根據(jù)特征從總數(shù)據(jù)集中篩選
  • 驗證集,驗證集是用來調(diào)整模型超參數(shù),避免過擬合或欠擬合
  • 測試集,SFT后測試是否達到SFT的目的,比如針對某個異常case評估其泛化能力
  • 異常集,標注環(huán)節(jié)明確的低質(zhì)量的CommitMessage數(shù)據(jù),特別是大模型生成未被直接采納的數(shù)據(jù)

這里介紹下大體的過程及其作用,細節(jié)不做展開:

  • 定義數(shù)據(jù)結(jié)構(gòu):模型數(shù)據(jù)(需求/bug卡片標題、變更數(shù)據(jù))、參考CommitMessage、類別數(shù)據(jù)(是否bug、變更行、倉庫數(shù))、輔助分析數(shù)據(jù)(產(chǎn)品線、平臺、作者、Topic)等
  • 數(shù)據(jù)采集:來源于:①線上模型服務生成的CommitMessage;②存量RD已提交入庫的CommitMessage;③其他開源數(shù)據(jù)集
  • 數(shù)據(jù)清洗:去噪、去重等處理,確保數(shù)據(jù)的質(zhì)量和可用性
  • 標注與注釋:標注本條數(shù)據(jù)作為參考CommitMessage的質(zhì)量,其他輔助分析信息
  • 分類與管理:抽樣配比、過濾篩選、查看等

根據(jù)我們當前的數(shù)據(jù)體量,選擇了Pandas(https://pandas.pydata.org/)作為數(shù)據(jù)處理工具,它對小規(guī)模數(shù)據(jù)和單機環(huán)境提供了夠用的數(shù)據(jù)處理和分析功能。然而,隨著數(shù)據(jù)體量的逐步增大,Spark(https://spark.apache.org/)將是一個不錯的選擇。

05 性能優(yōu)化

性能優(yōu)化的目標是提升性能指標,包括核心指標均方誤差MSE和生成效率,進而提升用戶直接采納率AR,手段包括如下三種:

  • 停止標記(Stop Token),可提升生成效率
  • Prompt優(yōu)化,可優(yōu)化MSE指標和提升生成效率
  • SFT可優(yōu)化MSE指標

5.1 停止標記

當模型對Prompt理解不完全時,容易生成多余的解釋或注意事項等無效內(nèi)容,生成更多的Token導致生成效率降低(生成效率與生成的Token長度直接相關(guān)),而所有Transformer模型中都設計有停止標記,比如智能CommitMessage里調(diào)用模型的輸出是一個Markdown的json,以“%STOP%”結(jié)尾,可指定停止標識為“%STOP%”以提高生成效率。

5.2?Prompt優(yōu)化

簡單說Prompt優(yōu)化就是設計和優(yōu)化輸入Prompts以獲得期望的輸出??此埔粋€簡單的NLP任務,卻又叫Prompt工程?因為需要讓大模型更好的理解期望的需求,確實涉及多學科的知識,比如融合語言學、心理學、計算機科學、數(shù)據(jù)科學,也包括整套工程方法:系統(tǒng)設計、實驗設計、質(zhì)量控制、項目管理等等方面。智能CommitMessage里涉及的兩個優(yōu)化點:

  1. 限制輸出內(nèi)容,明確要求

CommitMessage調(diào)用模型的輸出要求是Markdown的json,如果模型輸出不是正常的json將導致解析異常,此時在Prompt中明確要求『請僅輸出內(nèi)容,不要做任何解釋』可避免生成無效內(nèi)容,提高生成效率和準確性。

  1. Few-shot

Prompt優(yōu)化里有個優(yōu)化在限制輸出樣式的情況下非常有效 --Few-shot,以示例讓大模型理解并限制輸出樣式,要求輸出一個Markdown 的多行的 json 數(shù)據(jù),樣例:

按以下格式輸出CommitMessage,只是一個markdown的代碼片段,包含在"```json"?和?"```"內(nèi),『請僅輸出內(nèi)容,不要做任何解釋』:
```json
{"summary": string  // 少于30字的中文,簡潔的、準確的描述Git Commit Message"reason": string  // 分析修復方式,詳細描述這個bug出現(xiàn)的具體原因,可以引用代碼,少于60字"fixup": string  // 分析修復方式,簡潔、準確的描述修復方式,可以引用代碼,少于30字
}
```

這里的樣例不是一個標準的json格式(多行換行時缺少“,”),大模型可能按照該格式輸出,也可能按照正確的json格式輸出,所以存在一個異常問題的不確定性,可通過完善該Few-shot完全避免該問題:

按以下格式輸出CommitMessage,只是一個markdown的代碼片段,包含在"```json" 和 "```"內(nèi),『請僅輸出內(nèi)容,不要做任何解釋』:
```json
{"summary": string,  // 少于30字的中文,簡潔的、準確的描述Git Commit Message"reason": string,  // 分析修復方式,詳細描述這個bug出現(xiàn)的具體原因,可以引用代碼,少于60字"fixup": string  // 分析修復方式,簡潔、準確的描述修復方式,可以引用代碼,少于30字
}
```

這里有個類似的概念:Prompt Tuning,Few-shot 和 Prompt Tuning都是優(yōu)化和調(diào)整大型語言模型輸入提示的方法,但有著本質(zhì)上的區(qū)別:

附上智能CommitMessage的部分Prompt(持續(xù)優(yōu)化中):

通俗易懂的角色描述:基于需求描述和實現(xiàn)該需求的git diff變更代碼,自動生成規(guī)范的git提交信息。 
需求描述的標題如下:{{%title}}git diff變更代碼如下:
(DIFF-START)
{{%git_diff}} 
(DIFF-END)任務拆解
1.  解析需求標題: 
提取關(guān)鍵信息,如功能點、問題點等。
對文本進行清洗,去除無關(guān)字符和格式。
2.  分析git diff變更代碼:
識別變更的文件和代碼塊。
分析代碼變更的類型(如新增、修改、刪除等)。
3.  生成Commit Message:
結(jié)合需求標題以及代碼變更分析,編寫Commit Message。 
確保提取的內(nèi)容符合對應項的要求,如“summary: 少于30字的中文,簡潔的、準確的描述Git Commit Message”等。
4.  驗證Commit Message: 
檢查Commit Message是否清晰、準確。
5.  按以下格式輸出CommitMessage,只是一個markdown的代碼片段,包含在"`json" 和 "`"內(nèi),『請僅輸出內(nèi)容,不要做任何解釋』:
```json
{"summary": string  // 少于30字的中文,簡潔的、準確的描述Git Commit Message
}
```%STOP%

5.3?SFT

因為文心4的模型能力已經(jīng)有非常出色的生成能力,在這種大模型上做SFT成本非常高,所以一般會采用ERNIE-lite版本或者ERNIE-Speed版本,但是性能稍遜一籌,那如何保證在ERNIE-Speed版本中SFT后既能不降低整體性能,又能優(yōu)化低質(zhì)量case?

這里可以采用MoE(Mixture of Experts)的策略,用一個分類器來結(jié)合ERNIE4 + (ERNIE-Speed + SFT)各自的優(yōu)勢,即請求優(yōu)先經(jīng)過一個分類器,根據(jù)請求的特征進行分類請求ERNIE4或者經(jīng)過SFT后的ERNIE-Speed模型,如下圖示例:

部署前記得SFT評估數(shù)據(jù)集的全量評估,MSE優(yōu)于線上保證本次SFT后的ERNIE-Speed模型比上次的更好。

SFT的全過程應該包含四個步驟:

  1. 確定目標:優(yōu)化某個/某類低質(zhì)量的數(shù)據(jù)case,微調(diào)后達到評估多少分值
  2. 數(shù)據(jù)準備:基于該case提取低質(zhì)量case的特征,向數(shù)據(jù)集里篩選出訓練集、驗證集和測試集
  3. SFT過程:如上圖所示
  4. 評估部署:根據(jù)抽樣配比的評估集進行全量評估,保證本次SFT后的ERNIE-Speed模型比上次的更好

06 自定義提交規(guī)范

由于大模型只生成核心的變更摘要或者Fixbug的相關(guān)信息,而最終需要組合成各式各樣的提交規(guī)范格式,所以可以將變化抽象為接口,可擴展python package實現(xiàn)接口達成自定義符合提交規(guī)范的CommitMessage,按需動態(tài)加載實現(xiàn)的插件。

抽象接口如下:

from abc import ABC, abstractmethodclass IPluginHook(ABC):"""插件實現(xiàn)的接口定義"""@abstractmethoddef hook_prepare(self, ctx):"""準備"""@abstractmethoddef hook_is_fix_bug(self, ctx) -> bool:"""是否fixbug的提交類型,默認false"""@abstractmethoddef hook_language(self, ctx) -> Language:"""生成語言,默認中文"""@abstractmethoddef hook_generate_variables(self, ctx):"""生成模板的變量"""@abstractmethoddef hook_generate_message(self, ctx) -> str:"""根據(jù)模板和變量,生成CommitMessage@warning: 該方法插件必須實現(xiàn),否則將報出異常"""

加載某個插件的某個版本時,根據(jù)pkg_resources判定是已加載,然后配合 importlib進行import_module或者reload即可實現(xiàn)動態(tài)加載插件

def __install_plugin(pkg_name: str, version: str):"""安裝插件"""subprocess.check_call([sys.executable, '-m', 'pip', 'install', f"{pkg_name}=={version}"])return __load_module(pkg_name, force=True)def __load_module(pkg_name: str, force: bool = False):"""加載module"""module_name = __module_name(pkg_name)loaded_module = sys.modules.get(module_name)if loaded_module is not None:if force:m = importlib.reload(loaded_module)importlib.reload(pkg_resources)return mreturn loaded_modulem = importlib.import_module(module_name)importlib.reload(pkg_resources)return m

07 未來

大模型對各類語言的代碼理解上展現(xiàn)了卓越的能力,但對專有詞匯、特定配置、固定格式等的理解依然存在不足,都需要合適的數(shù)據(jù)集來逐步優(yōu)化;并且git diff獲取的變更內(nèi)容有限,受限于模型Token的限制,理解時缺少代碼的上下文、依賴關(guān)系的關(guān)聯(lián)導致生成質(zhì)量存在瓶頸,結(jié)合RAG或許是一個較好的方式;使用入口的交互性、自定義提交規(guī)范都可以更AI,總之:AI Native 尚未成功,同志仍須努力。

——————END——————

參考資料:

[1] LangChain:https://www.langchain.com/

[2] git:https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases

[3] pandas:https://pandas.pydata.org/

[4] Spark:https://spark.apache.org/

[5] 百度千帆:https://console.bce.baidu.com/qianfan/overview

[6] Prompt工程 大模型的應用與實踐:https://zhuanlan.zhihu.com/p/668200325

推薦閱讀:

基于afx透明視頻的視覺增強前端方案

百度一站式數(shù)據(jù)自助分析平臺(TDA)建設

淺析如何加速商業(yè)業(yè)務實時化

登錄系統(tǒng)演進、便捷登錄設計與實現(xiàn)

一文帶你完整了解Go語言IO基礎庫

?

http://m.aloenet.com.cn/news/41394.html

相關(guān)文章:

  • 寧波北侖網(wǎng)站建設上海seo外包
  • 建網(wǎng)站域名注冊后需要網(wǎng)絡營銷所學課程
  • 專業(yè)做域名的網(wǎng)站線上營銷平臺
  • 張家港網(wǎng)站建設門店推廣下載app賺錢
  • 武漢企業(yè)做網(wǎng)站找哪家好收錄排名好的發(fā)帖網(wǎng)站
  • 清河做網(wǎng)站哪家好怎么請專業(yè)拓客團隊
  • 網(wǎng)站開發(fā)員鄭州seo培訓班
  • 做網(wǎng)站哪家公司比較好網(wǎng)站流量排行
  • 武漢做商城網(wǎng)站建設寧波seo排名優(yōu)化哪家好
  • 廣州網(wǎng)站關(guān)鍵詞排名鄭州網(wǎng)站關(guān)鍵詞排名技術(shù)代理
  • 緊抓政府網(wǎng)站集約化建設免費網(wǎng)站注冊com
  • dede古典網(wǎng)站模板什么關(guān)鍵詞能搜到資源
  • 怎樣做網(wǎng)站首頁圖片變換網(wǎng)店營銷策劃方案
  • 上海 網(wǎng)站建設 500強關(guān)鍵詞搜索優(yōu)化外包
  • 電商網(wǎng)站怎么制作全國seo公司排名
  • WordPress插件集成在主題青島seo建站
  • 景區(qū)電子商務網(wǎng)站建設免費推廣的網(wǎng)站平臺
  • 佛山專業(yè)網(wǎng)站建設公司哪家好網(wǎng)站廣告投放收費標準
  • 怎么做電視臺網(wǎng)站網(wǎng)站外鏈購買
  • 常州做集裝箱的公司東莞seo網(wǎng)絡推廣專
  • 響應云網(wǎng)站模板下載天津seo優(yōu)化公司哪家好
  • 淄博網(wǎng)站推廣公司那些指數(shù)平臺
  • 徐州做網(wǎng)站建設的公司免費的短視頻app大全
  • 用花生棒自己做網(wǎng)站網(wǎng)站片區(qū)
  • java網(wǎng)站開發(fā)設計報告武漢seo排名優(yōu)化
  • 萬全網(wǎng)站建設怎么在百度上推廣產(chǎn)品
  • 電商平臺網(wǎng)站開發(fā)口碑營銷案例2021
  • wordpress 超商取貨電商seo什么意思
  • 域名備案代理石家莊seo管理
  • 做不規(guī)則幾何圖形的網(wǎng)站重慶高端品牌網(wǎng)站建設