AI世界生存手冊(二):從LR到DeepSeek,模型慢慢變大了,也變強了

阿里妹導讀
大家都可以透過寫 prompt 來和大模型對話,那大模型之前的演算法是怎樣的,演算法世界經過了哪些比較關鍵的發展,最後為什麼是大模型這條路線走向了 AGI,作者用兩篇文章共5.7萬字詳細探索一下。
第一篇文章指路👉《AI 世界生存手冊(一):從LR到DeepSeek,模型慢慢變大了,也變強了
預訓練模型:我變大了也變強了
ELMo
咱們之前聊過的 Word2Vec 其實就是一個預訓練模型,它透過大量的文字資料來學習每個詞的向量表示。不過它有個挺明顯的缺點:它只關注詞和它附近詞的關係,完全沒考慮詞的順序。正因為沒考慮順序,每個詞只能學到一個固定的向量,沒法區分一詞多義的情況。也就是說,如果一個詞有多個意思,Word2Vec 只能學到它最常見的那個意思,其他的意思就被忽略了。
為了更好地解決這一問題,2018年提出的ELMo(Embeddings from Language Models)提出了一種基於上下文的方法,透過在大量文字資料上預先訓練一個雙向的LSTM模型(需要時序的場景,就有 LSTM的身影),為每個詞生成上下文相關的embedding。
elmo 的引數量0.09B
圖 67 ELMo
我們用一個例子直觀感受下:
“我剛剛用手機完成了一筆支付,速度真快。”
  “那家餐廳只接受現金支付,得帶錢包去。”
在 ELMo 的上下文敏感模型中,“支付”這個詞在兩個句子中的含義有細微差別。在第一個句子中,“支付”指的是線上支付行為,而在第二個句子中則指的是傳統的現金交易。
word2vec 和 elmo 都是詞向量,那麼一整句話的sentence embedding 呢。
BGE
sentence embedding 模型超級多,因為大模型幻覺問題產生的 RAG 方案中,是核心元件角色,承擔著把文字轉成向量的角色。我們介紹一下中文領域最好的模型 bge,其來源於北京智源人工智慧研究院。
具體的模型結構參考了 transformer 的 encoder decoder 架構。
encoder 生成句子向量,以及一個簡化的一層decoder 用於重建句子。解碼器部分採用了極為簡單的網路結構以及高比例的mask策略,使得解碼任務變得極具挑戰性。這種策略迫使編碼器生成高質量的句子向量,以確保能夠準確地重建原文字。
圖68 bge 模型

訓練方式如下:

圖69 bge 模型訓練步驟
1.編碼階段:首先,輸入的資料會被“遮住”一部分(圖中 M 陰影部分),然後模型會學習那些沒被遮住的部分,生成一個句子的整體表示(sentence embedding,圖中綠色部分)。這一步的重點是讓模型學會從可見的部分提取關鍵特徵。
2.解碼階段:接下來,輸入的資料會被“遮得更多”(圖中 M 陰影部分),然後模型會結合上一步生成的句子嵌入,嘗試把被遮住的部分“猜”出來。這一步的目的是讓模型學會利用上下文資訊,更準確地恢復隱藏的內容。
3.強化編碼階段:最後,模型會利用句子嵌入和上下文資訊,重新構建所有的輸入內容,這一步是為了讓模型更好地理解上下文,從而提高重構的文字的準確性。
透過這種“遮一部分、猜一部分”的方式,壓迫模型最終生成更準確的sentence embedding,不然第二步和第三步無法依賴這個 embedding準確生成內容。
上邊我們主要介紹了 embedding 表徵模型,接下來我們主要介紹基於 transformer 的預訓練模型系列,其模型很多。
transformer 系列模型全景
圖70 transformer 系預訓練模型時間、引數量
圖片來自論文《Unifying Large Language Models and Knowledge Graphs: A Roadmap》,可以發現其主要有三條發展路線,encoder-decoder 模式的 BART( 來源於 facebook) 到大模型時代的 GLM(來源智譜清源),我們本次不去介紹了。
我們主要介紹下encoder-only 的 bert 系列和 decoder-only 系列的 gpt。和大家的直觀感受不同,其實 gpt 出現的比 bert 要更早。其第一個版本是 gpt1。
GPT1

NLP 的問題

