1.LLM常見應用

  1. 文本到文本:摘要、翻譯、問答 文本到文本應用程序通常屬于自然語言處理 (NLP) 的范疇,采用 Transformer 模型或 BERT(Transformers 的雙向編碼器表示)等復雜算法。在文本摘要的背景下,Rouge Score 或 BLEU(雙語評估研究)指標等技術可以評估生成的摘要的質量。對于企業來說,這對于自動總結冗長的報告、從而更快地做出決策來說非常寶貴。文本翻譯服務通常采用在并行語料庫上接受過培訓的領域LLM,并使用 METEOR 等指標進行評估。這些服務對于全球運營的企業至關重要,可以實現跨越語言障礙的無縫溝通。問答平臺通常依賴上下文感知算法來提供高度準確的答案。企業可以將領域LLM集成到支持系統中,以實現實時、有數據支持的響應。
  2. 語音轉文本:轉錄服務、聲控助手 語音轉文本技術的關鍵在于自動語音識別 (ASR) 系統。ASR 系統采用隱馬爾可夫模型或深度神經網絡來轉錄口語單詞。企業可以利用 ASR 系統在電話會議期間提供自動實時轉錄服務,創建易于搜索和存檔的文本記錄。聲控助手采用 ASR 和 NLP 來執行命令。這里的商業應用范圍從促進倉庫中的免提操作到零售業中復雜的客戶交互系統。

3.圖像轉文本:圖像字幕、OCR(光學字符識別) 圖像到文本結合使用卷積神經網絡 (CNN) 進行特征提取,并結合循環神經網絡 (RNN) 或 Transformer 生成相應的文本。OCR 技術專門采用二值化等圖像預處理技術,并采用 k-NN 或 SVM 等機器學習分類器。對于企業來說,領域LLM可以轉化為搜索引擎優化視覺內容的自動標記、發票的自動分類等等。

  1. 代碼生成:自動生成代碼片段,修復Bug 在編碼數據庫上訓練的復雜語言模型可以預測可能的代碼片段,從而加快軟件開發周期。領域LLM通常采用抽象語法樹或控制流圖來提高準確性。在錯誤修復中,集成靜態代碼分析工具來識別漏洞,機器學習模型建議適當的修復。這提高了業務應用程序的效率和穩健性。
  2. 聊天機器人:客戶支持、交互式常見問題解答 業務環境中的聊天機器人通常使用決策樹、有狀態 LSTM 網絡甚至更高級的架構(例如 GPT(生成式預訓練變壓器))構建。這些聊天機器人通常接受企業歷史客戶服務交互的培訓,這使它們能夠更切合實際地解決問題。除了客戶支持之外,他們還可以執行從潛在客戶開發到自動追加銷售的各種角色,從而顯著降低人力成本。
  3. 情緒分析:通過評論或社交媒體確定客戶情緒 情感分析通常采用自然語言理解 (NLU)(NLP 的一個子領域)來識別表明情感的語言中的細微差別。通常使用 TextBlob、VADER(Valence Aware Dictionary 和 sEtiment Reasoner)以及更先進的神經網絡模型。企業可以將情緒分析集成到 CRM 系統中,從而實現實時客戶情緒跟蹤和更有針對性的客戶互動。
  4. 數據清理:識別并糾正錯誤的數據條目 數據清理過程通常采用無監督學習算法(例如 k 均值聚類或分層聚類)來識別錯誤或異常數據點。此外,可以配置決策樹或基于規則的系統來識別結構化數據中的不一致之處。對于企業而言,數據清洗可確保分析的可靠性,這對于戰略規劃和運營效率至關重要。
  5. 異常檢測:識別數據集中的異常值或異常值 對于異常檢測,通常使用 Z 分數等統計技術或隔離森林等機器學習算法。時間序列數據可能會使用長短期記憶網絡 (LSTM) 來檢測隨時間變化的異常情況。企業可以在欺詐檢測、制造質量控制或市場趨勢預測等各個領域使用異常檢測,從而預先識別和減輕風險。

