close

10.5 GPT Academic 安裝與使用

前言

本節介紹一個LLM的具體應用場景,也是熱門、火爆的應用和場景,目前(2024418日)github已經有54K stars

希望通過這個應用案例,介紹LLM的能力、LLM的作用,幫助大家找到LLM用武之地。

本節將介紹本地部署 gpt academic工具,它是為GPT/GLMLLM大語言模型提供實用化交互介面,特別優化論文閱讀/潤色/寫作體驗,模組化設計,支援自訂快捷按鈕&函數外掛程式,支援PythonC++等專案剖析&自譯解功能,PDF/LaTex論文翻譯&總結功能,支援並行問詢多種LLM模型,支援chatglm3等本地模型。接入通義千問, deepseekcoder, 訊飛星火, 文心一言, llama2, rwkv, claude2, moss等。

更多資訊查閱githubhttps://github.com/binary-husky/gpt_academic

本地安裝

第一步,下載代碼

git clone https://github.com/binary-husky/gpt_academic

第二步,安裝環境

第一步:python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

第二步:python -m pip install -r request_llms/requirements_qwen_local.txt

Copy

第三步,修改設定檔

這裡採用本地Qwen模型,當然大家有API_KEY,那用線上模型就更方便了。(本地qwen模型版本的config檔放在github了)

3.1 修改config.py,設置本地模型清單,將qwen添加進去

# [step 3]>> 模型選擇是 (注意: LLM_MODEL是預設選中的模型, *必須*被包含在AVAIL_LLM_MODELS列表中 )

LLM_MODEL = "gpt-3.5-turbo-16k" # 可選 ↓↓↓

AVAIL_LLM_MODELS = ["gpt-4-1106-preview", "gpt-4-turbo-preview", "gpt-4-vision-preview",

                    "gpt-3.5-turbo-1106", "gpt-3.5-turbo-16k", "gpt-3.5-turbo", "azure-gpt-3.5",

                    "gpt-4", "gpt-4-32k", "azure-gpt-4", "glm-4", "glm-3-turbo",

                    "gemini-pro", "chatglm3", "qwen-local"

                    ]

Copy

3.2. 配置本地模型的路徑,此路徑是模型權重路徑

QWEN_LOCAL_MODEL_SELECTION = r"G:\04-model-weights\qwen\Qwen-1_8B-Chat"

Copy

第四步,運行程式

運行後跳出主頁面,左上角選擇qwen-local,即可進行對話。

python main.py

Copy

選用線上模型的配置步驟如下:

第一步:api key配置

config.py配置api keyAPI_KEY變數裡面

第二步:修改重定向URL

API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "https://api.chatanywhere.com.cn/v1/chat/completions"}

Copy

第三步:修改代理配置

USE_PROXY = True

if USE_PROXY:

    proxies = {

        #          [協議]://  [地址]  :[]

        # "http":  "socks5h://localhost:11284",  # 再例如  "http":  "http://127.0.0.1:7890",

        # "https": "socks5h://localhost:11284",  # 再例如  "https": "http://127.0.0.1:7890",

        "http""http://127.0.0.1:7890",

        "https": "http://127.0.0.1:7890",

    }

Copy

介面使用介紹

gpt academic的頁面功能按鈕比較多,需要瞭解各功能模組,方便使用。大體可以分為4個區域,如下圖的紅色、黃色、藍色和綠色區域所示:

  • 紅色:功能表列,可上傳文檔、壓縮包,批量處理的文檔、代碼,通過這裡上傳;更換大語言模型;修改介面外觀
  • 黃色:對話區,所有的對話交互在這裡顯示
  • 藍色:使用者文本輸入區,主要是一些對話、問題的輸入,文檔和代碼通過<上傳檔>模組進行傳入
  • 綠色:核心功能區域,本專案的核心在此處,提供了多種協助工具。這些功能主要內容是幫使用者撰寫好了提示詞,便於用戶一鍵發送prompt

<<AI人工智慧 PyTorch自學>> 10.5 GPT

<基礎功能>

gpt academic項目主要作用有兩個:

  • 內置了一系列提示詞範本,説明使用者快速完成學術方面的對話任務。
  • 實現各類批量處理操作,提高用戶使用LLM效率,例如批量總結PDF文檔、解析代碼資料夾等,感受下來是將一些列python處理的自動化工具集成好,變為按鈕方式提供使用者使用,這部分才是該專案真正的生產力體現

下面先看基礎功能的使用:

學術語料潤色

上文提到,基礎功能主要是內置了prompt,讓我們只需要點擊按鈕,即可發送響應指令,快速使用LLM功能。