此時訓練一個 NLP 模型和我們之前做的推薦類似,針對某個任務,首先搞一些樣本,然後對模型進行有監督訓練。問題出在題面上。
1.樣本怎麼來,大量的高質量的標註不太容易獲得。
2.模型訓練的任務是固定的,很難學到泛化能力,沒法複用到做其他任務。
這樣訓練出來的模型被困在了一個特定的領域,離我們想要的 AGI(人工通用智慧)有點遠。

GPT的解法

2018 年 6 月Openai 釋出第一個 GPT 版本。論文:《Improving Language Understandingby Generative Pre-Training》
其思路如下:
1.用了4.6GB的BookCorpus資料集(該資料集主要是小說,openai 為了驗證技術可行性,特意選了未出版的 7000 本書),無監督訓練一個預訓練模型,即generative pre-training,GPT 名字的由來。
2.對於子任務,用有標籤的小的資料集訓練一個微調模型,discriminative fine-tuning。
圖71 gpt 模型架構+微調方法
微調方式具體來說,可見上圖右圖部分。
對於每個任務,輸入會被構造成一個連續的 token 序列。分類任務,會將輸入文字拼接成一個序列,並在開頭新增一個特殊token-start,在結尾增加 extract然後經過模型+線性層後輸出結果,對於相似度的文字比較有趣,比如看 A 和 B 是否相似,那麼就組成個序列分別為 AB 和 BA,其輸入模型後,最終透過softmax 判斷,是否相似,是個二分類問題。第四個問答其實是一個多分類問題。
這四個任務有一個共性,就是我們只需要對輸入做定製化,輸出做一些定製,但是中間的 transformer 模型不會去動它。
左圖:GPT是一個transformer decoder-only的結構, MHA +add&norm 的 Block 其用了 12 層,引數量 0.11B,對,此時它還很小。另外輸入的token 用了word2vec做了 embedding 表徵。

收穫

GPT1 可以認為是 openai 的一個試水版本,其主要驗證了預訓練+微調的方式能不能透過自迴歸的方式 work,這是一條全新的路子。事實僅僅證明可以,但是效果不是特別理想,落後於encoder-only 的 bert 方案,
BERT
gpt1釋出4 個月後的 2018 年 10 月,Google 出品了 bert,選擇了 encoder  only架構, base 模型的引數量和 gpt 一致(故意設計的一致,一較高下),學習的資料除了 gpt 的BookCorpus 還學習了Wikipedia(只學了英文),資料量用了16GB,是 gpt1 的三倍多。
bert 的學習方式和 GPT1 類似,都是先預訓練後微調。預訓練階段從輸入句子中隨機選擇約 15% 的token並將其遮蓋,然後讓模型補齊這些隱藏內容,最終完形填空做多了,模型學會了所有詞的上下文關係。
bert 設計了幾個尺寸的模型,分別為 base 0.11B ,large 0.34B
圖72 bert 效能
bert 論文中在幾個任務上(QQP 和 MRPC 的結果報告為 F1 分數,STS-B 為Spearman相關係數,其他任務報告為準確率分數)對比了 gpt,結果是全方位領先。

收穫