通過了解這些各種領域LLM功能的技術基礎和業務應用,企業可以就如何將領域LLM整合到其運營中以產生最大影響做出更明智的決策。

1.0 ChatIE:通過多輪問答問題實現實命名實體識別和關系事件的零樣本信息抽取

零樣本信息抽取(Information Extraction,IE)旨在從無標注文本中建立IE系統,因為很少涉及人為干預,該問題非常具有挑戰性。但零樣本IE不再需要標注數據時耗費的時間和人力,因此十分重要。近來的大規模語言模型(例如GPT-3,Chat GPT)在零樣本設置下取得了很好的表現,這啟發我們探索基于提示的方法來解決零樣本IE任務。我們提出一個問題:不經過訓練來實現零樣本信息抽取是否可行?我們將零樣本IE任務轉變為一個兩階段框架的多輪問答問題(Chat IE),并在三個IE任務中廣泛評估了該框架:實體關系三元組抽取、命名實體識別和事件抽取。在兩個語言的6個數據集上的實驗結果表明,Chat IE取得了非常好的效果,甚至在幾個數據集上(例如NYT11-HRL)上超過了全監督模型的表現。我們的工作能夠為有限資源下IE系統的建立奠定基礎。

1.1RAG檢索增強生成—-LangChain

LangChain的目的是為了開發應用,通過模塊組合的方式使用LLM,并與其他模塊組合的方式來創造應用。可以理解為Langchain本身并不提供LLM模型,只是對LLM抽象,把LLM當作一個功能模塊使用。LangChain能夠連接LLM的能力與目前已有的其他能力,創造能力更強大的應用。

實現原理如圖所示,過程包括加載文件 -> 讀取文本 -> 文本分割 -> 文本向量化 -> 問句向量化 -> 在文本向量中匹配出與問句向量最相似的top k個 -> 匹配出的文本作為上下文和問題一起添加到prompt中 -> 提交給LLM生成回答。 可以看到,核心是將本地答案數據集轉為向量存儲到向量數據,當用戶輸入查詢的問題時,把問題轉為向量然后從向量數據庫中查詢相近的答案topK 這個時候其實就是我們最普遍的問答查詢方案,在沒有大模型的時候就直接返回相關的答案整個流程就結束了。現在有大模型了可以優化回答內容的整體結構。 核心一:文本切割 核心二:embedding及向量化存儲 核心點三:LLM總結 通過embedding向量化文本后可根據需要召回TopK的chunk文檔,并按照類似如下的prompt template灌給大模型進行總結。

"""
已知信息:{context}
根據上述已知信息,簡潔和專業的來回答用戶的問題。如果無法從中得到答案,請說 “根據已知信息無法回答該問題” 或 “沒有提供足夠的相關信息”,不允許在答案中添加編造成分,答案請使用中文。
問題是:{question}
"""

1.2 AIGC技術應用

AIGC(Artificial Intelligence Generated Content,人工智能生成內容)是一種利用人工智能技術生成各種形式內容的方法。這些內容包括文本、圖像、音頻、視頻等。

AIGC技術的應用范圍非常廣泛,包括但不限于以下幾個方面:

文本生成:使用自然語言處理技術,根據給定的輸入,自動生成符合語法和語義規則的文章、故事、廣告語等。 圖像生成:利用計算機視覺技術,根據給定的輸入,自動生成符合要求的圖片、海報、漫畫等。 音頻生成:使用語音合成技術,根據給定的文字或語音輸入,自動生成符合要求的音頻文件,如語音助手、語音導航等。 視頻生成:利用計算機視覺和語音識別技術,根據給定的輸入,自動生成符合要求的視頻文件,如智能監控、智能安防等。 AIGC技術的應用不僅可以提高內容生成的效率和質量,還可以降低內容制作的成本和風險。例如,在媒體和廣告行業,AIGC技術可以快速生成符合品牌調性和用戶需求的文章、圖片和視頻,提高品牌曝光和用戶粘性。在游戲行業,AIGC技術可以自動生成游戲場景、角色和道具等,提高游戲開發效率和質量。

