摘要
大規模生成語言模型,如GPT-3,是極具競爭力的少樣本學習模型。盡管這些模型能夠共同表示多種語言,但其訓練數據以英語為主,這可能限制了它們的跨語言泛化能力。在本研究中,我們在一個涵蓋多種語言的語料庫上訓練了多語言生成語言模型,并研究了它們在各種任務中的少樣本和零樣本學習能力。我們最大的模型擁有75億個參數,在超過20種代表性語言中,其少樣本學習能力達到了新的技術水平,在多語言常識推理(在零樣本設置中絕對準確率提高了7.4%,在四樣本設置中提高了9.4%)和自然語言推理(在零樣本和四樣本設置中均提高了5.4%)方面超越了同等規模的GPT-3。在FLORES-101機器翻譯基準測試中,我們的模型在182個翻譯方向中的171個方向上,僅用32個訓練樣本就超越了GPT-3的對應模型,并在45個方向上超過了官方的有監督基線。我們對不同的多語言提示方法進行了深入分析,特別展示了通過模板和示例的跨語言轉移,可以實現跨語言的強上下文少樣本學習性能。
1 引言
大型自回歸語言模型,如GPT-3,可以通過少樣本和零樣本學習適應廣泛的任務,其成本遠低于完全微調(Brown等,2020;Bommasani等,2021)。這些模型主要是為英語開發的。盡管GPT-3的訓練數據中包含一小部分非英語文本(7%),使其能夠實現一些有前景的跨語言泛化,但該模型幾乎完全用于英語用例。多語言掩碼和序列到序列語言模型已經被研究,包括mBERT、XLM-R、mT5和mBART(Devlin等,2019;Conneau等,2020;Xue等,2020;Fedus等,2021;Goyal等,2021a;Liu等,2020)。這些模型通常在下游任務中對大量標注數據進行微調。盡管最近在小規模和特定領域任務(Winata等,2021)方面有一些顯著的工作,但語言模型的多語言少樣本學習能力仍不太為人所理解。
在本文中,我們訓練了四個多語言生成語言模型(最多75億個參數),XGLM,并對多語言零樣本和上下文少樣本學習進行了全面研究。我們使用包含30種不同語言的大規模語料庫(5000億個詞)訓練這些模型,對資源較少的語言進行上采樣,以實現更平衡的語言表示。我們在多個多語言自然語言理解(NLU)任務、機器翻譯以及Brown等(2020)展示的英語任務子集上評估了這些模型。
我們發現XGLM展示了強大的跨語言能力,使用英語提示與非英語示例相結合,可以產生有競爭力的零樣本和少樣本學習性能。我們最大的模型(XGLM7.5B)在語言完成和推理任務上實現了強大的零樣本和少樣本學習性能(例如XStoryCloze:65.4% 零樣本,66.5% 四樣本;XNLI:46.3% 零樣本,47.3% 四樣本)。它還在FLORES-101基準測試(Goyal等,2021b)中的大量語言對上建立了新的少樣本機器翻譯技術狀態,顯著優于同等規模的GPT-3模型(67億個參數)。另一方面,多語言預訓練導致英語性能下降。在8個英語NLU任務上,XGLM 7.5B在零樣本學習中平均比GPT-36.7B低10.9%。GPT-36.7B在幾個高資源語言對的機器翻譯上也超過了XGLM 7.5B,包括WMT-14 en?fr、WMT-16 en?de和WMT-19 en?zh。
我們對不同的多語言提示方法進行了深入分析,并分別通過模板和示例檢查了跨語言轉移。我們展示了非英語模板有時會產生意外的低零樣本和少樣本學習準確率,即使它們是由母語者制作的(§4.3)。使用英語模板(§4.4)和添加示例(§4.5)都提供了有效的補救措施。然而,當使用強大的提示語言(例如英語)時,使用另一種語言的示例通常不能進一步提高零樣本學習性能,這表明跨語言預訓練和上下文轉移方法仍有改進空間。
2 模型與預訓練數據
2.1 預訓練數據
語言選擇與預處理。我們擴展了用于挖掘CC100語料庫的流程(Conneau等,2020;Wenzek等,2020),以生成CC100-XL,這是一個顯著更大的多語言數據集,涵蓋68個Common Crawl(CC)快照(從2013年夏季到2020年3月/4月)和134種語言。我們的預訓練數據包括30種語言,涵蓋16個語系。自然數據分布存在偏差,英語的詞數是最多的,是第二大語言的6倍。遵循多語言預訓練的相關工作(Conneau等,2020;Liu等,2020),我們對中低資源語言進行了上采樣,以創建更平衡的語言分布(附錄F.1)。圖1展示了上采樣前后預訓練數據的語言分布(藍色為上采樣前,綠色為上采樣后)。
聯合子詞詞匯表。我們使用通過單字語言模型(Kudo,2018)創建的25萬大小的聯合詞匯表處理所有語言,使用SentencePiece庫(Kudo和Richardson,2018)。我們根據Lample和Conneau(2019)中定義的多項分布(𝛼 = 0.3),從過濾后的數據中隨機抽取1000萬句子訓練單字語言模型。
2.2 模型與訓練
我們訓練了僅解碼器的因果語言模型,采用與GPT-3(Brown等,2020)相似的Transformer架構。這使我們能夠研究在寬度和深度維度上擴展模型規模的效果。因此,我們比較了四個模型,分別具有5.64億、17億、29億和75億個參數。架構細節總結在表1中。我們的模型與GPT-3模型相匹配,除了由于更大的詞匯表而增加的嵌入參數。所有模型均訓練至5000億詞,上下文長度為2048詞。
3 多語言上下文學習
我們評估了多語言語言模型在不同語言的下游任務中的表現,這些任務通過提示指定了少樣本示例,且無需進一步的參數更新(附錄B)。
3.1 多語言與跨語言提示
先前關于英語上下文學習的研究表明,性能在很大程度上取決于提示的構建,而為給定語言模型找到最佳提示具有挑戰性(Gao等,2021;Perez等,2021)。在多語言環境中,這一問題進一步復雜化,因為我們需要為不同語言的示例找到最佳提示。
在本研究中,我們考慮了三種為非英語任務獲取提示的方法。
手工制作提示。第一種方法是請目標語言的母語者手工制作提示。這種方式創建的提示預計具有最自然的表面形式。然而,語言專家的成本較高,因此我們進一步考慮了兩種替代方法。
從英語提示翻譯。我們假設任務的高質量提示可以很容易地從英語中獲取(Sanh等,2021;Mishra等,2021)。非語言提示不包含任何特定語言的詞匯(例如表2中所示的StoryCloze和WMT提示),而語言提示在不同語言中有不同的表現形式(表3)。如果提示是非語言的,我們直接將其應用于其他語言。如果提示是語言的,我們使用自動翻譯API將其翻譯成其他語言。
跨語言提示。我們考慮了第三種方法,即直接將英語(或另一種高資源語言)的提示應用于非英語示例。我們預計這種方法會具有競爭力,因為模型在經過多種語言訓練后具備跨語言能力。
3.2 從跨語言示例中學習
多語言語言模型的跨語言特性進一步使得在無需參數更新的情況下從上下文中學習不同語言成為可能。為此,我們只需將另一種語言的示例附加為語言模型上下文中的演示示例。這種能力使得從高資源語言到低資源目標語言的廉價遷移成為可能。
4 實驗與結果
4.1 任務
我們評估了XGLM在零樣本和上下文少樣本學習能力(Brown等,2020)在一系列下游任務中的表現(表4)。
多語言任務。我們選擇了四個多語言任務,涵蓋常識推理(XCOPA)、指代消解(XWinograd)、自然語言推理(XNLI)和釋義(PAWSX)。我們還創建了一個新的數據集XStoryCloze,通過專業翻譯將英語StoryCloze數據集(2016年春季版本)的驗證集翻譯成10種其他類型多樣的語言(俄語、簡體中文、拉丁美洲西班牙語、阿拉伯語、印地語、印尼語、泰盧固語、斯瓦希里語、巴斯克語、緬甸語)。此外,我們在機器翻譯(§4.8)和多語言社會價值觀任務(附錄E.1)上評估了我們的模型。
英語任務。我們還在英語常識推理和問答任務上評估了我們的模型,這些任務是Brown等(2020)使用的基準任務的子集,并將其性能與最先進的以英語為中心的少樣本學習模型進行了比較。
4.2 實驗設置
評分函數與校準。我們遵循Perez等(2021)的建議,采用跨任務泛化設置(Triantafillou等,2020)來選擇評分函數。我們保留了三個保留任務(XNLI、XCOPA和XStoryCloze),基于其開發集性能進行選擇,并將選定的設置直接應用于其余任務。最終,我們使用忽略不同候選詞共同前綴的每詞平均對數概率作為所有多語言任務的評分函數,無需額外的校準或歸一化。附錄C.2詳細描述了選擇過程。
少樣本學習評估。我們重點評估模型在所有任務上的零樣本和四樣本學習性能。對于跨語言示例(§4.5)、擴展規律(§4.9)和翻譯(§4.8),我們還報告了一樣本和32樣本的性能。我們報告了5次運行的平均結果,每次隨機抽取不同的少樣本示例集。除非另有說明,我們使用與目標示例相同語言的少樣本示例。附錄C.3詳細描述了我們的完整評估協議。
4.3 提示方法比較
我們首先使用XGLM7.5B在XNLI和XCOPA任務上比較了§3.1中提出的不同多語言提示方法。作者中的母語者手工制作了以下任務的提示:XNLI(英語、中文、西班牙語和印地語)和XCOPA(英語、中文),如表3所示。我們將這些人工編寫的提示與英語提示、機器翻譯(MT)提示和人工翻譯(HT)提示的性能進行了比較。
表5和表6展示了不同提示方法的性能。在兩種任務中,英語模板在跨語言平均性能上表現最佳,除了XCOPA的四樣本設置,其中英語模板略遜于機器翻譯模板。在XNLI任務中,英語模板顯著提升了中文(zh)和印地語(hi)的性能,優于其母語模板和翻譯模板。在XCOPA任務中,泰語(th)和斯瓦希里語(sw)也觀察到類似的趨勢。對于這兩種任務,存在某些語言中母語模板顯著優于英語模板的情況(XNLI中的西班牙語(es)和XCOPA中的中文),這表明未來在特定語言提示工程方面仍有很大的改進空間。
4.4 通過模板進行跨語言遷移
我們進一步探討了通用提示能力是否僅限于英語,以及哪些語言對適合跨語言提示。為此,我們將每種人工編寫的非英語模板應用于其他語言。如表5和表6所示,使用西班牙語提示在所有語言中均表現出競爭力的零樣本和四樣本性能,四樣本平均性能與英語模板相當。印地語模板在XNLI任務中對大多數語言(尤其是英語)的表現也顯著高于隨機水平。然而,中文模板在XNLI任務中對所有語言的表現接近隨機水平,在XCOPA任務中對泰語(零樣本)和斯瓦希里語(零樣本)的表現也接近隨機水平。我們假設預訓練數據中的共同子詞和代碼切換文本的數量在實現跨語言提示中起到了重要作用。一般來說,具有大量預訓練數據且與其他語言詞匯重疊的高資源語言更適合作為通用提示語言。我們將在未來工作中對這一假設進行更系統的驗證。
4.5 通過示例進行跨語言遷移
我們在XNLI任務上研究了XGLM7.5B從跨語言示例中學習的能力(§3.2)。我們為每個訓練-評估語言對檢查了兩種設置:同語言提示(提示模板和示例使用相同語言)和源語言提示(演示和測試示例的提示模板均使用源語言)。我們使用人工翻譯的提示進行同語言提示。
表7展示了XNLI任務中部分語言對的結果,其中我們評估了從高資源語言到低資源語言以及類型相似語言之間通過上下文演示示例進行遷移的效果。我們報告了32樣本學習結果與零樣本學習結果之間的差異。本實驗中的非英語模板通過人工翻譯獲得。雖然它們通常表現不如同語言少樣本設置(圖A2),但大多數跨語言少樣本設置顯著優于目標語言的零樣本設置。保加利亞語是一個例外,盡管與俄語屬于同一語系,但它并未從俄語中受益。另一個在跨語言設置中表現不佳的語言是斯瓦希里語(低資源),我們檢查了從英語(高資源)和阿拉伯語(中資源)的遷移。相比之下,泰語(中資源)和烏爾都語(低資源)顯著受益于跨語言演示。
我們還觀察到,如果為目標語言使用更好的提示(例如英語提示),跨語言示例遷移的益處通常會被抵消。
4.6 多語言任務性能
我們使用英語作為通用提示語言,評估了XGLM7.5B在XNLI、XCOPA和XStoryCloze任務上的零樣本和少樣本上下文學習能力,并將其與同等規模的以英語為中心的語言模型進行了比較。
與GPT-3的比較。我們在高資源、中資源、低資源和極低資源語言上將XGLM7.5B與GPT-36.7B進行了比較。結果總結在表9和表10中。在所有三個任務中,XGLM7.5B在跨語言平均性能上大幅優于GPT-36.7B,尤其是在中資源、低資源和極低資源語言上。在XNLI任務中,GPT-36.7B在英語和類似語言上表現良好,在英語(en)、德語(de,四樣本)、西班牙語(es,四樣本)和法語(fr,零樣本)上超過了XGLM7.5B。一個可能的解釋是,這些語言在GPT-3的訓練數據中占比較大(法語:1.8%,德語:1.5%,西班牙語:0.8%,如圖1所示),并且可以從英語的詞匯同源詞中受益更多。
與翻譯測試基線的比較。我們還創建了一個翻譯測試基線,使用Google Cloud Translation API將多語言任務中的非英語示例翻譯成英語,并使用GPT-36.7B的內部復現版本(GPT-36.7B repl.)進行推理。我們發現翻譯測試是多語言零樣本和少樣本學習的一個強大基線,如表9和表10所示。在所有三個任務中,它顯著縮小了英語與其他語言之間的性能差距,尤其是在XNLI任務上。
4.7 英語任務性能
我們還在英語任務上對XGLM7.5B的性能進行了基準測試。圖2展示了XGLM7.5B、GPT-36.7B和GPT-36.7B復現版本(GPT-36.7B repl.)在Brown等(2020)使用的部分英語任務上的比較。我們的GPT-36.7B復現版本(GPT-36.7B repl.)在所有任務上表現優于或接近GPT-36.7B。雖然XGLM7.5B在所有任務上表現具有競爭力,但與GPT-36.7B和GPT-36.7B復現版本相比,仍存在顯著的性能差距。在大多數任務上,XGLM7.5B和GPT-36.7B復現版本隨著𝑘值變化表現出相似的趨勢。例如,兩個模型在HellaSwag和PIQA任務上的1-shot性能均出現下降,而在COPA任務上的128-shot性能也出現下降。
XGLM7.5B在英語任務上表現不如以英語為中心的模型,原因有多方面。首先,XGLM7.5B的5000億詞訓練數據中只有32.6%是英語,而以英語為中心的兩個模型均訓練了接近3000億英語詞。其次,XGLM7.5B的模型容量被30種語言共享,“多語言詛咒”可能會降低所有語言的性能(Conneau等,2020)。進一步擴大模型容量和訓練數據可能有助于縮小這一差距。
4.8 機器翻譯性能
我們在表11中報告了在熱門WMT語言對上的機器翻譯結果,并在表12中報告了FLORES-101(Goyal等,2021b)的一個子集的結果。我們對GPT-3和我們自己的模型均使用貪心解碼,并在每種情況下使用相同的32個示例進行少樣本學習。
GPT-3在其訓練數據中表現最好的幾種語言上取得了強勁的結果,在WMT法語-英語、德語-英語和中文-英語以及FLORES-101集中的少數語言對上略微超過我們的模型。當英語作為目標語言時,GPT-3表現尤為突出,這可能是由于其強大的英語語言建模能力。然而,在更廣泛的低資源語言集上,GPT-3表現不佳。例如,在FLORES-101中翻譯成韓語、阿拉伯語、斯瓦希里語、印地語、緬甸語和泰米爾語時,GPT-3完全失敗,最佳情況下的spBLEU得分僅為1.2。
相比之下,我們的模型在所有語言對上均取得了穩定的結果。除了在FLORES-101集中的182個語言對中的171個上超過GPT-3外,我們的模型還與官方有監督基線競爭,甚至在45個語言對上超過了它。這表明,大規模多語言語言模型在構建低資源語言的機器翻譯系統方面具有巨大潛力,即使幾乎沒有或完全沒有平行數據可用。
4.9 模型規模擴展
最后,我們研究了模型參數規模擴展對其零樣本和少樣本學習能力的影響。圖3展示了四個XGLM模型(564M、1.7B、2.9B、7.5B)在五個多語言任務上的性能(𝑘 = 0、4、32、128)。𝑦軸表示每個任務在跨語言上的平均準確率。在常識推理任務(XStoryCloze、XCOPA、XWinograd)上,所有模型的性能隨著𝑘從0增加到32而提高。隨著模型規模的增加,從示例中獲得的性能增益也更大,這表明更大的模型能夠更好地利用上下文示例。在XNLI任務上,所有模型的性能隨著𝑘從0增加到4而提高,但當𝑘達到32及以上時性能下降。在相同數量的示例下,更大的模型并不總是受益更多。
PAWS-X是一個上下文學習表現較差的任務——所有模型的性能在𝑘變化時在隨機水平(50%)附近波動。一個可能的原因是PAWS-X的對抗性設計,其釋義和非釋義對在詞匯上有高度重疊。根據當前趨勢,我們預計擴展模型規模是構建更強大多語言語言模型的有效方法。
5 相關工作
語言模型提示。Brown等(2020)首次使用GPT-3模型展示了上下文少樣本學習。這種方法消除了對任務特定模型參數更新的需求:通常用于微調的少樣本示例在推理時提供給同一模型以完成每個任務。在幾種高資源拉丁語言對上,GPT-3僅需少量示例即可達到接近或優于最先進有監督模型的機器翻譯性能。這種學習范式的變化引發了關于多語言性的新問題,而這一問題尚未得到廣泛研究。Winata等(2021)評估了GPT-2、GPTNEO和T5在三種額外語言(德語、西班牙語、法語)上的上下文少樣本學習能力,使用了多種自然語言理解任務,并考慮了單語言提示和跨語言提示,展示了英語GPT和T5模型的多語言上下文學習能力。Zhao和Schutze(2021)評估了XLM-R上的不同微調和提示調優方法(Liu等,2021),并展示了提示在少樣本跨語言遷移和多語言掩碼語言模型的語言內訓練中的有效性。
多語言預訓練。早期的多語言預訓練工作在多語言語料庫上訓練詞嵌入(Mikolov等,2013)。隨后開發了上下文嵌入模型的多語言版本,如BERT(Devlin等,2019)、RoBERTa(Liu等,2019)、BART(Lewis等,2019)和T5(Raffel等,2020)的多語言版本:mBERT(Devlin等,2019)、XLM-R(Conneau等,2020)、mBART(Liu等,2020)和mT5(Xue等,2020)。這些模型在單一的多語言文本語料庫(如mC4(Xue等,2020)或CC25(Liu等,2020))上進行了訓練。為了促進跨語言遷移,已開發了多種方法,包括支持高效跨語言共享詞匯學習的子詞分詞器(Kudo和Richardson,2018),以及用于跨語言高效知識遷移的聯合訓練(Pires等,2019;Jiang等,2020;Kassner等,2021)等。一個值得注意的并行工作是BLOOM,它將多語言預訓練擴展到46種語言和1750億參數。
6 結論
我們介紹了四種不同規模的多語言生成語言模型(XGLM),并研究了它們的上下文少樣本和零樣本學習能力。我們展示了XGLM的少樣本學習能力隨著模型規模的擴大而穩步提升。我們最大的模型(75億參數)在超過20種語言(包括中低資源語言)的常識推理、自然語言推理(NLI)和機器翻譯任務上,為少樣本學習設定了新的技術標準。深入分析表明,這些模型具有高度的跨語言能力,從而在非英語語言中表現出強大的少樣本學習性能。
局限性
盡管多語言語言模型是構建包容性通用基礎模型的重要一步,但我們當前的模型存在以下局限性:
訓練數據。我們的模型是在從CommonCrawl提取的靜態多語言語料庫上訓練的,其中英語文本占總詞數的32.6%,相當于1630億詞。語料庫中的英語數據部分僅占GPT-3訓練數據的約54%。我們應用了多種數據過濾策略作為數據質量的代理(詳見附錄F中的數據卡片),例如通過URL刪除重復文檔和段落、過濾掉數字和標點符號比例高的段落、刪除包含不當內容的段落、通過最大URL數量和最小長度進行過濾等。這種過濾可能會導致預訓練中使用的剩余數據存在偏差,需要進一步分析以理解。此外,原始數據來自靜態的CommonCrawl快照,可能不包含快照時間跨度(截至2020年3月)之外的實體和事件,例如COVID-19等。因此,我們還注意到CommonCrawl與GPT-3使用的語料庫(包括CommonCrawl、BookCorpus和Wikipedia)之間的潛在差異。
此外,GPT-3在118種語言上進行了訓練,盡管93%的數據是英語。相比之下,我們的模型在經過嚴格語言識別和過濾后,僅在30種語言上進行了訓練。
英語任務性能。如第4.7節和圖2所示,我們的模型在從常識推理到問答的八項任務上表現不如以英語為中心的模型。造成這種差距的因素可能包括:
- 訓練數據質量的差異(XGLM僅在過濾后的CommonCrawl數據上訓練,而以英語為中心的模型在包括CommonCrawl以及BookCorpus和Wikipedia等高質量語料庫的數據上訓練)和數量(如前所述,多語言模型僅使用了以英語為中心模型的54%的英語數據);
- 多語言詛咒。以往的多語言訓練研究表明,增加共享參數模型中的語言數量會損害所有訓練語言的性能,例如英語(Conneau等,2020)。
通過控制這些因素進行額外實驗,可能會更清楚地解釋觀察到的差距。
模型架構和訓練目標。在本研究中,我們僅嘗試了具有僅解碼器架構的因果語言模型,這些模型之前展示了有前景的少樣本學習能力(Brown等,2020)。然而,這種架構和預訓練目標并未利用雙向上下文,例如掩碼語言模型(MLM)或具有去噪自編碼器預訓練目標的序列到序列架構。
通過上下文學習進行模型評估。我們主要在上下文學習范式中將我們的語言模型與基線進行比較,除非明確指定,否則所有語言模型使用相同的提示。盡管在提示設計上投入了最少的精力,但提示可能在某些模型上效果更好,這為評估引入了偏差。然而,我們預計這一因素的影響較小,鑒于評估任務的數量,模型的相對優勢可以可靠地衡量。
更多語言的社會價值任務評估。我們評估并分析了模型在仇恨言論檢測和職業性別偏見方面的表現。這些研究受到可用評估數據集的限制。我們的研究僅限于六種語言(英語、法語、西班牙語、意大利語、葡萄牙語和波蘭語),其中大多數(5種)屬于羅曼語族。在得出明確結論之前,有必要在更廣泛和多樣化的語言集上研究多語言模型對社會價值任務的影響。此外,我們認為對其他任務(如刻板印象、倫理)的研究將提供更全面的模型行為視角。
倫理考量
設計多語言預訓練語言模型可以成為NLP工具箱中的強大工具,原因如下:
能源和維護效率。從工程角度來看,XGLM屬于一類模型,這些模型代表了服務于多種語言的單一統一模型,具有廣泛的應用。這種單一模型節省了碳足跡和能源消耗(與為不同語言單獨訓練模型相比),從而提高了能源效率。盡管單一模型存在單點故障的風險,但其易于維護、訪問、分發和跟蹤的優勢顯著。
多樣性和包容性。像XGLM這樣的模型代表了從以英語為中心的NLP世界觀向平等服務于所有語言的范式轉變。關注此類模型的設計對于確保公平性和包容性至關重要,例如通過平衡語言代表性來體現。XGLM的進一步優勢在于其在零樣本和少樣本設置中能夠與以英語為中心的模型相媲美。擁有在這種設置中表現良好的強大多語言模型,特別是對于中低資源語言,有助于減輕為這些語言創建監督數據的負擔,尤其是經濟困難的語言(中低數字存在通常與經濟差距密切相關)。此外,擁有服務于稀缺語言的模型可以促進這些語言的科學研究,從而推動更廣泛的NLP多樣性和科學多樣性。
社會價值。我們進一步研究了我們的模型對仇恨言論檢測和偏見等社會價值問題的影響(附錄E)。盡管總體結果尚無定論(接近負面),但我們注意到,在數據相對稀缺的設置(波蘭語)中,多語言模型優于以英語為中心的模型,這表明XGLM在資源較少的語言上表現良好。這對于社會價值任務尤為重要,因為獲取高質量標注數據的固有成本使得獲取訓練數據非常困難。
透明度和問責制。本著大規模語言建模的透明度和問責精神,我們在模型和論文發布時提供了詳細的模型卡片和數據卡片。