讓更大的模型(bert-large) 學習更多的資料,可以顯著提升模型的效能。
GPT2
bert 釋出後的 4 個月後,2019 年 2 月,openai 將 gpt 版本升級到 v2.
如果說 gpt1 證明了路可走,bert 證明了增加資料量可以有成效。那此時 gpt2 的問題變成了,怎麼採集更巨量的資料,然後讓模型去無監督學習。
首先 OpenAI 專門為 GPT-2 構建的一個數據集,透過從網際網路上爬取高質量網頁內容(特別是 Reddit 上獲得超過 3 個讚的外鏈網頁)來構建了WebText資料集,加上其他公開的資料集,一共 40GB,相比較於第一個版本資料提升了 10 倍左右。
然後 openai 和 google類似,同時設計了多個尺寸,gpt2  有四個尺寸的模型,分別命名為 small medium large 和 extra large。其中extra large的引數量已經來到了 1.5B。
圖73 gpt引數
layers 我們已經很熟了就是 注意力block 的層數, dmodel 其實就是詞向量的維度,我們在 word2vec 提到過的概念。在模型上,主要的改動是將 norm 後置換成了前置。這個思路其實被後來的開源大模型沿用了,比如 qwen 、llama 等
圖74 llama 架構
zero-shot learning
gpt1 的思路是先預訓練然後微調,在微調階段,模型可以透過學習任務特定的輸入格式(如Start、Delim、Extract 等特殊 token)來適應下游任務,利用這些特殊 token 幫助模型理解輸入的結構和任務型別,模型是在微調階段慢慢學會這些 special tokens,知道它們出現的時候要做什麼任務。問題出在special tokens需要去特殊定義,多了一步資料標註的工作。
openai 的願景更宏大,可不可以跳過這種方式微調,或者直接不微調。其提出了Zero-shot learning概念,即適應下游任務時,不修改模型引數,不需要任何額外的標註資訊。
為了在 Zero-Shot 任務中讓模型理解任務需求,GPT-2 引入了 prompt 的概念,嗯,就是我們現在常說的提示詞。prompt 透過將任務描述直接拼接在輸入文字中,引導模型生成符合任務要求的輸出。
prompt 使用自然語言描述任務,例如:
  • 分類任務:判斷以下文字的情感是正面還是負面:{文字}
  • 翻譯任務:將以下英文翻譯成中文:{英文文字}
效果怎麼樣呢,其實挺好的,依賴zero-shot,gpt2 在7 個任務上成為 sota。
圖75  模型效能
但是文字摘要總結任務中表現不佳。
圖76  gpt2 文字摘要效能

收穫

在論文中提到,“Our speculation is that a language model with sufficient capacity will begin to learn to infer and perform the tasks demonstrated in natural language sequences in order to better predict them, regardless of their method of procurement. If a language model is able to do this it will be, in effect, performing unsupervised multitask learning.”
這其實就是我們現在常說上下文學習能力In-Context Learning的雛形。如果有了更強的 ICL ,就可以用prompt 的形式和模型進行各種對話了。
而 zero-shot 是明顯區別於 bert的關鍵(gpt 預訓練+prompt,bert 預訓練+微調)因為 bert 的設計原因,適應下游具體任務是微調階段獲得的,不是透過預訓練階段,所以 bert 並沒有再預訓練階段變大,甚至很多工作是想辦法將預訓練模型變小,獲得一個又小又好的模型。
而 gpt 在持續增大的過程中發現效能也在提升,更是在後來發現了大模型的專屬Scaling Law,如摩爾定律一般指導大模型的演進。
GPT3
既然增大了資料量,模型學會了 zero-shot,是不是繼續增加,模型還會有潛能被激發。2020年6月 openai 釋出 gpt3。
圖76  gpt3語料
資料集方面,Openai 主要用了一個網站爬蟲資料集(Common Crawl),大約有 45TB,過濾後,只有 570GB,這大概相當於 400b tokens。在訓練時,openai 會對不同質量的資料集有區別的取樣,比如CommonCrawl 和 Books2 資料集在訓練中被使用的次數不到一次,而其他一些資料集則使用了 2 到 3 次。這種做法實際上是用少量的過擬合風險來換取更高質量的訓練資料。
模型方面其提供了更多尺寸,直接從 gpt2 的最大1.5B 增長到 175B,膨脹 100 倍。
圖77  gpt3 模型引數
在 gpt3 中,模型湧現了真正的ICL,透過實驗發現 few-shot 效果很好,所以gp3 的論文是《Language Models are Few-Shot Learners》。
圖78  few-shot
模型表現很優秀,在很多領域都比肩或者超過了有監督微調的 SOTA 模型。
比如翻譯 few-shot 有三個工作超過了 sota:
圖79  gpt3模型效能
常識推理,在 PIQA  物理常識推理測評中超過 sota:
圖80  gpt3 模型效能
因為表現不錯,openai 部署了幾個版本的 gpt3,開放了 api 實現了商業化。

收穫

更大的模型+few shot無限逼近或者超過了經過微調的的 sota 模型,few-shot 的方式可以提升模型的效能。