LLM 進行圖像識別與傳統 OCR 對比時的主要缺點

LLM 的缺點

  1. 高計算資源需求:
  1. 數據隱私和安全問題:
  1. 模型復雜性和可解釋性差:
  1. 訓練時間和成本:
  1. 泛化能力的局限性:
  1. 實時性和延遲:
  1. 模型大小和存儲:

與傳統 OCR 的對比

  1. 技術成熟度:
  1. 成本效益:
  1. 應用場景:

識別圖型驗證碼

今天我們來看的場景是 圖型驗證碼識別,使用公網大模型API起成本高效識別圖型驗證碼

提示詞

請對這張圖片進行OCR識別,并輸出最準確的驗證碼,直接輸出識別出的結果字符,不要輸出其他內容。

文心一言3.5

通義千問2.5

通義千問2-VL-開源版-7B

圖片理解qwen2-vl-7b

關于7B模型

一般來說,7B參數量的模型在推理時可能需要至少8GB到16GB的GPU顯存,但這只是一個粗略的估計。為了更準確地評估所需GPU顯存,建議參考該模型官方提供的文檔或測試環境中的具體要求。如果是在本地運行,還應該考慮是否進行了任何優化措施,比如混合精度訓練(使用FP16而非FP32),這可以有效減少所需的顯存量。如果您打算進行模型訓練而不是簡單的推理,那么可能還需要更多的顯存來存儲梯度信息和其他訓練過程中產生的數據。

KIMI

Gemini 1.5 Flash

做 OCR 效果非常好,可以在 Prompt 里面定制要輸出的格式,并且成本極低。 案例有寶玉反饋其朋友某公司使用第三方的OCR的服務,用來提取發票上的文字為結構化數據。但收費較高.
參考提示詞: *** Extract text from the provided image and organize it into a structured JSON format. ***

Google 每天為開發者免費提供15億個Token,其中 Gemini 1.5 Flash免費套餐包含: – 每分鐘15次請求(RPM) – 每分鐘100萬個Token(TPM) – 每天1,500次Token(RPD) – 免費上下文緩存服務,每小時最多可存儲100萬個Token – 免費微調 Gemini 1.5 Pro免費套餐包含: – 每分鐘2次請求(RPM) – 每分鐘32,000個Token(TPM) – 每天50次請求(RPD) 微調模型 text-embedding-004 提供: – 每分鐘1,500次請求(RPM) 除了前面說的 API,Google AI Studio 還為開發者提供免費訪問,其中 Gemini 1.5 Pro 有 2M Token上下文窗口。 價格頁面:https://ai.google.dev/pricing Google AI Studio:https://aistudio.google.com

發票識別示例場景

代碼實現

import os
import json
import base64
import requests
from datetime import datetime

class AliBailianImageService:
def __init__(self, configuration):
self.configuration = configuration

def get_api_key(self):
# 根據環境變量決定從哪里讀取 API Key
dev_environment_variable = os.getenv("ENVIRONMENT")
is_development = not dev_environment_variable or dev_environment_variable.lower() == "development"

if is_development:
# 開發環境從配置中讀取
api_key = self.configuration.get("DASHSCOPE_API_KEY")
else:
# 生產環境從環境變量讀取
api_key = os.getenv("DASHSCOPE_API_KEY")

# 若沒有配置環境變量,請用百煉API Key將下行替換為:api_key = "sk-xxx"
if not api_key:
print("API Key 未設置。請確保環境變量 'DASHSCOPE_API_KEY' 已設置。")
return None

return api_key

def get_image_base64_string_and_save(self, image_url):
response = requests.get(image_url)
if response.status_code != 200:
raise Exception(f"Failed to download image: {response.status_code}")

image_data = response.content
encoded_image = base64.b64encode(image_data).decode('utf-8')

# 可選步驟:保存圖片到文件
# filename = f"{uuid.uuid4()}.jpg"
# with open(filename, 'wb') as f:
# f.write(image_data)

return encoded_image

def send_post_request(self, url, json_content, api_key):
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}

response = requests.post(url, data=json_content, headers=headers)
response_body = response.text

