評估大型語言模型(LLM)至關重要。您需要了解它們的表現,並確保它們符合您的標準。擁抱面孔評估圖書館為這項任務提供了一套有用的工具。本指南向您展示瞭如何使用評估庫以實用的代碼示例評估LLM。
目錄
- 了解擁抱面孔評估圖書館
- 入門
- 安裝
- 加載評估模塊
- 基本評估示例
- 直接計算精度
- 增量評估(使用add_batch)
- 結合多個指標
- 使用測量
- 評估特定的NLP任務
- 機器翻譯(BLEU)
- 命名實體識別(NER - 使用Seqeval)
- 文本摘要(胭脂)
- 問答(小隊)
- 評估員類的高級評估
- 使用評估套件
- 可視化評估結果
- 保存評估結果
- 選擇正確的度量標準
- 結論
了解擁抱面孔評估圖書館
擁抱面孔評估圖書館為不同的評估需求提供了工具。這些工具分為三個主要類別:
- 指標:這些通過將其預測與地面真相標籤進行比較來衡量模型的性能。示例包括準確性,F1得分,BLEU和Rouge。
- 比較:這些有助於比較兩個模型,通常是通過檢查其預測如何相互對齊或與參考標籤進行比較。
- 測量:這些工具研究了數據集本身的屬性,例如計算文本複雜性或標籤分佈。
您可以使用單個函數訪問所有這些評估模塊:essuatue.load()。
入門
安裝
首先,您需要安裝庫。打開您的終端或命令提示符並運行:
PIP安裝評估 PIP安裝rouge_score#文本生成指標所需 PIP安裝評估[可視化]#用於繪製功能
這些命令安裝了核心評估庫,rouge_score軟件包(經常用於摘要中的胭脂公制所需)以及可視化的可視化依賴項,例如雷達圖。
加載評估模塊
要使用特定的評估工具,請按名稱加載。例如,加載精度度量:
進口評估 cercucy_metric = evaluate.load(“準確性”) 打印(“精確度量已加載。”)
輸出:
此代碼將導入評估庫並加載準確度量對象。您將使用此對象來計算精度得分。
基本評估示例
讓我們瀏覽一些常見的評估場景。
直接計算精度
您可以通過一次提供所有參考(地面真相)和預測來計算度量。
進口評估 #加載準確度指標 cercucy_metric = evaluate.load(“準確性”) #樣本地面真相和預測 參考= [0,1,0,1] 預測= [1,0,0,1] #計算準確性 結果= ecucty_metric.com pupute(參考=參考,預測=預測) 打印(f“直接計算結果:{結果}”) #與extract_match衡量標準的示例 extct_match_metric = evaluate.load('Ectect_match') match_result = extct_match_metric.compute(references = ['Hello world'],預測= ['Hello world']) no_match_result = extcrip_match_metric.compute(references = ['hello'],prectivions = ['hell']) 打印(f“精確匹配結果(匹配):{match_result}”) 打印(f“精確匹配結果(否匹配):{no_match_result}”)
輸出:
解釋:
- 我們定義兩個列表:參考文獻保存正確的標籤,預測保留了模型的輸出。
- 計算方法獲取這些列表併計算準確性,並將結果返回為詞典。
- 我們還顯示了Exact_Match Metric,該指標檢查預測是否與參考值完全匹配。
增量評估(使用add_batch)
對於大型數據集,批處理中的處理預測可以更有效。您可以逐步添加批次,並在最後計算最終分數。
進口評估 #加載準確度指標 cercucy_metric = evaluate.load(“準確性”) #樣品批次和預測 references_batch1 = [0,1] preventions_batch1 = [1,0] references_batch2 = [0,1] preventions_batch2 = [0,1] #逐步添加批次 efceracy_metric.add_batch(參考= references_batch1,predivitions = prepplionions_batch1) efceracy_metric.add_batch(參考= references_batch2,預測= prepartive_batch22) #計算最終準確性 final_result = efceracy_metric.com pute() 打印(f“增量計算結果:{final_result}”)
輸出:
解釋:
- 我們分兩批模擬處理數據。
- add_batch使用每批更新度量標準的內部狀態。
- 在沒有參數的情況下調用Compute()在所有添加批次上計算指標。
結合多個指標
您通常想同時計算幾個指標(例如,準確性,F1,精度,召回分類)。 evaluate.combine功能簡化了這一點。
進口評估 #結合多個分類指標 clf_metrics = evaluate.combine([“準確性”,“ f1”,“ precision”,“召回”]) #樣本數據 預測= [0,1,0] 參考= [0,1,1]#注意:最後一個預測不正確 #一次計算所有指標 結果= clf_metrics.compute(預測=預測,參考=參考) 打印(f“組合度量結果:{結果}”)
輸出:
解釋:
- estuatue.comBine列出了公制名稱列表,並返回一個合併的評估對象。
- 在此對像上調用計算使用相同的輸入數據計算所有指定的指標。
使用測量
測量可用於分析數據集。這是使用Word_length測量的方法:
進口評估 #加載word_length測量 #注意:可能需要在第一次運行時下載NLTK數據 嘗試: word_length = evaluate.load(“ word_length”,module_type =“測量”) data = [“ Hello World”,“這是另一句話”] 結果= word_length.com pupute(data = data) 打印(f“單詞長度測量結果:{結果}”) 除例外為E: 打印(F“無法運行Word_length測量,可能缺少NLTK數據:{E}”) 打印(“嘗試下載nltk下載...”) 導入NLTK nltk.download('punkt')#uncomment並在需要時運行
輸出:
解釋:
- 我們加載word_length並指定module_type =“測量”。
- 計算方法將數據集(此處的字符串列表)作為輸入。
- 它返回有關提供的數據中單詞長度的統計信息。 (注意:需要NLTK及其“ Punkt”令牌數據)。
評估特定的NLP任務
不同的NLP任務需要特定的指標。擁抱面孔評估包括許多標準標準。
機器翻譯(BLEU)
BLEU(雙語評估研究)對於翻譯質量很常見。它測量了模型翻譯(假設)和參考翻譯之間的N-Gram重疊。
進口評估 def evaluate_machine_translation(假設,參考): “”“計算機器翻譯的BLEU得分。”“” bleu_metric = evaluate.load(“ bleu”) 結果= bleu_metric.com pupute(預測=假設,參考=參考) #提取主BLEU分數 bleu_score =結果[“ bleu”] 返回bleu_score #示例假設(模型翻譯) 假設= [“貓坐在墊子上。”,“狗在花園裡玩過。”] #示例參考(正確的翻譯,每個假設可以有多個) 參考文獻= [[“貓坐在墊子上。”],[“狗在花園裡玩過。”]] bleu_score = evaluate_machine_translation(假設,參考) 打印(f“ bleu得分:{bleu_score:.4f}”)#格式可讀性
輸出:
解釋:
- 該函數加載BLEU度量。
- 它計算比較預測翻譯(假設)與一個或多個正確參考的分數。
- 較高的BLEU分數(接近1.0)通常表明翻譯質量更好,這表明參考翻譯的重疊更多。大約0.51的分數表明中等重疊。
命名實體識別(NER - 使用Seqeval)
對於諸如NER之類的序列標記任務,每個實體類型等指標,召回和F1得分等是有用的。 Seqeval度量處理此格式(例如,B-Per,I-Per,O標籤)。
要運行以下代碼,將需要Seqeval庫。可以通過運行以下命令來安裝它:
PIP安裝seqeval
代碼:
進口評估 #加載seqeval指標 嘗試: seqeval_metric = evaluate.load(“ seqeval”) #示例標籤(使用IOB格式) true_labels = [['o','b-per','i-per','o'],['b-loc','i-loc','o']]] predicted_labels = [[['o','b-per','i-per','o'],['b-loc','i-loc',o'']]#示例:在這裡完美預測 結果= seqeval_metric.com pupute(預測= predictions_labels,references = true_labels) 打印(“ seqeval結果(每個實體類型):”) #打印結果很好 對於鍵,resuts.items()中的值: 如果是isInstance(value,dict): print(f“ {key}:precision = {value ['precision']:。2f},remepl = {value [recember']:。2f},f1 = {value [value ['f1']:。2f},number = {value [value ['number']}”) 別的: print(f“ {key}:{value:.4f}”) 除了ModulenotFoundError: 打印(“未安裝seqeval公制。運行:pip install seqeval”)
輸出:
解釋:
- 我們加載seqeval度量。
- 它獲取列表的列表,其中每個內部列表代表句子的標籤。
- 計算方法返回所標識的每個實體類型(例如人,位置的LOC)和整體分數的詳細精度,召回和F1分數。
文本摘要(胭脂)
Rouge(以召回式評估為導向的研究)將生成的摘要與參考摘要進行了比較,重點是重疊的n-gram和最長的共同子序列。
進口評估 DEF Simple_summarizer(文本): “”“一個非常基本的摘要 - 只是拿第一句話。”“” 嘗試: 句子= text.split(“。”) 返回句子[0] .Strip()”。如果句子[0] .Strip()else“” 除了: 返回“”#處理空或畸形的文本 #加載胭脂度量 rouge_metric = evaluate.load(“ rouge”) #示例文本和參考摘要 文字=“今天是美好的一天。陽光明媚,鳥兒在唱歌。我要在公園裡散步。” 參考=“今天的天氣很愉快。” #使用簡單功能生成摘要 預測= simple_summarizer(文本) 打印(f“生成摘要:{預測}”) 打印(f“參考摘要:{參考}”) #計算胭脂分數 rouge_results = rouge_metric.compute(預測= [預測],參考= [參考]) 打印(f“ rouge分數:{rouge_results}”)
輸出:
生成的摘要:今天是美好的一天。<br><br>參考摘要:今天天氣愉快。<br><br>胭脂分數:{'rouge1':np.float64(0.40000000000001),'rouge2':<br> NP.Float64(0.0),'Roogel':np.float64(0.20000000000000004),'Rogelsum':<br> NP.Float64(0.20000000000000004)}
解釋:
- 我們加載胭脂度量。
- 我們為演示定義了簡單的總結。
- 計算計算不同的胭脂分數:
- 得分接近1.0表示與參考摘要相似。這裡的低分反映了我們的simple_summarizer的基本性質。
問答(小隊)
該小隊指標用於回答基準測試的提取問題。它計算精確匹配(EM)和F1得分。
進口評估 #加載小隊指標 squad_metric = evaluate.load(“ squad”) #小隊的示例預測和參考格式 預測= [{'prediction_text':'1976','id':'56e10a3be3433e1400422b22'}]] 參考= [{'答案':{'wonse_start':[97],'text':['1976']},'id':'56e10a3be3433e1400422b22'}] 結果= squad_metric.compute(預測=預測,參考=參考) 打印(f“小隊結果:{結果}”)
輸出:
解釋:
- 加載小隊指標。
- 採用特定字典格式的預測和參考,包括預測的文本和基礎真理的答案。
- extract_match:完全匹配基礎真相答案之一的預測百分比。
- F1:考慮到令牌級別的部分匹配,F1在所有問題上的平均得分。
評估員類的高級評估
評估者類通過集成模型加載,推理和度量計算來簡化該過程。這對於文本分類等標準任務特別有用。
#注意:需要變壓器和數據集庫 #PIP安裝變形金剛數據集火炬#或TensorFlow/jax 進口評估 從評估進口評估員 從變形金剛進口管道 從數據集import load_dataset #加載預先訓練的文本分類管道 #使用較小的型號進行潛在的更快執行 嘗試: 管道=管道(“文本分類”,模型=“ Distilbert-base-base-fineTuned-SST-2-英語”,設備= -1)#使用CPU 除例外為E: 打印(f“無法加載管道:{e}”) 管道=無 如果管道: #加載IMDB數據集的一小部分 嘗試: data = load_dataset(“ imdb”,split =“ test”)。洗牌(種子= 42).select(range(100))#速度較小子集 除例外為E: 打印(f“不能加載數據集:{e}”) 數據=無 如果數據: #加載準確度指標 cercucy_metric = evaluate.load(“準確性”) #為任務創建評估器 task_evaluator =評估器(“文本分類”) #正確的IMDB數據集的Label_mapping label_mapping = { '負':0,#映射為0 “正面”:1#映射為1 } #計算結果 eval_results = task_evaluator.com pute( model_or_pipeline =管道, 數據=數據, 公制=準確_metric, input_column =“ text”,#指定文本列 label_column =“標籤”,#指定標籤列 label_mapping = label_mapping#通過更正的標籤映射 ) 打印(“ \ nevaluator結果:”) 打印(eval_results) #用引導間隔計算置信區間 bootstrap_results = task_evaluator.com upute( model_or_pipeline =管道, 數據=數據, 公制=準確_metric, input_column =“ text”, label_column =“標籤”, label_mapping = label_mapping,#通過更正的標籤映射 策略=“ bootstrap”, n_resmples = 10#使用更少的重新採樣用於更快的演示 ) print(“ \ nevaluator but boottrapping:”) 打印(bootstrap_results)
輸出:
設置用於使用CPU的設備<br><br>評估者結果:<br><br> {'準確性':0.9,'total_time_in_seconds':24.27761851799997,<br> 'samples_per_second':4.119020155368932,'latency_in_seconds':<br> 0.2427761851799996}<br><br>引導程序的評估器結果:<br><br> {'準確性':{'profels_interval':( np.float64(0.870303044820750653),<br> NP.Float64(0.9335706530476571),“ standard_error”:<br> NP.Float64(0.02412928142780514),'score':0.9},'total_time_in_in_seconds':<br> 23.871316319000016,'samples_per_second':4.189128017226537,<br> 'latency_in_seconds':0.23871316319000013}
解釋:
- 我們為文本分類和IMDB數據集的樣本加載了變形金剛管道。
- 我們創建一個專門用於“文本分類”的評估者。
- 計算方法將饋送數據(文本列)處理到管道,進行預測,使用指定的度量標記將其與真實標籤(標籤列)進行比較,並應用Label_mapping。
- 它返回度量評分以及總時間和每秒樣本等性能統計數據。
- 使用策略=“ Bootstrap”執行重新採樣以估算度量標準的置信區間和標準誤差,從而使得分數的穩定性感。
使用評估套件
評估套件捆綁多次評估,通常針對特定的基準等特定的基準。這允許根據一組標準任務運行模型。
#注意:運行完整的套件可以在計算上進行密集且耗時。 #本示例展示了這個概念,但可能需要很長時間或需要大量資源。 #它還安裝了多個數據集,可能需要特定的模型配置。 進口評估 嘗試: 打印(“ \ nloading膠水評估套件(這可能下載數據集)...”) #直接加載膠水任務 #使用“ MRPC”作為示例任務,但是您可以從上面列出的有效執行中進行選擇 task = evaluate.load(“膠”,“ MRPC”)#指定“ MRPC”,“ SST2”等任務 打印(“已加載任務。”) #您現在可以在模型上運行任務(例如:“ Distilbert-Base-uncund”) #警告:這可能需要時間進行推理或微調。 #結果= task.compute(model_or_pipeline =“ distilbert-base-uncasun uncand uncesed”) #print(“ \ nevaluation結果(MRPC任務):”) #打印(結果) 打印(“在此示例中跳過對簡潔的模型推斷。”) 打印(“請參閱擁抱面部文檔以進行完整的評估套件。”) 除例外為E: 打印(f“無法加載或運行評估套件:{e}”)
輸出:
加載膠水評估套件(這可能下載數據集)...<br><br>加載任務。<br><br>在此示例中跳過對簡潔的模型推斷。<br><br>請參閱擁抱面部文檔以獲取完整的評估套件。
解釋:
- evaluationsuite.load負載一組預定義的評估任務集(在此,僅從膠水基準中的MRPC任務進行演示)。
- suite.run(“ model_name”)命令通常會在套件中的每個數據集上執行模型併計算相關的指標。
- 輸出通常是詞典列表,每個列表包含套件中一個任務的結果。 (注意:運行此操作通常需要特定的環境設置和大量的計算時間)。
可視化評估結果
可視化有助於比較不同指標的多個模型。雷達圖對此很有效。
進口評估 導入matplotlib.pyplot作為plt#確保安裝matplotlib 從評估。導入radar_plot #跨多個指標的多個模型的示例數據 #較低的延遲更好,因此我們可以將其倒置或單獨考慮。 數據= [ {“準確性”:0.99,“ Precision”:0.80,“ F1”:0.95,“ Latency_inv”:1/33.6}, {“準確性”:0.98,“ Precision”:0.87,“ F1”:0.91,“ Latency_inv”:1/11.2},, {“準確性”:0.98,“精度”:0.78,“ F1”:0.88,“ Latency_inv”:1/87.6}, {“準確性”:0.88,“精度”:0.78,“ F1”:0.81,“ Latency_inv”:1/101.6} 這是給出的 model_names = [“模型A”,“模型B”,“模型C”,“模型D”] #生成雷達圖 #在雷達圖上,較高的值通常更好 嘗試: #生成雷達圖(確保您通過正確的格式並且數據有效) plot = radar_plot(data = data,model_names = model_names) #顯示情節 plt.show()#明確顯示該圖,在某些環境中可能是必要的 #要將繪圖保存到文件(要使用的刪節) #plot.savefig(“ model_comparison_radar.png”) plt.close()#顯示/保存後關閉繪圖窗口 除了Infrorror: 打印(“可視化需要matplotlib。運行:PIP安裝matplotlib”) 除例外為E: print(f“無法生成圖:{e}”)
輸出:
解釋:
- 我們為跨精度,精度,F1和倒潛伏期的四個模型準備了樣本結果(因此更好)。
- radar_plot創建一個圖,每個軸代表度量標準,顯示模型在視覺上的比較。
保存評估結果
您可以將評估結果保存到通常以JSON格式的文件中,以進行記錄保存或以後的分析。
進口評估 從pathlib導入路徑 #進行評估 cercucy_metric = evaluate.load(“準確性”) 結果= ecuctacy_metric.com pupute(參考= [0,1,0,1],預測= [1,0,0,1]) 打印(f“結果要保存:{result}”) #定義超參數或其他元數據 hyperparams = {“ model_name”:“ my_custom_model”,“ Learning_rate”:0.001} run_details = {“ perveriment_id”:“ run_42”} #結合結果和元數據 save_data = {**結果,** hyperparams,** run_details} #定義保存目錄和文件名 save_dir =路徑(“ ./ evaluituon_results”) save_dir.mkdir(equent_ok = true)#創建目錄(如果不存在) #使用estaution.save存儲結果 嘗試: saved_path = evaluate.save(save_directory = save_dir,** save_data) 打印(f“結果保存到:{saved_path}”) #您也可以手動保存為JSON 進口JSON Manual_save_path = save_dir /“ manual_results.json” 用開放(Manual_save_path,'w')作為f: json.dump(save_data,f,indent = 4) 打印(F“手動保存到:{Manual_save_path}”) 除例外為E: #如果在存儲庫外運行,請捕獲潛在的與GIT相關的錯誤 print(f“ evaluate.save遇到了一個問題(可能與git相關):{e}”) 打印(“嘗試手動JSON保存。”) 進口JSON Manual_save_path = save_dir /“ Manual_results_fallback.json” 用開放(Manual_save_path,'w')作為f: json.dump(save_data,f,indent = 4) 打印(F“手動保存到:{Manual_save_path}”)
輸出:
保存的結果:{'準確性':0.5}<br><br>評估。 Save遇到了一個問題(可能與GIT相關):Save()缺少1<br> 必需的位置參數:'path_or_file'<br><br>嘗試手動JSON保存。<br><br>將結果手動保存到:evaluation_results/manual_results_fallback.json
解釋:
- 我們將計算結果詞典與其他元數據(如Hyperparams)相結合。
- essuatuate.save試圖將此數據保存到指定目錄中的JSON文件中。如果在存儲庫中運行,它可能會嘗試添加git提交信息,這可能會導致錯誤(如原始日誌中所示)。
- 我們包括一個後備,可以手動將字典保存為JSON文件,這通常就足夠了。
選擇正確的度量標準
選擇適當的度量是至關重要的。考慮以下要點:
- 任務類型:是分類,翻譯,摘要,ner,QA嗎?將指標標準用於該任務(用於分類的準確性/F1,用於生成的BLEU/ROUGE,seqeval for Ner,QA的小隊)。
- 數據集:一些基準(例如膠水,小隊)具有特定相關的指標。排行榜(例如,在帶有代碼的論文上)通常顯示特定數據集的通常指標。
-
目標:表現的哪個方面最重要?
- 準確性:總體正確性(適合平衡課程)。
- 精度/召回/F1 :對於不平衡的班級或假陽性/負面成本不同的時候很重要。
- bleu/rouge :文本生成中的流利性和內容重疊。
- 困惑:語言模型對樣本的預測程度(較低,通常用於生成模型)。
- 公制卡:閱讀擁抱面孔卡(文檔),以詳細說明,限制和適當的用例(例如,BLEU卡,squood卡)。
結論
擁抱面孔評估圖書館提供了一種多功能且用戶友好的方式來評估大型語言模型和數據集。它提供標準的指標,數據集測量以及評估儀和評估儀等工具,以簡化流程。通過使用這些工具並選擇適合您任務的指標,您可以清楚地了解模型的優勢和劣勢。
有關更多詳細信息和高級用法,請諮詢官方資源:
- 擁抱面部評估文檔:快速旅行
- GitHub存儲庫:擁抱面/評估
- Kaggle Notebook示例:LLM評估框架(此處使用的某些示例的來源)
以上是如何使用擁抱面部評估評估LLM -Analytics Vidhya的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Apollo Research的一份新報告顯示,先進的AI系統的不受檢查的內部部署構成了重大風險。 在大型人工智能公司中缺乏監督,普遍存在,允許潛在的災難性結果

傳統測謊儀已經過時了。依靠腕帶連接的指針,打印出受試者生命體徵和身體反應的測謊儀,在識破謊言方面並不精確。這就是為什麼測謊結果通常不被法庭採納的原因,儘管它曾導致許多無辜者入獄。 相比之下,人工智能是一個強大的數據引擎,其工作原理是全方位觀察。這意味著科學家可以通過多種途徑將人工智能應用於尋求真相的應用中。 一種方法是像測謊儀一樣分析被審問者的生命體徵反應,但採用更詳細、更精確的比較分析。 另一種方法是利用語言標記來分析人們實際所說的話,並運用邏輯和推理。 俗話說,一個謊言會滋生另一個謊言,最終

航空航天業是創新的先驅,它利用AI應對其最複雜的挑戰。 現代航空的越來越複雜性需要AI的自動化和實時智能功能,以提高安全性,降低操作

機器人技術的飛速發展為我們帶來了一個引人入勝的案例研究。 來自Noetix的N2機器人重達40多磅,身高3英尺,據說可以後空翻。 Unitree公司推出的G1機器人重量約為N2的兩倍,身高約4英尺。比賽中還有許多體型更小的類人機器人參賽,甚至還有一款由風扇驅動前進的機器人。 數據解讀 這場半程馬拉松吸引了超過12,000名觀眾,但只有21台類人機器人參賽。儘管政府指出參賽機器人賽前進行了“強化訓練”,但並非所有機器人均完成了全程比賽。 冠軍——由北京類人機器人創新中心研發的Tiangong Ult

人工智能以目前的形式並不是真正智能的。它擅長模仿和完善現有數據。 我們不是在創造人工智能,而是人工推斷 - 處理信息的機器,而人類則

一份報告發現,在谷歌相冊Android版7.26版本的代碼中隱藏了一個更新的界面,每次查看照片時,都會在屏幕底部顯示一行新檢測到的面孔縮略圖。 新的面部縮略圖缺少姓名標籤,所以我懷疑您需要單獨點擊它們才能查看有關每個檢測到的人員的更多信息。就目前而言,此功能除了谷歌相冊已在您的圖像中找到這些人之外,不提供任何其他信息。 此功能尚未上線,因此我們不知道谷歌將如何準確地使用它。谷歌可以使用縮略圖來加快查找所選人員的更多照片的速度,或者可能用於其他目的,例如選擇要編輯的個人。我們拭目以待。 就目前而言

增強者通過教授模型根據人類反饋進行調整來震撼AI的開發。它將監督的學習基金會與基於獎勵的更新融合在一起,使其更安全,更準確,真正地幫助

科學家已經廣泛研究了人類和更簡單的神經網絡(如秀麗隱桿線蟲中的神經網絡),以了解其功能。 但是,出現了一個關鍵問題:我們如何使自己的神經網絡與新穎的AI一起有效地工作


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器