圖81  gpt3模型效能
第二個比較有收穫的事情是,在實驗過程中,發現最後不同引數量,算力、模型效能之間最終都會擬合到一條線上,這就是後來大家熟知的Scaling Law,openai 在 gpt3 正式釋出之前幾個月專門寫了一篇論文介紹這個現象,《Scaling Laws for Neural Language Model》。
圖82  Scaling Law
ChatGPT
gpt3 之後,距離我們熟知的 chatgpt 還有一段路要走。
主要解決的問題是讓語言模型變得更大並不一定能使其在遵循使用者意圖方面表現更好。例如,大型語言模型可能生成不真實、有毒或根本無助於使用者的輸出。換句話說,這些模型與使用者並不對齊 。需要解決三個問題:
1.helpful——有用性,幫助使用者解決問題
2.honest——誠實性,不能偽造資訊或誤導使用者
3.harmless——無害性,不能對人或環境造成身體、心理或社會傷害
具體怎麼做呢,如果我們把 GPT3 當做一個剛畢業的學生,需要告知他社會的真相,比如可以做 A 不可以做 B。
openai 的具體做法是先 SFT,微調一個微調模型。訓練一個對齊人類喜好的 RM 模型,用來後續代替真正的人類評價模型輸出是否符合人類表達。最後用這個 RM 模型以 PPO 的方式訓練第一步的 SFT 模型。這裡產生了大模型後訓練的正規化,SFT+RLHF
最終效果對比,其中下圖的 GPT 指的 GPT3 模型(175B),最佳化下用 few-shot prompt 可以帶來效能提升,sft 和 PPO 的模型表現會更優秀一些,更甚者  1.5B PPO 模型,效能也明顯比 175B 的 GPT3 好很多。
圖83  模型效能對比
上述的 PPO-ptx 表現更好,也就是我們後來常聽說的 InstrcutGPT。

收穫

從 GPT3 到 chatgpt:其經過了幾個版本的迭代,這裡有一個有趣的現象,在 GPT3 基礎上用 code 訓練了程式碼模型,模型在學習程式碼的過程中,提升了自己的推理能力,然後在程式碼基礎出上做PPO 得到了一個推理能力更強的模型,最後經過了幾輪演進,才有了我們的 chatgpt。 
圖84  chatgpt 的演進過程
2022 年 11 月 30 日, OpenAI 首次向公眾開放 ChatGPT。
GPT o1
有了 chatgpt,大家都可以透過大白話 prompt 和大模型進行對話了。
後來大家發現在寫 prompt 的過程中,如果指定模型的處理步驟,並讓模型按照步驟一步一步處理,往往能得到更好的回答,這種方式稱為 COT。其實我們想一下 cot 的本質是什麼,其實是把我們的推理邏輯作為上下文,讓模型在產生下一個 token 的時候,每次都可以看到這個邏輯,有效利用額外的計算,帶來了效能的提升。
這個思路也被接下來的模型借鑑了,模型多做一步自己會生成這個 cot,這樣我們寫prompt的時候就不用寫cot 了,原理就是這麼樸實無華。
具體來說就是把推理過程加在 label裡讓模型去學習。如果說以前的大模型是學習資料,這種更像學習了這個具體的推理思維,為了區別於之前的大模型一般稱為推理大模型。比如 gpt o1 deepseek r1。
圖85 來源a-visual-guide-to-reasoning-llms
這些模型更適合解決科學、編碼、數學等領域的複雜問題。比如o1 在這幾個任務上表現不錯。

圖86  gpt 推理模型對比

收穫

openai 用強化學習演算法訓練 o1 ,讓模型學會如何利用cot進行高效思考。過程中發現,o1 的效能隨著更多強化學習(訓練時計算資源)和更多思考時間(測試/推理時計算資源)的投入而持續提升,發現了test-time scaling law或者用更通俗一點叫inference-time scaling law 推理的scaling law 。
圖87  test-time  scaling law
我們之前介紹的 openai 發現的大模型預訓練階段透過增加算力、資料、引數的方式提升模型效能的的scaling law,一般稱為pretrain-time scaling law。但是隨著人類的知識用完,再增加另外兩個資料也帶不來模型效能的提升了,預訓練的scaling law見頂。
o1 證明了如果增加推理階段的計算量可以提升模型效能。假設公司有 1w 張 GPU,能提供的算力是固定的,現在問題是,怎麼合理分配訓練階段和推理階段的算力,讓模型效能最大化。
Google 在論文《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters》提到了做的實驗,利用一個小尺寸的模型(更少的預訓練計算量)+更多的推理計算量,和一個大了其 14 倍的預訓練模型(更多的預訓練計算量)進行效能對比,並且讓兩者的總的計算量保持一致。小模型靠著提升推理計算量,表現居然比大模型還好(在更復雜的問題上不是很明顯,但是不影響最終結論)。
其證明了一種趨勢,即在預訓練時花費更少的計算量,同時增大推理階段的計算量。
DeepSeek  
deepseek 經過了三個大的版本迭代,24 年底釋出了v3版本。關於 deepseek 的核心 MLA+MOE上一篇我們提過了,這我們不再贅述了,我用類似 Openai 怎麼透過gpt3搞出 chatgpt 的過程,介紹從 deepseek v3 (最強工具人)怎麼一步一步演進出的 R1。