這裡的學術語料潤色按鈕,點擊之後,會將以下提示詞+輸入區的文本,一併發送給LLM,以此完成潤色功能。

內置prompt

作為一名中文學術論文寫作改進助理,你的任務是改進所提供文本的拼寫、語法、清晰、簡潔和整體可讀性,同時分解長句,減少重複,並提供改進建議。請先提供文本的更正版本,然後在markdown表格中列出修改的內容,並給出修改的理由:

Copy

頁面效果如下圖所示:

第一步,在輸入區輸入希望潤色的文字內容;

第二步,點擊學術語料潤色按鈕;

第三步,對話方塊會輸出結果。

<<AI人工智慧 PyTorch自學>> 10.5 GPT

通過一個案例,大體可基礎功能的使用,不同的功能,內置了不同的提示詞範本,加快使用者與LLM對話的過程,提高工作效率。

查找語法錯誤

Help me ensure that the grammar and the spelling is correct. Do not try to polish the text, if no mistake is found, tell me that this paragraph is good. If you find grammar or spelling mistakes, please list mistakes you find in a two-column markdown table, put the original text the first column, put the corrected text in the second column and highlight the key words you fixed. Finally, please provide the proofreaded text.

 

Example:

Paragraph: How is you? Do you knows what is it?

| Original sentence | Corrected sentence |

| :--- | :--- |

| How is you? | How are you? |

| Do you knows what is it? | Do you know what it is ? |

 

Below is a paragraph from an academic paper. You need to report all grammar and spelling mistakes as the example before.

Copy

中譯英

Please translate following sentence to English:

Copy

學術英中互譯

I want you to act as a scientific English-Chinese translator, I will provide you with some paragraphs in one language and your task is to accurately and academically translate the paragraphs only into the other language. Do not repeat the original provided paragraphs after translation. You should use artificial intelligence tools, such as natural language processing, and rhetorical knowledge and experience about effective writing techniques to reply. I'll give you my paragraphs as follows, tell me what language it is written in, and then translate:

Copy

解釋代碼

請解釋以下代碼:

Copy

<進階功能>

進階功能主要包括一系列批量操作的功能,例如批量總結Word文檔、批量Markdown中譯英、解析代碼項目文檔等。

處理批量操作外,還有一系列通過代碼實現的實用功能,如一鍵下載arXiv論文、全文潤色、繪製腦圖等。

下面先瞭解批量處理的功能

批量總結Word文檔

該功能會對上傳的所有word文檔逐一總結,每個word文檔會根據LLM的上下文長度配置進行階段,過長的文檔被切分為多個片段。

使用過程第一步,左上角上傳檔中,上傳所有word文檔

第二步,點擊<批量總結word文檔>

第三步,等待處理結束,在右下角找到檔下載區,即可下載總結好的文本內容。

該功能提供的prompt為:

i_say = f'請對下面的文章片段用中文做概述,檔案名是{os.path.relpath(fp, project_folder)},文章內容是 ```{paper_frag}```'

Copy

如果文章被切分,還會對所有概述內容進行一次文章總結。

i_say = f"根據以上的對話,總結文章{os.path.abspath(fp)}的主要內容。"

Copy

運行完畢,結果會以markdown格式生成檔,在右下角可下載。

解析整個Python項目

除了對文檔(wordpdf)的批量總結,gpt academic還支持對代碼項目的解析總結,目前支持python, Matlab, c++, Go, Rust, Java, js, ts, css, Lua, CSharp

使用步驟:

第一步,將專案代碼壓縮為zip,然後在上傳檔區域上傳

第二步,點擊<解析整個Python專案>,則自動開始解析。

這裡採用gpt academic項目代碼為例,看看解析效果:

  • 逐個文件總結:
  • [6/7] 請對下面的程式檔做一個概述: private_upload\default_user\2024-04-18-10-26-51\gpt_academic.zip.extract\gpt_academic\crazy_functions__init__.py
  • 這是一個Python腳本,它使用OpenAIGPT-3.5-Turbo模型進行微調,並將生成的JSON資料保存到指定的目錄中。
  • 定義了一個fetch_items函數,該函數接受一組清單作為輸入,每個列表代表一個待處理的檔。對於每一個檔,該函數會讀取其內容並將其轉換為字串格式。
  • ......
  • 這個腳本應該可以作為一個簡化的示例來瞭解如何使用OpenAI的預訓練語言模型來進行微調,並將其部署到生產環境中。

