《codeLLM和RAG技術在OPPO的探索_鄭志彤_DataFunCon2024.pdf》由會員分享,可在線閱讀,更多相關《codeLLM和RAG技術在OPPO的探索_鄭志彤_DataFunCon2024.pdf(44頁珍藏版)》請在三個皮匠報告上搜索。
1、DataFunSummitDataFunSummit#20242024codeLLMcodeLLM和和RAGRAG技術在技術在OPPOOPPO的探索的探索鄭志彤(Liam)-OPPO-AI中心大模型算法部首席算法架構師LLMLLM的缺陷與領域知識的缺陷與領域知識codeLLMcodeLLM和和dataLLMdataLLM的技術創新的技術創新RAGRAG技術落地技術落地展望展望LLMLLM和符號化推理的結合和符號化推理的結合目錄目錄 CONTENTCONTENTDataFunSummitDataFunSummit#202420240101LLMLLM的缺陷與領域知識的缺陷與領域知識01 LLM0
2、1 LLM的缺陷與領域知識的缺陷與領域知識1.1 LLM的幻覺1.2 LLM的推理魯棒性1.3 領域知識的特性1.1 LLM的幻覺LLM幻覺的本質是什么?訓練階段:訓練數據的共現偏置(co-occurrence bias)精調階段:精調對齊時過短的上下文QA推理階段:不恰當的prompt會導致雪崩效應(snowball)1.1 LLM的幻覺LLM本身能不能消除幻覺?不能,因為LLM是個端到端的神經網絡,通過學習基于上下文的token概率來擬合訓練數據,即使是訓練數據無偏,也不可能捕獲到小概率重要事件。1.1 LLM的幻覺如何緩解LLM的幻覺?RAG是其中最重要的一種方法。1.2 LLM的推理魯
3、棒性Transformer的ICL能力。1.2 LLM的推理魯棒性LLM推理的順序性。1.2 LLM的推理魯棒性如何提升LLM推理的魯棒性?數據增強(data augmentation),更優的ICL網絡架構。1.3 領域知識的特性非結構性領域知識實時信息文本、操作規范文檔等1.3 領域知識的特性結構性領域知識數據庫、知識圖譜、QA對等1.3 領域知識的特性專家系統帶有完全正確推理能力的知識庫DataFunSummitDataFunSummit#202420240202codeLLMcodeLLM和和dataLLMdataLLM的技術的技術創新創新2 codeLLM2 codeLLM和和dat
4、aLLMdataLLM的技術創新的技術創新2.1 基模型選取2.2 非結構領域知識調優2.3 結構領域知識調優2.1 2.1 基模型選取基模型選取需求:幫助開發者文生代碼、代碼補全、代碼注釋、單元測試、代碼 bug 檢測,從而提高研發效能。選取標準:code/data能力強,NLP能力也要強,對齊提升潛力大。2.1 2.1 基模型選取基模型選取基線模型對比表模型名稱模型名稱starcoderBasestarcoderBasecodeLLAMAcodeLLAMAdeepSeekCoderdeepSeekCoder參數量15B7B、13B、34B、70B1.3B、5.7B、6.7B、33B網絡架構
5、LLaMA1LLaMA2LLaMA2預訓練數據1T-code及相關英文文本,35B-python620B tokens(500B(85%+8%+7%)、100B python(75%+10%+10%+5%)、20B 長code)2T tokens(70%code、10%StackExchange、7%NL-code、7%NL-math、6%NL-zh-en)預訓練方法LLaMA1預訓練方法在LLaMA2上繼續訓練,FIM、LCFT(16K)4k(1.8T)、16K(0.2T)zeroShot指標HumanEval:30.4MBPP:49.0HumanEval:31.7MBPP:41.6Huma
6、nEval:48.2MBPP:55.2HumanEval:49.4MBPP:60.6HumanEval:56.1MBPP:66.02.1 2.1 基模型選取基模型選取調優模型對比表模型模型名稱名稱starcoderstarcoderwazardcoderwazardcoderPanGu-PanGu-Coder2Coder2CodeFuse-CodeFuse-CodeLlama-34BCodeLlama-34BdeepSeekCoder-deepSeekCoder-instructinstructNSQL-Llama-NSQL-Llama-2-7b2-7b參數量15B15B15B34B33B7B
7、基模型starcoderBasestarcoderBasestarcoderBasecodeLLaMAdeepSeekCoderLLaMA2精調方法self-instructwazard-instuct排序-instruct多任務排序SFT2B tokens 高質量指令集NSText2SQL dataset,SFT指標HumanEval:33.6MBPP:33.6HumanEval:57.3HumanEval:61.64HumanEval:74.4HumanEval:79.3MBPP:70.0Spider:75CSpider:622.2 2.2 非結構領域知識調優非結構領域知識調優非結構領域預
8、訓練知識:專業代碼、內部代碼、內部代碼相關文檔、task指令集(需構建)。AndesGPT-Coder 基于 CodeLlama 基座模型,使用高質量篩選的開源代碼指令數據集,以及自研演化指令數據集和單測數據集,研發包括 7B、13B、34B 多個版本指令微調模型,在 python、java、kotlin 等語言表現亮眼。2.2 2.2 非結構領域知識調優非結構領域知識調優指令微調關鍵在于指令數據集構建,AndesGPT 團隊為此做了大量的指令工程工作,主要包括:(1)通過演化生成 Evol-Instruct 指令:自研 10 種進化指令策略,拓展指令的復雜性和多樣性;(2)加入中文代碼對話指
9、令,對齊中英文對話能力,增強模型對于中文輸入的響應能力(3)高質量指令篩選:自指導生成代碼指令,選擇 pass 的作為訓練指令(4)構造 java、kotlin 等單測指令,提升 java 生成和單測能力;(5)多輪對話指令,增強多輪對話能力;2.2 2.2 非結構領域知識調優非結構領域知識調優7B 模型:以 CodeLlama-7b-hf 和 deepseek-coder-6.7b-base 基座模型為基礎,指令微調,最終在 python 場景,都超過了當前 SOTA 的 deepseek-6.7b 模型。humaneval-pythonhumaneval-pythonhumaneval-j
10、avahumaneval-javaAndesGPT-Code-7b-Instruct0.7940.640AndesGPT-Code-6.7b-Instruct0.8100.8100.652官方:deepseek-coder-6.7b-instruct0.7860.6840.6842.2 2.2 非結構領域知識調優非結構領域知識調優13B 模型,重點優化了 java 能力和 單測能力,與開源模型相比,13B 模型達到了當前 SOTA 水平。humaneval-pythonhumaneval-pythonhumaneval-javahumaneval-javaAndesGPT-Coder-13B-
11、Java(java 專門優化版)0.7940.640WizardCoder-Python-13B-V1.00.8100.8100.652PanGu-Coder2 15B(華為)0.7860.6840.6842.2 2.2 非結構領域知識調優非結構領域知識調優34B 模型,重點優化了 java 能力和 單測能力,與開源模型相比,34B 模型也領先于國內除了 DeepSeek-Coder-Instruct-33B 的其他模型。humaneval-pythonhumaneval-pythonhumaneval-javahumaneval-javaDeepSeek-Coder-Instruct-33b
12、79.3%73.4%73.4%AndesGPT-Coder-34B(java 專門優化版)75.5%64%Ziya-Coding-34B-v1.075.5%-CodeFuse-CodeLlama-34B74.4%WizardCoder-Python-34B-V1.073.2%55.4%AndesGPT-Coder-33B-magic84.15%84.15%-2.3 2.3 結構領域知識調優結構領域知識調優結構領域知識:內部代碼規范、數據庫。AndesGPT-Coder-Sql-34B基于AndesGPT-Coder-34B模型,服務于公司內部數據分析場景。主要原因是,行業開源第三方模型,例如
13、nlsql-llama2、sqlcoder 等模型,對于中文業務場景適配較差(數據 table 定義差異較大,以及業務場景特殊的取數規則);第三方接口,因為可能存在的數據泄露風險問題,一般不會直接使用。2.3 2.3 結構領域知識調優結構領域知識調優指令集構造方面,prompt都要包括規范和table信息,主要包括:加入中英文代碼指令,對齊中文理解能力;加入更多 sql 代碼指令數據訓練,增強 sql 生成能力;構造復雜取數對話指令,增強對話理解能力;根據公司業務數據 table 定義以及業務邏輯,生成 sql 指令數據,增強業務適配能力;構造單表查詢和多表查詢指令,以適應更多負責查詢場景;2
14、.3 2.3 結構領域知識調優結構領域知識調優AndesGPT-Coder-Sql-34B 在中文 CSpider 指標上,達到國內 SOTA 水平,并且,在業務場景數據上測試,單表查詢能力上與 chatgpt 持平,多表查詢略輸于 GPT-4-8k,充分表明模型在中文復雜數據分析 sql 生成指令理解能力上,以及 sql 代碼生成能力上,達到非常不錯的水平。具體指標如下表:SpiderSpider中文中文 CSpider CSpiderAndesGPT-Coder-Sql-34B76.276.269.569.5NSQL-Llama-2-7b7562AquilaSQL(智源)-67.3業務單業
15、務單表查詢表查詢AndesGPT-AndesGPT-Coder-Sql-34BCoder-Sql-34BchatGPTchatGPT準確率18/2017/20業務多業務多表查詢表查詢AndesGPT-AndesGPT-Coder-Sql-34BCoder-Sql-34BGPT4-8kGPT4-8k準確率14/2018/20DataFunSummitDataFunSummit#202420240303RAGRAG技術落地技術落地03 RAG03 RAG技術落地技術落地3.1 RAG技術演進3.2 RAG落地實時信息場景3.3 RAG落地code三方依賴場景3.1 RAG技術演進RAG在LLM方向
16、的技術架構圖3.1 RAG技術演進RAG在LLM方向的三種技術路線圖3.1 RAG技術演進通用RAG技術架構圖3.1 RAG技術演進通用RAG底層技術分類圖3.2 RAG落地實時信息場景實時資訊對話流程圖3.2 RAG落地實時信息場景1、檢索改寫舉例:User:劉德華今年多大Bot:根據公開資料,劉德華出生于1961年9月27日,今年62周歲。User:比張學友小吧-改寫結果:劉德華是不是比張學友小要求:改寫設計上是一個高準低召模塊中期結果:3.2 RAG落地實時信息場景2、檢索判別常識判別:時效判別:3.2 RAG落地實時信息場景3、相關性判別3.2 RAG落地實時信息場景4、rerank3
17、.2 RAG落地實時信息場景5、階段性整體效果3.3 RAG落地code三方依賴場景DocPrompting流程圖3.3 RAG落地code三方依賴場景DocPrompting在CoNaLa數據集上的效果表DocPrompting落地在JAVA和Kotlin的代碼規范和新三方工具的使用。DataFunSummitDataFunSummit#202420240404展望展望LLMLLM和符號化推理的結合和符號化推理的結合04 04 展望展望LLMLLM和符號化推理的結合和符號化推理的結合Large Language Models Are Neurosymbolic Reasoners04 04 展望展望LLMLLM和符號化推理的結合和符號化推理的結合構建價值觀和邏輯結構構建價值觀和邏輯結構去除價值和邏輯噪聲去除價值和邏輯噪聲感謝觀看感謝觀看謝謝觀看