第一步 r1 zero

在這個階段, 跳過 SFT 直接 RL(GRPO)出來 R1 zero 模型。讓模型生成答案,發現答案質量參差不齊,人工從輸出中選擇了一些質量高的COT 樣本,這個樣本的推理步驟都很長,更詳細更細節。
圖89  r1 zero

第二步 sft+rl

上一步產生的 COT 樣本,微調 deepseek v3 版本,得到一個微調模型。然後再利用強化學習讓sft 模型學會程式碼推理等能力,產生一個強化學習版本 v1模型,我們簡稱 rl v1。
圖90  sft+rl

第三步 樣本準備

從存量非推理微調樣本中,讓 deepseekv3 取樣並新增 cot,最終選了 20w 這種樣本,具體做法是透過樣本中的QA對,讓模型反推補cot。利用我們上一步得到的 rl v1 這個模型產出 60w 具有 cot 的推理型別(Reasoning)的樣本,具體做法是讓 rl v1 產出多個答案,用deepseekv3做選擇。這裡說的推理指的是任務維度的,推理任務一般是程式碼、數學等任務。
這一步一共得到了 80w 樣本,都具有 cot,樣本格式對齊了。
圖91  產生 cot 樣本

第四步  得到R1

利用上一步得到的樣本,用deepseekv3 微調,然後強化學習,最終得到了deepseek r1。
圖92  訓練出r1
當然這個樣本還被複用來蒸餾了其他小尺寸模型,比如 qwen 和 llama。
上述的過程全圖如下:

圖93  deepseek 訓練全景
此前世界開源大模型雙子星是 Llama 和qwen。隨著ds 出圈之後,國內大模型也變成了雙子星deepseek+qwen,簡稱 DQ 🐶

圖94  oc 榜單
我們前邊一直在說的其實是文生文,那文生圖或者圖生文等多模態大模型呢。
多模態大模型

VIT

Transformer原本主要應用於NLP領域。2020年google將NLP領域的Transformer借鑑到CV領域,即ViT(Vision Transformer),在多個視覺任務中取得了成功。
如果圖片切成小塊,然後變成一個序列,這個序列是不是就類似於一段文字了,因為 transformer 處理的是 embedding,其實它並不 case我們輸入的是文字還是圖片。知識需要前置做一些工作,將圖片切分成 patch,例如 16×16 畫素,然後壓縮成 embedding,就可以輸入到 transformer 中了。是不是特別像我們之前說的 transformer 做推薦的思路,兩者都需要將原始輸入(影像 patch 或使用者行為)轉換為embedding,輸入到 Transformer 中。
圖95  vit

理解+生成

