準備數據微調擁抱臉模型
本文演示了如何準備您的數據微調開源大型語言模型擁抱的臉變形金剛和擁抱麵臨數據集。
加載數據從擁抱的臉
擁抱麵臨數據集是一個擁抱臉庫訪問和共享數據集音頻、計算機視覺、自然語言處理(NLP)任務。和擁抱的臉數據集
你可以加載數據從不同的地方。的數據集
圖書館事業擁抱閱讀數據集的臉中心。有很多數據下載和可讀的擁抱臉中心使用load_dataset
函數。了解更多關於與擁抱麵臨數據集加載數據在擁抱的臉文檔。
從數據集進口load_dataset數據集=load_dataset(“imdb”)
擁抱的臉中心提供的一些數據集的大小下載時生成的數據load_dataset
被稱為。您可以使用load_dataset_builder
知道大小之前下載的數據集load_dataset
。
從數據集進口load_dataset_builder從psutil._common進口bytes2humandefprint_dataset_size_if_provided(*arg遊戲,* *kwargs):dataset_builder=load_dataset_builder(*arg遊戲,* *kwargs)如果dataset_builder。信息。download_size和dataset_builder。信息。dataset_size:打印(f' download_size ={bytes2human(dataset_builder。信息。download_size)}dataset_size ={bytes2human(dataset_builder。信息。dataset_size)}”)其他的:打印(數據集的大小不是由上傳者提供的)print_dataset_size_if_provided(“imdb”)
看到下載數據集從擁抱臉上筆記本的最佳實踐指導如何下載和準備數據集對磚的不同大小的數據。
你的培訓和評估數據格式
使用自己的數據模型微調,你必須先將你的培訓和評估數據格式化為引發DataFrames。然後,加載DataFrames使用擁抱的臉數據集
圖書館。
先格式化你的訓練數據導入表中滿足教練的期望。對文本分類來說,這是一個表有兩列:文本列和列標簽。
要執行微調,您需要提供一個模型。擁抱臉變壓器AutoClasses圖書館很容易負荷模型和配置設置,包括廣泛的汽車模型
為自然語言處理。
例如,擁抱的臉變形金剛
提供了AutoModelForSequenceClassification
作為文本分類模型加載程序,預計整數id分類標簽。然而,如果你有DataFrame字符串標簽,您還必須指定整數字符串標簽和標簽之間的映射在創建模型。你可以收集這些信息如下:
標簽=df。選擇(df。標簽)。groupBy(df。標簽)。數()。收集()id2label={指數:行。標簽為(指數,行)在列舉(標簽)}label2id={行。標簽:指數為(指數,行)在列舉(標簽)}
然後,創建一個標簽的整數id列熊貓UDF:
從pyspark.sql.functions進口pandas_udf進口熊貓作為pd@pandas_udf(“整數”)defreplace_labels_with_ids(標簽:pd。係列)- >pd。係列:返回標簽。應用(λx:label2id(x])df_id_labels=df。選擇(replace_labels_with_ids(df。標簽)。別名(“標簽”),df。文本)
加載一個擁抱的臉從火花DataFrame數據集
擁抱的臉數據集
支持從火花DataFrames加載使用datasets.Dataset.from_spark
。看到文檔以了解更多關於擁抱的臉from_spark ()方法。
例如,如果你有train_df
和test_df
DataFrames,您可以創建數據集對於每個下麵的代碼:
進口數據集train_dataset=數據集。數據集。from_spark(train_df,cache_dir=“/ dbfs /緩存/列車”)test_dataset=數據集。數據集。from_spark(test_df,cache_dir=“/ dbfs /緩存/測試”)
Dataset.from_spark
緩存數據集。這個例子描述了模型訓練的司機,所以數據都必須是可用的。此外,由於緩存實體化並行使用火花,所提供的cache_dir
必須可以訪問所有的工人。為了滿足這些約束,cache_dir
應該是一個磚文件係統(DBFS)根體積或掛載點。
DBFS根卷的所有用戶都可以訪問工作區和隻能用於數據沒有訪問限製。如果您的數據需要訪問控製,使用掛載點而不是DBFS根。
如果您的數據集很大,寫DBFS需要花很長時間。加快這一進程,你可以使用working_dir
參數有擁抱的臉數據集
寫磁盤上的數據集到一個臨時位置,然後把它移動到DBFS。例如,使用SSD臨時位置:
進口數據集數據集=數據集。數據集。from_spark(train_df,cache_dir=“/ dbfs /緩存/列車”,working_dir=“/ local_disk0 / tmp /火車”,)
緩存的數據集
緩存的方法之一數據集
提高了效率。它存儲所有數據下載和處理用戶需要使用中間數據集時,他們是直接從緩存中加載。
默認的緩存目錄的數據集~ / .cache / huggingface /數據集
。終止一個集群時,緩存數據丟失。堅持終止集群的緩存文件,磚建議改變緩存位置DBFS通過設置環境變量HF_DATASETS_CACHE
:
進口操作係統操作係統。環境(“HF_DATASETS_CACHE”]=“dbfs /地方/你/想要/ /保存”
調整模型
當你的數據已經準備好了,你可以用它來微調擁抱臉模型。