self.write_response_to_log(response_body)

if response.status_code >= 200 and response.status_code < 300:
return response_body
else:
return f"請求失敗: {response.status_code}"

def write_response_to_log(self, response_body):
log_file_path = "Logs/response.log"
log_dir = os.path.dirname(log_file_path)

if not os.path.exists(log_dir):
os.makedirs(log_dir)

with open(log_file_path, 'a') as f:
f.write(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] Response Body: {response_body}\n")

def get_results(self):
api_key = self.get_api_key()
if not api_key:
return None

encoded_image = self.get_image_base64_string_and_save(
"http://0.0.0.0/7661454/captchaimage?rnd=0.8717223995099175"
)

url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
json_content = {
"model": "qwen2-vl-7b-instruct",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "請對這張圖片進行OCR識別,并輸出最準確的驗證碼,直接輸出識別出的結果字符,不要輸出其他內容。"},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{encoded_image}"}}
]
}
]
}

json_content_str = json.dumps(json_content)

result = self.send_post_request(url, json_content_str, api_key)
print(result)
return result

if __name__ == "__main__":
# 示例配置
config = {
"DASHSCOPE_API_KEY": "your-api-key-here"
}

service = AliBailianImageService(config)
result = service.get_results()
if result:
print("Result:", result)

通義千問2-VL-開源版-2B

通義千問VL模型qwen2-vl-2b-instruct可以根據您傳入的圖片來進行回答,curl參考

curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \ -H "Authorization: Bearer $DASHSCOPE_API_KEY" \ -H 'Content-Type: application/json' \ -d '{ "model": "qwen-vl-max", "input":{ "messages":[ { "role": "user", "content": [ {"image": "https://img.alicdn.com/imgextra/i2/O1CN01y1lotD1hINrPr60fs_!!6000000004254-0-tps-1384-3024.jpg"}, {"text": "這是什么?"} ] } ] } }'


事實情況下獨立部署也可以

測試圖片進行識別

返回示例

[2024-11-06 16:14:22] Response Body: {"choices":[{"message":{"content":"\"bafy\"","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":60,"completion_tokens":6,"total_tokens":66},"created":1730880859,"system_fingerprint":null,"model":"qwen-vl-plus","id":"chatcmpl-5a306496-300c-9815-8c50-35e98f15508d"}

目前僅供免費體驗,另一個官方示例是視覺語言模型輸出示例

傳統OCR工具提取的內容不完整且格式混亂。大模型不僅能精準提取圖片中的文字,還能以規整的形式輸出。

通義千問團隊以Apache 2.0協議開源了Qwen2-VL-2B和Qwen2-VL-7B,開源代碼已集成到Hugging Face Transformers、vLLM和其他第三方框架中。開發者可以通過Hugging Face和魔搭ModelScope下載使用模型,也可通過通義官網、通義APP的主對話頁面使用模型。

圖片理解

https://bailian.console.aliyun.com/#/model-market/detail/qwen2-vl-2b-instruct?tabKey=sdk

視覺理解

https://help.aliyun.com/zh/model-studio/user-guide/vision?spm=a2c4g.11186623.help-menu-2400256.d_1_0_2.5ef477e9sJEdx7&scm=20140722.H_2845871._.OR_help-V_1#f1cbd5b8a8k5w

阿里云百煉平臺:

https://help.aliyun.com/zh/model-studio/developer-reference/qwen-vl-api

GitHub:

https://github.com/QwenLM/Qwen2-VL

HuggingFace:

https://huggingface.co/collections/Qwen/qwen2-vl-66cee7455501d7126940800d

魔搭ModelScope:

https://modelscope.cn/organization/qwen?tab=model

模型體驗:

https://huggingface.co/spaces/Qwen/Qwen2-VL

https://qwen.readthedocs.io/en/latest/benchmark/speed_benchmark.html

文章轉自微信公眾號@機器學習AI算法工程

上一篇:

不止Cursor,2024年AI代碼工具終極指南

下一篇:

OpenAI Assistants API 極簡入門(附LangChain集成)
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費