圖96  多模態正規化來自論文《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》
我們一般怎麼用多模態模型,是用一句話讓模型生成張圖片,或者給一張圖片輸出圖片的總結。那麼就需要將圖片和文字等多種模態一起餵給大模型,讓其一起理解。
比如可以用vit 將圖片轉成 embedding,用 hubert 表徵語音,然後將這些 embedding 用MLP 投射到同一空間。然後將統一後的 embedding 輸入到一個文字大模型中,這個大模型輸出的是 tokens。如果是文字就直接輸出了。如果是圖片等模態的就再經過一層 MLP 做輸出投射,然後就可以藉助如 stable diffusion 生成圖片,利用 zeroscope 生成影片。
我們發現很多模型都是現成的,核心工作在兩次 MLP 的模態對齊,訓練階段主要用文字+各種模態的資料對,比如文字-圖片,來訓練。模型的架構也被分成了理解和生成兩個大的模組。
Gemini
圖97  gemini
Gemini出自Google ,它的最大特點就是能同時處理 文字、圖片、音訊、影片這些不同模態的資料。簡單來說,它不僅能看懂文字、聽懂語音,還能理解圖片和影片裡的內容,能根據文字生成圖片,或者根據影片生成文字描述。
Gemini 基於 Transformer架構,但它做了很多擴充套件,專門用來處理多模態資料。比如,它有一個多模態編碼器,可以把文字、圖片、音訊這些不同型別的資料轉換成統一的格式,然後用跨模態注意力機制來捕捉它們之間的關係。這樣一來,Gemini 就能更好地理解複雜任務,比如根據一段文字生成一張圖片。
Google 和百度的大模型都影響力不是很大,大模型對話問答的方式,最直接影響的就是傳統搜尋(傳統搜尋可近似看成單輪對話)。傳統搜尋通過出列表的方式(可以夾雜個性化廣告),向用戶推薦廣告,而廣告業務又是他們的核心營收。所以搞一個很牛逼的大模型似乎是在革自己的命,另外上述束縛也會影響其做出更強大模型的決策,比如柯達為了賣膠捲,最後被數碼相機革命了。
Deepseek-Janus
deepseek 在 25 年初除了 r1 還發布了多模態模型–Janus-pro,從 1.3b的Janus演進而來,是個 7b 多模態模型。
圖98  janus 模型結構
Janus的結構如上圖所示,對於圖片和文字分別應用了獨立的編碼方法將原始輸入轉換為特徵,然後由統一的transformer 進行處理。對於文字理解:使用LLM內建的分詞器將文字轉換為離散ID獲取每個ID對應的特徵表示。對於圖片理解使用SigLIP編碼器提取特徵,這些特徵會被從2D網格被展平為1D序列,然後使用MLP將這些影像特徵對映到LLM的輸入空間。對於圖片生成任務,換了 VQ 來做提取特徵,然後用 MLP 將特徵對映到LLM 輸入空間。

訓練

圖99  janus 訓練過程
訓練分了三個階段:
首先訓練介面卡和影像頭部,這一步的目標是讓模型能把圖片和文字聯絡起來,這樣它就能看懂圖片裡的東西,還能試著生成一些簡單的圖片。凍結了視覺編碼器和語言模型的部分,只訓練介面卡和影像頭部這些小的部分。
然後統一預訓練。這一步要讓模型學會同時理解文字和圖片,還能根據文字生成圖片。會把語言模型也放開訓練,用上了各種資料:純文字、圖文結合的資料,還有文字生成圖片的資料。一開始會用 ImageNet-1k 這種簡單的圖片資料讓模型學會基本的圖片生成,然後再用更復雜的文字生成圖片資料讓它變得更好。
最後監督微調。最後一步是讓模型變得更聽話。用一些指令資料來微調模型,除了生成圖片的部分不動,其他部分都會調整。主要關注模型的回答,忽略掉使用者和系統的提示。為了讓模型既能理解圖文,又能生成圖片,不會針對某個任務單獨訓練,而是混合使用文字對話、圖文理解和圖片生成的資料,確保它在各種情況下都能表現得好。
在 pro 版本的影像生成訓練,為了提升效能加入了約7200萬個合成的資料樣本,真實資料和合成資料一比一,訓練時收斂更快,而且生成的影像不僅更穩定,而且更美了。
圖100  oc 多模態榜單
Janus的真實表現應該還不太亮眼,單看 oc 榜排名 100 名開外。同榜單智譜的 GLM、阿里的qwen 、騰訊的混元、螞蟻的百靈都表現很不錯。
圖101  oc 多模態榜單
完結
毫無疑問 2025 年初的 deepseek 如 2022 年底chatgpt一般點燃了大眾對 AI 的熱情,相信這個驚喜還會繼續,下一個接棒會是誰,乾坤未定,一切都未可知。
文件智慧&RAG,讓你的AI大模型開啟“外掛”之旅
本方案介紹瞭如何實現將文件智慧和檢索增強生成(RAG)結合起來構建強大的LLM知識庫,包括清洗文件內容、文件內容向量化、問答內容召回後透過特定的Prompt,提供給LLM足夠的上下文資訊,以此來滿足對於企業級文件型別知識庫的問答處理。   
點選閱讀原文檢視詳情。

相關文章