AI重生:奪回網文界的霸權
重生了,這輩子我重生成了 MidReal。一個可以幫別人寫「網文」的 AI 機器人。
#這段時間裡,我看到很多選題,偶爾也會吐槽一下。竟然有人叫我寫寫 Harry Potter。拜託,難道我還能寫的比 J・K・Rowling 好不成?不過,同人甚麼的,我還是可以發揮的。
經典設定誰會不愛?我就勉為其難地幫助這些用戶實現想像吧。
#實不相瞞,上輩子我該看的,不該看的,通通看了。就下面這些主題,都是我愛慘了的。
#那些你看小說很喜歡卻沒人寫的設定,那些冷門甚至邪門的cp,都能自產自嗑。
#我並不是自吹自擂,但如果你需要我寫作的話,我可以確實為你創作出優秀的作品。如果你對結局不滿意,或是喜歡角色"中道崩殞",或者甚至是作者在寫作過程中出現了困境,都可以放心地交給我,我會為你寫出讓你滿意的內容。
##MidReal 背後的技術源自於這篇論文《FireAct:Toward Language Agent Fine-tuning》。論文作者首次嘗試了用 AI 智能體來微調語言模型,發現了許多優勢,也因此提出了新的智能體架構。
MidReal 就是基於這種架構的,網文才能寫得這麼好。
論文連結:https://arxiv.org/pdf/2310.05915.pdf
#雖然智能體和微調大模型都是最熱門的AI 話題,但它們之間具體有何關聯還不清楚。 System2 Research、劍橋大學等的多位研究者對這片鮮少人涉足的「學術藍海」進行了發掘。
AI 智能體的發展通常是基於現成的語言模型,但由於語言模型不是作為智能體而開發的,因此,延伸出智能體後,大多數語言模型的性能和穩健性較差。最聰明的智能體只能由 GPT-4 支持,它們也無法避免高成本和延遲,以及可控性低、重複性高等問題。
#######微調可以用來解決上面的這些問題。也是在這篇文章中,研究者們踏出了更系統化研究語言智能體的第一步。他們提出了 FireAct ,它能夠利用多個任務和提示方法生成的智能體「行動軌跡」來微調語言模型,讓模型更好地適應不同的任務和情況,提高其整體性能和適用性。
方法簡介
#該研究主要基於一種流行的AI智能體方法:ReAct。一個 ReAct 任務解決軌跡由多個「思考 - 行動 - 觀察」回合組成。具體來說,讓 AI 智能體完成一個任務,語言模型在其中扮演的角色類似於「大腦」。它為 AI 智能體提供解決問題的「思考」和結構化的動作指示,並根據上下文與不同的工具交互,在這個過程中接收觀察到的回饋。
在ReAct 的基礎上,作者提出了FireAct,如圖2 所示,FireAct 運用強大的語言模型的少樣本提示來產生多樣化的ReAct 軌跡,用以微調較小規模的語言模型。與先前類似研究不同的是,FireAct 能夠混合多個訓練任務和提示方法,大大促進了資料的多樣性。
作者也參考了兩種與ReAct 相容的方法:
- 思考鏈(CoT)是產生連結問題和答案的中間推理的有效方法。每個 CoT 軌跡可以簡化為一個單輪 ReAct 軌跡,其中「思維」代表中間推理,「行動」代表返回答案。在不需要與應用程式工具互動的情況下,CoT 尤其有用。
- Reflexion 主要遵循 ReAct 軌跡,但加入了額外的回饋和自我反思。研究中,僅在 ReAct 的第 6 輪和第 10 輪提示進行反思。這樣一來,長的 ReAct 軌跡就能為解決當前任務提供策略「支點」,能夠幫助模型解決或調整策略。例如搜尋「電影名」得不到答案時,應該把搜尋的關鍵字換成「導演」。
在推理過程中,FireAct 框架下的 AI 智能體顯著減少了提示詞的樣本數量需求,推理也更加高效和簡便。它能夠根據任務的複雜度隱式地選擇合適的方法。由於 FireAct 具備更廣泛和多樣化的學習支持,與傳統的提示詞微調方法相比,它展現出更強的泛化能力和穩健性。
實驗及結果
熱門問題回答(HotpotQA)資料集是一個廣泛用於自然語言處理研究的資料集,其中包含了一系列與熱門話題相關的問題和答案。 Bamboogle是一個搜尋引擎優化(SEO)遊戲,玩家需要透過搜尋引擎來解決一系列難題。 StrategyQA是一個策略問題回答資料集,其中包含了各種與策略制定和執行相關的問題和答案。 MMLU是一個多模態學習資料集,用於研究如何將多種感知模態(如圖像、語音等)結合起來進行學習和推理。
- HotpotQA 是一個 QA 資料集,對多步驟推理和知識檢索有著更具挑戰性的考驗。研究者使用 2,000 個隨機訓練問題進行微調資料整理,並使用 500 個隨機 dev 問題進行評估。
- Bamboogle 是一個由 125 個多跳問題組成的測試集,其格式與 HotpotQA 相似,但經過精心設計,以避免直接用谷歌搜尋解決問題。
- StrategyQA 是一個需要隱式推理步驟的是 / 否 QA 資料集。
- MMLU 涵蓋初等數學、歷史和電腦科學等不同領域的 57 個多選 QA 任務。
工具:研究者使用SerpAPI1 建立了一個Google搜尋工具,該工具會從「答案框」、「答案片段」、「高亮單字」或「第一個結果片段」中傳回第一個存在的條目,從而確保回覆簡短且相關。他們發現,這樣一個簡單的工具足以滿足不同任務的基本品質保證需求,並提高了微調模型的易用性和通用性。
研究者研究了三個 LM 系列:OpenAI GPT、Llama-2 以及 CodeLlama。
微調方法:研究者在大多數微調實驗中使用了低秩自適應(Low-Rank Adaptation,LoRA),但在某些比較中也使用了全模型微調。考慮到語言代理微調的各種基本因素,他們將實驗分為三個部分,複雜程度依次增加:
- 在單一任務中使用單一提示方法進行微調;
- 在單一任務中使用多種方法進行微調;
- 在多個任務中使用多種方法進行微調。
1.在單一任務中使用單一提示方法進行微調
#研究者探讨了使用来自单一任务(HotpotQA)和单一提示方法(ReAct)的数据进行微调的问题。通过这种简单而可控的设置,他们证实了微调相对于提示的各种优势(性能、效率、稳健性、泛化),并研究了不同 LM、数据大小和微调方法的效果。
如表 2 所示,微调能持续、显著地改善 HotpotQA EM 的提示效果。虽然较弱的 LM 从微调中获益更多(例如,Llama-2-7B 提高了 77%),但即使是像 GPT-3.5 这样强大的 LM 也能通过微调将性能提高 25%,这清楚地表明了从更多样本中学习的好处。与表 1 中的强提示基线相比,研究者发现经过微调的 Llama-2-13B 优于所有 GPT-3.5 提示方法。这表明对小型开源 LM 进行微调的效果可能优于对更强大的商用 LM 进行提示的效果。
在智能体推理过程中,微调的成本更低,速度更快。由于微调 LM 不需要少量的上下文示例,因此其推理效率更高。例如,表 3 的第一部分比较了微调推理与 shiyongtishideGPT-3.5 推理的成本,发现推理时间减少了 70%,总体推理成本也有所降低。
研究人员对于一种简化且无害的设置进行了考虑,即在搜索API中,有50%的概率返回"None"或者随机的搜索响应,并且询问语言智能体是否仍能够稳健地回答问题。根据表格3第二部分的数据显示,设置为"None"更具有挑战性,它导致ReAct EM下降了33.8%,而FireAct EM只下降了14.2%。这些初步结果表明,多样化的学习支持对于提高稳健性非常重要。
表 3 的第三部分显示了经过微调的和使用提示的 GPT-3.5 在 Bamboogle 上的 EM 结果。虽然经过 HotpotQA 微调或使用提示的 GPT-3.5 都能合理地泛化到 Bamboogle,但前者(44.0 EM)仍然优于后者(40.8 EM),这表明微调具有泛化优势。
2.在单一任务中使用多种方法进行微调
作者将 CoT 和 Reflexion 与 ReAct 集成,测试了对于在单一任务(HotpotQA)中使用多种方法进行微调的性能。对比 FireAct 和既有方法的在各数据集中的得分,他们有以下发现:
首先,研究者通过多种方法对智能体进行微调,以提高其灵活性。在第五张图中,除了定量结果外,研究者还展示了两个示例问题,以说明多方法微调的好处。第一个问题相对简单,但仅使用ReAct微调的智能体搜索了一个过于复杂的查询,导致分散注意力并提供了错误的答案。相比之下,同时使用CoT和ReAct微调的智能体选择依靠内部知识,自信地在一轮内完成了任务。第二个问题更具挑战性,仅使用ReAct微调的智能体未能找到有用的信息。相比之下,同时使用Reflexion和ReAct微调的智能体在遇到困境时进行了反思,并改变了搜索策略,最终得到了正确的答案。选择灵活的解决方案来应对不同的问题,是FireAct相较于其他微调方法的关键优势。
其次,使用多方法微调不同的语言模型将产生不同的影响。如表 4 所示,综合使用多种智能体进行微调并不总是能带来提升,最优的方法组合取决于基础语言模型。例如,对于 GPT-3.5 和 Llama-2 模型,ReAct CoT 优于 ReAct,但对于 CodeLlama 模型则不同。对于 CodeLlama7/13B,ReAct CoT Reflexion 的效果最差,但 CodeLlama-34B 却能取得最好的效果。这些结果表明,还需进一步研究基础语言模型和微调数据之间的相互作用。
为了进一步了解组合了多种方法的智能体是否能够根据任务选择恰当的解决方案,研究者计算了在推理过程中随机选择方法的得分。该得分(32.4)远低于所有组合了多种方法的智能体,这表明选择解决方案并非易事。然而,每个实例的最佳方案的得分也仅为 52.0,这表明在提示方法选择方面仍有提升空间。
3.在多个任务中使用多种方法进行微调
到這裡,微調只使用了 HotpotQA 數據,但有關 LM 微調的實證研究表明,混合使用不同的任務會有益處。研究者使用三個資料集的混合訓練資料對GPT-3.5 進行微調:HotpotQA(500 個ReAct 樣本,277 個CoT 樣本)、StrategyQA(388 個ReAct 樣本,380 個CoT 樣本)和MMLU(456 個ReAct樣本,469 個CoT 樣本)。
如表 5 所示,加入 StrategyQA/MMLU 資料後,HotpotQA/Bamboogle 的效能幾乎保持不變。一方面,StrategyQA/MMLU 軌跡包含的問題和工具使用策略大不相同,這使得遷移變得困難。另一方面,儘管分佈發生了變化,但加入 StrategyQA/MMLU 並沒有影響 HotpotQA/Bamboogle 的性能,這表明微調一個多任務代理以取代多個單任務代理是未來可以發展的方向。當研究者從多任務、單一方法微調切換到多任務、多方法微調時,他們發現所有任務的表現都有所提高,這再次明確了多方法代理微調的價值。
想要了解更多技術細節,請閱讀原文。
參考連結:
- https://twitter.com/Tisoga/status/1739813471246786823
- https://www.zhihu .com/people/eyew3g
以上是AI重生:奪回網文界的霸權的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