Copy

  • 所有py匯總
  • 逐個檔分析已完成。D:\github_desktop\gpt_academic\gpt_log\default_user\shared\GPT-Academic-2024-04-18-10-33-40.md
  • 正在開始匯總。
  •  
  • 這個Python程式是一個網路爬蟲,用於抓取HTML內容並從中提取有用的資訊。這個程式使用了requests庫來發送HTTP請求,並使用BeautifulSoup庫來解析這些請求的回應。此外,這個程式還使用了pandas庫來處理大量的CSV檔,並將它們轉換為字典,以便進行進一步的資料採擷。
  • ......
  • 最後,當一切順利時,我們停止爬取流程,並從伺服器上解壓tar.gz檔,得到原始的CSV檔內容。我們可以將這些內容存儲在一個資料庫中,以便後續使用。

Copy

最後還有一個基於mermaid軟體的腦圖展示,非常直觀。(腦圖只是一部分)

<<AI人工智慧 PyTorch自學>> 10.5 GPT

Prompt邏輯分析

首先會設定system role

sys_prompt_array.append("你是一個程式架構分析師,正在分析一個原始程式碼專案。你的回答必須簡單明瞭。")

Copy

用戶prompt,針對單個文件

prefix = "接下來請你逐檔分析下面的工程"  i_say = prefix + f'請對下面的程式檔做一個概述檔案名是{os.path.relpath(fp, project_folder)},檔代碼是 ```{file_content}```'

Copy

用戶prompt,針對專案維度

i_say = f'用一張Markdown表格簡要描述以下檔的功能:{focus}。根據以上分析,用一句話概括程式的整體功能。' summary = "請用一句話概括這些檔的整體功能。\n\n" + diagram_code

Copy

通過原始程式碼的分析,可知道處理邏輯是,先對每個代碼檔進行概述,然後匯總所有代碼檔的概述內容,再讓LLM進行概括和markdown表格的輸出。

下載arXiv論文並翻譯摘要

可下載arxiv論文pdf檔,還可以將摘要翻譯為中文,加快研究者下載文章、挑選文章的速度。

使用非常簡單,第一步,在輸入區輸入編號,第二步,外掛程式中找到一鍵下載arxiv論文並翻譯摘要(先在input輸入編號如1812.10695,點擊啟動。

內置prompt如下

sys_prompt="Your job is to collect information from materials and translate to Chinese",

 

f"請你閱讀以下學術論文相關的材料,提取摘要,翻譯為中文。材料如下:{str(info)}"

Copy

基於知識庫問答

下面介紹一個高級功能,本地知識庫的功能,常用的場景是,基於論文PDF進行問答、基於內部知識文檔進行問答。

這部分是借助了langchain的功能,實現了一個簡易版本的RAG,從而讓用戶可以基於上傳的文檔進行對話。

整個過程分兩步,第一步構建知識庫,第二步知識庫檔注入。這兩步需要兩個不同的外掛程式功能。

由於issue上有大量不成功案例和問題未解決,同時此處嘗試解決4error後仍不能成功,在這裡不進行此處的演示,其背後邏輯與langchain那套類似的,想要體驗基於文檔的問答,可關注fastgptchachat這兩個項目。

專案工程結構分析

gpt academic項目提供的功能有好幾十個,這些都是開源的力量,眾人拾柴火焰高。

為了能讓大家貢獻外掛程式,專案提供了功能設計的範本,並且統一存放在crazy_functions資料夾,其中配套使用的一些功能函數存放在toolbox.pyLLM模型適配存放在request_llms資料夾。

代碼結構相對清晰,模組化程度高,值得學習,但是代碼格式風格上可以再優雅一些(笑哭)。

這裡採用<解析整個python項目>功能,對gpt academic項目進行瞭解讀,耗時數小時,花費上萬token,內容較多,這裡就放到雲盤,大家下載html來查看吧。

提取碼:epfq

小結

本小節介紹了LLM模型的具體應用——學術生產力工具(gpt academic),通過本小節不僅瞭解學術研究的先進生產力,更瞭解了LLM是如何輔助人們提高生產效率。這也是當下LLM發展的關鍵,找到關鍵場景,關鍵痛點,然後利用LLM的能力進行改造、改進,從而實現LLM的落地。

如果沒有痛點場景,關鍵問題的發現,那麼LLM僅是一個簡單的對話機器人,無法發揮TA的價值。通過本節、本章的內容,希望大家能瞭解LLM的概念,能力邊界,清晰的認識到場景定義LLM,場景結合LLM,場景+LLM,一切場景先行,而不是拿著LLM去找場景。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 HCHUNGW 的頭像
    HCHUNGW

    HCHUNGW的部落格

    HCHUNGW 發表在 痞客邦 留言(0) 人氣()