Logo Zephyrnet

Xử lý tài liệu thông minh theo hướng đối thoại với các mô hình nền tảng trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Ngày:

Xử lý tài liệu thông minh (IDP) là công nghệ tự động hóa việc xử lý khối lượng lớn dữ liệu phi cấu trúc, bao gồm văn bản, hình ảnh và video. IDP cung cấp một cải tiến đáng kể so với các phương pháp thủ công và hệ thống nhận dạng ký tự quang học (OCR) cũ bằng cách giải quyết các thách thức như chi phí, lỗi, độ chính xác thấp và khả năng mở rộng hạn chế, cuối cùng mang lại kết quả tốt hơn cho các tổ chức và các bên liên quan.

Xử lý ngôn ngữ tự nhiên (NLP) là một trong những phát triển gần đây trong IDP đã cải thiện độ chính xác và trải nghiệm người dùng. Tuy nhiên, bên cạnh những tiến bộ này, vẫn còn những thách thức cần vượt qua. Chẳng hạn, nhiều hệ thống IDP không thân thiện với người dùng hoặc đủ trực quan để người dùng dễ dàng chấp nhận. Ngoài ra, một số giải pháp hiện tại thiếu khả năng thích ứng với những thay đổi về nguồn dữ liệu, quy định và yêu cầu của người dùng thông qua cải tiến và cập nhật liên tục.

Tăng cường IDP thông qua đối thoại liên quan đến việc kết hợp các khả năng đối thoại vào hệ thống IDP. Bằng cách cho phép người dùng tương tác với các hệ thống IDP theo cách tự nhiên và trực quan hơn, thông qua đối thoại nhiều vòng bằng cách điều chỉnh thông tin không chính xác hoặc thêm thông tin còn thiếu hỗ trợ tự động hóa tác vụ, các hệ thống này có thể trở nên hiệu quả, chính xác và thân thiện hơn với người dùng.

Trong bài đăng này, chúng tôi khám phá một cách tiếp cận sáng tạo đối với IDP sử dụng giải pháp truy vấn hướng dẫn đối thoại bằng cách sử dụng Mô hình Quỹ AmazonKhởi động SageMaker.

Tổng quan về giải pháp

Giải pháp sáng tạo này kết hợp OCR để trích xuất thông tin, mô hình ngôn ngữ lớn được triển khai cục bộ (LLM) để đối thoại và thực hiện tác vụ tự động, VectorDB để nhúng các tác vụ phụ và tự động hóa tác vụ dựa trên LangChain để tích hợp với các nguồn dữ liệu bên ngoài nhằm chuyển đổi cách doanh nghiệp xử lý và phân tích tài liệu bối cảnh. Bằng cách khai thác các công nghệ AI tổng quát, các tổ chức có thể hợp lý hóa quy trình làm việc của IDP, nâng cao trải nghiệm người dùng và tăng hiệu quả tổng thể.

Video sau đây làm nổi bật hệ thống IDP hướng dẫn đối thoại bằng cách xử lý một bài viết được tác giả bởi Hội đồng thống đốc Cục Dự trữ Liên bang, thảo luận về sự sụp đổ của Ngân hàng Thung lũng Silicon vào tháng 2023 năm XNUMX.

Hệ thống có khả năng xử lý hình ảnh, tệp PDF lớn và tài liệu ở định dạng khác và trả lời các câu hỏi bắt nguồn từ nội dung thông qua đầu vào bằng văn bản hoặc giọng nói tương tác. Nếu người dùng cần hỏi ngoài ngữ cảnh của tài liệu, IDP hướng dẫn đối thoại có thể tạo một chuỗi tác vụ từ lời nhắc văn bản, sau đó tham khảo các nguồn dữ liệu bên ngoài và cập nhật để có câu trả lời phù hợp. Ngoài ra, nó hỗ trợ các cuộc hội thoại nhiều vòng và hỗ trợ trao đổi đa ngôn ngữ, tất cả đều được quản lý thông qua đối thoại.

Triển khai LLM của riêng bạn bằng cách sử dụng các mô hình nền tảng của Amazon

Một trong những bước phát triển hứa hẹn nhất trong AI tổng quát là việc tích hợp các LLM vào các hệ thống đối thoại, mở ra những con đường mới cho các cuộc trao đổi trực quan và có ý nghĩa hơn. LLM là một loại mô hình AI được thiết kế để hiểu và tạo văn bản giống con người. Các mô hình này được đào tạo dựa trên lượng dữ liệu khổng lồ và bao gồm hàng tỷ tham số, cho phép chúng thực hiện các tác vụ liên quan đến ngôn ngữ khác nhau với độ chính xác cao. Cách tiếp cận biến đổi này tạo điều kiện cho sự tương tác tự nhiên và hiệu quả hơn, thu hẹp khoảng cách giữa trực giác của con người và trí thông minh của máy móc. Lợi thế chính của việc triển khai LLM cục bộ nằm ở khả năng tăng cường bảo mật dữ liệu mà không cần gửi dữ liệu ra bên ngoài cho các API của bên thứ ba. Hơn nữa, bạn có thể tinh chỉnh LLM đã chọn của mình với dữ liệu dành riêng cho miền, dẫn đến trải nghiệm hiểu ngôn ngữ tự nhiên, nhận biết ngữ cảnh và chính xác hơn.

Sê-ri Jurassic-2 từ AI21 Labs, dựa trên 178 tỷ thông số Jurassic-1 LLM được điều chỉnh theo hướng dẫn, là một phần không thể thiếu của các mô hình nền tảng Amazon có sẵn thông qua nền tảng Amazon. Hướng dẫn Jurassic-2 được đào tạo đặc biệt để quản lý các lời nhắc chỉ là hướng dẫn, được gọi là không bắn, mà không cần ví dụ, hoặc bắn ít. Phương pháp này cung cấp sự tương tác trực quan nhất với LLM và đó là cách tiếp cận tốt nhất để hiểu đầu ra lý tưởng cho nhiệm vụ của bạn mà không yêu cầu bất kỳ ví dụ nào. Bạn có thể triển khai hiệu quả J2-jumbo-instruct đã được đào tạo trước hoặc các mô hình Jurassic-2 khác có sẵn trên AWS Marketplace vào đám mây riêng ảo (VPC) của riêng bạn bằng cách sử dụng Amazon SageMaker. Xem mã sau đây:

import ai21, sagemaker # Define endpoint name
endpoint_name = "sagemaker-soln-j2-jumbo-instruct"
# Define real-time inference instance type. You can also choose g5.48xlarge or p4de.24xlarge instance types
# Please request P instance quota increase via <a href="https://console.aws.amazon.com/servicequotas/home" target="_blank" rel="noopener">Service Quotas console</a> or your account manager
real_time_inference_instance_type = ("ml.p4d.24xlarge") # Create a Sgaemkaer endpoint then deploy a pre-trained J2-jumbo-instruct-v1 model from AWS Market Place.
model_package_arn = "arn:aws:sagemaker:us-east-1:865070037744:model-package/j2-jumbo-instruct-v1-0-20-8b2be365d1883a15b7d78da7217cdeab"
model = ModelPackage(
role=sagemaker.get_execution_role(),
model_package_arn=model_package_arn,
sagemaker_session=sagemaker.Session()
) # Deploy the model
predictor = model.deploy(1, real_time_inference_instance_type,
endpoint_name=endpoint_name,
model_data_download_timeout=3600,
container_startup_health_check_timeout=600,
)

Sau khi điểm cuối đã được triển khai thành công trong VPC của riêng bạn, bạn có thể bắt đầu một tác vụ suy luận để xác minh rằng LLM đã triển khai đang hoạt động như mong đợi:

response_jumbo_instruct = ai21.Completion.execute(
sm_endpoint=endpoint_name,
prompt="Explain deep learning algorithms to 8th graders",
numResults=1,
maxTokens=100,
temperature=0.01 #subject to reduce “hallucination” by using common words.
)

Xử lý tài liệu, nhúng và lập chỉ mục

Chúng tôi đi sâu vào quá trình xây dựng một chỉ mục tìm kiếm hiệu quả và hiệu quả, tạo nền tảng cho các cuộc đối thoại thông minh và đáp ứng để hướng dẫn xử lý tài liệu. Để bắt đầu, chúng tôi chuyển đổi tài liệu từ các định dạng khác nhau thành nội dung văn bản bằng OCR và Văn bản Amazon. Sau đó, chúng tôi đọc nội dung này và chia nhỏ nội dung đó thành các phần nhỏ hơn, lý tưởng nhất là mỗi phần có kích thước bằng một câu. Cách tiếp cận chi tiết này cho phép các kết quả tìm kiếm phù hợp và chính xác hơn, bởi vì nó cho phép kết hợp tốt hơn các truy vấn đối với các phân đoạn riêng lẻ của một trang thay vì toàn bộ tài liệu. Để nâng cao hơn nữa quy trình, chúng tôi sử dụng các phần nhúng như thư viện câu transformers từ Hugging Face, tạo biểu diễn véc-tơ (mã hóa) của mỗi câu. Các vectơ này phục vụ như một biểu diễn nhỏ gọn và có ý nghĩa của văn bản gốc, cho phép chức năng khớp ngữ nghĩa hiệu quả và chính xác. Cuối cùng, chúng tôi lưu trữ các vectơ này trong cơ sở dữ liệu vectơ để tìm kiếm sự tương đồng. Sự kết hợp các kỹ thuật này đặt nền tảng cho một khung xử lý tài liệu mới mang lại kết quả chính xác và trực quan cho người dùng. Sơ đồ sau đây minh họa quy trình làm việc này.

OCR đóng vai trò là một yếu tố quan trọng trong giải pháp, cho phép truy xuất văn bản từ các tài liệu hoặc hình ảnh được quét. Chúng tôi có thể sử dụng Amazon Textract để trích xuất văn bản từ tệp PDF hoặc hình ảnh. Dịch vụ OCR được quản lý này có khả năng nhận dạng và kiểm tra văn bản trong các tài liệu nhiều trang, bao gồm các tài liệu ở định dạng PDF, JPEG hoặc TIFF, chẳng hạn như hóa đơn và biên lai. Việc xử lý các tài liệu nhiều trang diễn ra không đồng bộ, tạo thuận lợi cho việc xử lý các tài liệu nhiều trang, rộng rãi. Xem đoạn mã sau:

def pdf_2_text(input_pdf_file, history):
history = history or []
key = 'input-pdf-files/{}'.format(os.path.basename(input_pdf_file.name))
try:
response = s3_client.upload_file(input_pdf_file.name, default_bucket_name, key)
except ClientError as e:
print("Error uploading file to S3:", e)
s3_object = {'Bucket': default_bucket_name, 'Name': key}
response = textract_client.start_document_analysis(
DocumentLocation={'S3Object': s3_object},
FeatureTypes=['TABLES', 'FORMS']
)
job_id = response['JobId']
while True:
response = textract_client.get_document_analysis(JobId=job_id)
status = response['JobStatus']
if status in ['SUCCEEDED', 'FAILED']:
break
time.sleep(5) if status == 'SUCCEEDED':
with open(output_file, 'w') as output_file_io:
for block in response['Blocks']:
if block['BlockType'] in ['LINE', 'WORD']:
output_file_io.write(block['Text'] + 'n')
with open(output_file, "r") as file:
first_512_chars = file.read(512).replace("n", "").replace("r", "").replace("[", "").replace("]", "") + " [...]"
history.append(("Document conversion", first_512_chars))
return history, history

Khi xử lý các tài liệu lớn, điều quan trọng là phải chia nhỏ chúng thành các phần dễ quản lý hơn để xử lý dễ dàng hơn. Trong trường hợp của LangChain, điều này có nghĩa là chia mỗi tài liệu thành các phân đoạn nhỏ hơn, chẳng hạn như 1,000 mã thông báo trên mỗi đoạn với chồng chéo 100 mã thông báo. Để đạt được điều này một cách suôn sẻ, LangChain sử dụng các bộ tách chuyên biệt được thiết kế riêng cho mục đích này:

from langchain.text_splitter import CharacterTextSplitter
from langchain.document_loaders import TextLoader
separator = 'n'
overlap_count = 100. # overlap count between the splits
chunk_size = 1000 # Use a fixed split unit size
loader = TextLoader(output_file)
documents = loader.load()
text_splitter = CharacterTextSplitter(separator=separator, chunk_overlap=overlap_count, chunk_size=chunk_size, length_function=len)
texts = text_splitter.split_documents(documents)

Thời lượng cần thiết để nhúng có thể dao động dựa trên kích thước của tài liệu; ví dụ: có thể mất khoảng 10 phút để hoàn thành. Mặc dù khung thời gian này có thể không đáng kể khi xử lý một tài liệu, nhưng sự phân nhánh trở nên đáng chú ý hơn khi lập chỉ mục hàng trăm gigabyte thay vì chỉ hàng trăm megabyte. Để đẩy nhanh quá trình nhúng, bạn có thể triển khai sharding, cho phép song song hóa và do đó nâng cao hiệu quả:

from langchain.document_loaders import ReadTheDocsLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from sentence_transformers import SentenceTransformer
import numpy as np
import ray
from embeddings import LocalHuggingFaceEmbeddings # Define number of splits
db_shards = 10 loader = TextLoader(output_file)
text_splitter = RecursiveCharacterTextSplitter(
chunk_size = 1000,
chunk_overlap  = 100,
length_function = len,
) @ray.remote()
def process_shard(shard):
embeddings = LocalHuggingFaceEmbeddings('multi-qa-mpnet-base-dot-v1')
result = Chroma.from_documents(shard, embeddings)
return result # Read the doc content and split them into chunks.
chunks = text_splitter.create_documents([doc.page_content for doc in documents], metadatas=[doc.metadata for doc in documents])
# Embed the doc chunks into vectors.
shards = np.array_split(chunks, db_shards)
futures = [process_shard.remote(shards[i]) for i in range(db_shards)]
texts = ray.get(futures)

Bây giờ chúng ta đã thu được các phân đoạn nhỏ hơn, chúng ta có thể tiếp tục biểu diễn chúng dưới dạng vectơ thông qua các phép nhúng. Nhúng, một kỹ thuật trong NLP, tạo ra các biểu diễn véc-tơ của lời nhắc văn bản. Lớp Nhúng phục vụ như một giao diện hợp nhất để tương tác với các nhà cung cấp dịch vụ nhúng khác nhau, chẳng hạn như SageMaker, Mạch lạc, Ôm mặtOpenAI, hợp lý hóa quy trình trên các nền tảng khác nhau. Các phần nhúng này là các mô tả bằng số của các ý tưởng được chuyển đổi thành các chuỗi số, cho phép máy tính dễ dàng hiểu được mối liên hệ giữa các ý tưởng này. Xem đoạn mã sau:

# Choose a SageMaker deployed local LLM endpoint for embedding
llm_embeddings = SagemakerEndpointEmbeddings(
endpoint_name=<endpoint_name>,
region_name=<region>,
content_handler=content_handler
)

Sau khi tạo các phần nhúng, chúng ta cần sử dụng một kho lưu trữ vectơ để lưu trữ các vectơ. cửa hàng vector thích Chroma được thiết kế đặc biệt để xây dựng các chỉ mục cho các tìm kiếm nhanh trong không gian nhiều chiều sau này, làm cho chúng hoàn toàn phù hợp với các mục tiêu của chúng tôi. Để thay thế, bạn có thể sử dụng THẤT ​​BẠI, một giải pháp phân cụm vectơ nguồn mở để lưu trữ vectơ. Xem đoạn mã sau:

from langchain.vectorstores import Chroma
# Store vectors in Chroma vectorDB
docsearch_chroma = Chroma.from_documents(texts, llm_embeddings)
# Alternatively you can choose FAISS vectorstore
from langchain.vectorstores import FAISS
docsearch_faiss = FAISS.from_documents(texts, llm_embeddings)

Vous sử dụng pouvez aussi Amazon Kendra để lập chỉ mục nội dung doanh nghiệp và đưa ra câu trả lời chính xác. Là một dịch vụ được quản lý hoàn toàn, Amazon Kendra cung cấp các tính năng tìm kiếm ngữ nghĩa sẵn sàng sử dụng để xếp hạng tài liệu và đoạn văn nâng cao. Với tính năng tìm kiếm có độ chính xác cao trong Amazon Kendra, bạn có thể nhận được nội dung và tài liệu phù hợp nhất để tối ưu hóa chất lượng tải trọng của mình. Điều này dẫn đến các phản hồi LLM vượt trội so với các phương pháp tìm kiếm truyền thống hoặc tập trung vào từ khóa. Để biết thêm thông tin, hãy tham khảo Nhanh chóng xây dựng các ứng dụng AI Sáng tạo có độ chính xác cao trên dữ liệu doanh nghiệp bằng Amazon Kendra, LangChain và các mô hình ngôn ngữ lớn.

Đầu vào bằng giọng nói đa ngôn ngữ tương tác

Việc kết hợp đầu vào bằng giọng nói tương tác vào tìm kiếm tài liệu mang lại vô số lợi ích giúp nâng cao trải nghiệm người dùng. Bằng cách cho phép người dùng diễn đạt các thuật ngữ tìm kiếm bằng lời nói, việc tìm kiếm tài liệu trở nên tự nhiên và trực quan hơn, giúp người dùng tìm thấy thông tin họ cần đơn giản và nhanh chóng hơn. Nhập liệu bằng giọng nói có thể nâng cao độ chính xác của kết quả tìm kiếm, bởi vì cụm từ tìm kiếm bằng giọng nói ít mắc lỗi chính tả hoặc ngữ pháp hơn. Đầu vào bằng giọng nói tương tác giúp tìm kiếm tài liệu trở nên toàn diện hơn, phục vụ cho nhiều người dùng hơn với những người nói ngôn ngữ và nền tảng văn hóa khác nhau.

Sản phẩm SDK phát trực tuyến của Amazon Transcribe cho phép bạn thực hiện nhận dạng âm thanh thành giọng nói bằng cách tích hợp trực tiếp với Amazon Transcribe chỉ với một luồng byte âm thanh và trình xử lý cơ bản. Thay vào đó, bạn có thể triển khai thì thầm lớn lập mô hình cục bộ từ Hugging Face bằng cách sử dụng SageMaker, cung cấp khả năng bảo mật dữ liệu được cải thiện và hiệu suất tốt hơn. Để biết chi tiết, hãy tham khảo mẫu máy tính xách tay được xuất bản trên repo GitHub.

# Choose ASR using a locally deployed Whisper-large model from Hugging Face
image = sagemaker.image_uris.retrieve(
framework='pytorch',
region=region,
image_scope='inference',
version='1.12',
instance_type='ml.g4dn.xlarge',
) model_name = f'sagemaker-soln-whisper-model-{int(time.time())}'
whisper_model_sm = sagemaker.model.Model(
model_data=model_uri,
image_uri=image,
role=sagemaker.get_execution_role(),
entry_point="inference.py",
source_dir='src',
name=model_name,
) # Audio transcribe
transcribe = whisper_endpoint.predict(audio.numpy())

Video trình diễn ở trên cho thấy cách ra lệnh bằng giọng nói, kết hợp với nhập văn bản, có thể hỗ trợ nhiệm vụ tóm tắt tài liệu thông qua hội thoại tương tác.

Hướng dẫn các nhiệm vụ NLP thông qua các cuộc trò chuyện nhiều vòng

Bộ nhớ trong các mô hình ngôn ngữ duy trì một khái niệm về trạng thái trong suốt quá trình tương tác của người dùng. Điều này liên quan đến việc xử lý một chuỗi các tin nhắn trò chuyện để trích xuất và biến đổi kiến ​​thức. Các loại bộ nhớ khác nhau, nhưng mỗi loại có thể được hiểu bằng cách sử dụng các chức năng độc lập và trong một chuỗi. Bộ nhớ có thể trả về nhiều điểm dữ liệu, chẳng hạn như tin nhắn gần đây hoặc tóm tắt tin nhắn, ở dạng chuỗi hoặc danh sách. Bài đăng này tập trung vào dạng bộ nhớ đơn giản nhất, bộ nhớ đệm, lưu trữ tất cả các thông báo trước đó và trình bày cách sử dụng của nó với các chuỗi và chức năng tiện ích mô-đun.

LangChain Trò chuyệnTin nhắnLịch sử class là một tiện ích quan trọng cho các mô-đun bộ nhớ, cung cấp các phương thức thuận tiện để lưu và truy xuất tin nhắn của con người và AI bằng cách ghi nhớ tất cả các tương tác trò chuyện trước đó. Đó là lý tưởng để quản lý bộ nhớ bên ngoài từ một chuỗi. Đoạn mã sau là một ví dụ về việc áp dụng một khái niệm đơn giản trong chuỗi bằng cách giới thiệu Bộ nhớ đệm hội thoại, một trình bao bọc cho ChatMessageHistory. Trình bao bọc này trích xuất các thông báo thành một biến, cho phép chúng được biểu diễn dưới dạng một chuỗi:

from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)

LangChain hợp tác với nhiều nhà cung cấp LLM nổi tiếng như AI21 Labs, OpenAI, Cohere, Hugging Face, v.v. Đối với ví dụ này, chúng tôi sử dụng trình bao bọc Jurassic-21 LLM của AI2 Labs được triển khai cục bộ bằng SageMaker. AI21 Studio cũng cung cấp quyền truy cập API cho các LLM kỷ Jura.

from langchain import PromptTemplate, SagemakerEndpoint
from langchain.llms.sagemaker_endpoint import ContentHandlerBase
from langchain.chains.question_answering import load_qa_chain prompt= PromptTemplate(
template=prompt_template, input_variables=["context", "question"]
) class ContentHandler(ContentHandlerBase):
content_type = "application/json"
accepts = "application/json"
def transform_input(self, prompt: str, model_kwargs: Dict) -- bytes:
input_str = json.dumps({prompt: prompt, **model_kwargs})
return input_str.encode('utf-8') def transform_output(self, output: bytes) -- str:
response_json = json.loads(output.read().decode("utf-8"))
return response_json[0]["generated_text"]
content_handler = ContentHandler()
llm_ai21=SagemakerEndpoint(
endpoint_name=endpoint_name,
credentials_profile_name=f'aws-credentials-profile-name',
region_name="us-east-1",
model_kwargs={"temperature":0},
content_handler=content_handler) qa_chain = VectorDBQA.from_chain_type(
llm=llm_ai21,
chain_type='stuff',
vectorstore=docsearch,
verbose=True,
memory=ConversationBufferMemory(return_messages=True)
) response = qa_chain(
{'query': query_input},
return_only_outputs=True
)

Trong trường hợp quy trình không thể xác định được phản hồi thích hợp từ các tài liệu gốc để đáp ứng yêu cầu của người dùng, thì việc tích hợp URL của bên thứ ba hoặc lý tưởng nhất là tác nhân tự trị theo nhiệm vụ với các nguồn dữ liệu ngoài sẽ nâng cao đáng kể khả năng của hệ thống để truy cập một lượng lớn thông tin, cuối cùng cải thiện ngữ cảnh và cung cấp kết quả chính xác và hiện tại hơn.

Với phương thức chạy Tóm tắt được cấu hình sẵn của AI21, một truy vấn có thể truy cập vào một URL được xác định trước, cô đọng nội dung của nó và sau đó thực hiện các tác vụ hỏi và trả lời dựa trên thông tin được tóm tắt:

# Call AI21 API to query the context of a specific URL for Q&A
ai21.api_key = "<YOUR_API_KEY>"
url_external_source = "<your_source_url>"
response_url = ai21.Summarize.execute(
source=url_external_source,
sourceType="URL" )
context = "<concate_document_and_response_url>"
question = "<query>"
response = ai21.Answer.execute(
context=context,
question=question,
sm_endpoint=endpoint_name,
maxTokens=100,
)

Để biết thêm chi tiết và ví dụ về mã, hãy tham khảo Tài liệu tích hợp LangChain LLM cũng như các tài liệu API dành riêng cho nhiệm vụ do AI21 cung cấp.

Tự động hóa tác vụ bằng BabyAGI

Cơ chế tự động hóa tác vụ cho phép hệ thống xử lý các truy vấn phức tạp và tạo các phản hồi có liên quan, giúp cải thiện đáng kể tính hợp lệ và tính xác thực của quá trình xử lý tài liệu. LangCain's BabyAGI là một hệ thống quản lý tác vụ mạnh mẽ do AI cung cấp có thể tự động tạo, ưu tiên và chạy các tác vụ. Một trong những tính năng chính là khả năng giao tiếp với các nguồn thông tin bên ngoài, chẳng hạn như web, cơ sở dữ liệu và API. Một cách để sử dụng tính năng này là tích hợp BabyAGI với Serpapi, API công cụ tìm kiếm cung cấp quyền truy cập vào công cụ tìm kiếm. Sự tích hợp này cho phép BabyAGI tìm kiếm trên web các thông tin liên quan đến các tác vụ, cho phép BabyAGI truy cập vô số thông tin ngoài các tài liệu đầu vào.

Khả năng thực hiện nhiệm vụ tự động của BabyAGI được hỗ trợ bởi LLM, cơ sở dữ liệu tìm kiếm vectơ, trình bao bọc API cho các liên kết bên ngoài và khung LangChain, cho phép nó chạy nhiều nhiệm vụ trên nhiều miền khác nhau. Điều này cho phép hệ thống chủ động thực hiện các tác vụ dựa trên tương tác của người dùng, hợp lý hóa quy trình xử lý tài liệu kết hợp các nguồn bên ngoài và tạo ra trải nghiệm mượt mà, hiệu quả hơn. Sơ đồ sau đây minh họa quá trình tự động hóa nhiệm vụ.

Quá trình này bao gồm các thành phần sau:

  • Bộ nhớ – Bộ nhớ lưu trữ tất cả thông tin mà BabyAGI cần để hoàn thành nhiệm vụ của mình. Điều này bao gồm chính nhiệm vụ, cũng như mọi kết quả hoặc dữ liệu trung gian mà BabyAGI đã tạo.
  • đại lý thực hiện – Tác nhân thực thi chịu trách nhiệm thực hiện các tác vụ được lưu trữ trong bộ nhớ. Nó thực hiện điều này bằng cách truy cập bộ nhớ, truy xuất thông tin liên quan và sau đó thực hiện các bước cần thiết để hoàn thành tác vụ.
  • Tác nhân tạo nhiệm vụ – Tác nhân tạo tác vụ chịu trách nhiệm tạo các tác vụ mới để BabyAGI hoàn thành. Nó thực hiện điều này bằng cách phân tích trạng thái hiện tại của bộ nhớ và xác định bất kỳ lỗ hổng nào về kiến ​​thức hoặc hiểu biết. Khi một khoảng trống đã được xác định, tác nhân tạo nhiệm vụ sẽ tạo một nhiệm vụ mới sẽ giúp BabyAGI lấp đầy khoảng trống đó.
  • hàng đợi nhiệm vụ – Hàng đợi nhiệm vụ là danh sách tất cả các nhiệm vụ mà BabyAGI đã được giao. Các tác vụ được thêm vào hàng đợi theo thứ tự chúng được nhận.
  • Đại lý ưu tiên nhiệm vụ – Tác nhân ưu tiên nhiệm vụ chịu trách nhiệm xác định thứ tự mà BabyAGI sẽ hoàn thành các nhiệm vụ của mình. Nó thực hiện điều này bằng cách phân tích các nhiệm vụ trong hàng đợi và xác định những nhiệm vụ quan trọng hoặc khẩn cấp nhất. Các nhiệm vụ quan trọng nhất được đặt ở đầu hàng đợi và các nhiệm vụ ít quan trọng nhất được đặt ở cuối hàng đợi.

Xem mã sau đây:

from babyagi import BabyAGI
from langchain.docstore import InMemoryDocstore
import faiss
# Set temperatur=0 to generate the most frequent words, instead of more “poetically free” behavior.
new_query = """
What happened to the First Republic Bank? Will the FED take the same action as it did on SVB's failure? """
# Enable verbose logging and use a fixed embedding size.
verbose = True
embedding_size = 1536 # Using FAISS vector cluster for vectore store
index = faiss.IndexFlatL2(embedding_size)
vectorstore = FAISS(llm_embeddings.embed_query, index, InMemoryDocstore({}), {}) # Choose 1 iteration for demo and 1>N>10 for real. If None, it will loop indefinitely
max_iterations: Optional[int] = 2 # Call bayagi class for task automation
baby_agi = BabyAGI.from_llm(
llm=llm_embedding, vectorstore=vectorstore, verbose=verbose, max_iterations=max_iterations<br />) response = baby_agi({"objective": new_query})

Hãy xem xét các nhiệm vụ được thu thập và kết quả của chúng từ một lần lặp duy nhất, được sử dụng cho mục đích trình diễn, để hoàn thành mục tiêu theo yêu cầu của người dùng. BabyAGI hoạt động thông qua một chu trình liên tục gồm các bước sau:

  1. Một tác nhân tạo nhiệm vụ xây dựng một nhiệm vụ mới.
  2. Nhiệm vụ mới được đưa vào hàng đợi nhiệm vụ.
  3. Tác nhân ưu tiên nhiệm vụ thiết lập trình tự trong đó các nhiệm vụ sẽ được giải quyết.
  4. Tác nhân chạy hoàn thành nhiệm vụ.
  5. Kết quả nhiệm vụ được lưu trong bộ nhớ.
  6. Chu kỳ lặp lại.

Quá trình lặp đi lặp lại này cho phép BabyAGI học hỏi và phát triển theo thời gian. Khi hoàn thành thành công số lượng nhiệm vụ ngày càng tăng, kiến ​​thức và sự hiểu biết của BabyAGI về thế giới sẽ mở rộng. Do đó, nó có thể tạo và chạy hiệu quả các tác vụ phức tạp và nâng cao hơn. Bằng cách tăng số lần lặp lại, bạn có thể nâng cao kết quả thông qua việc sắp xếp lại danh sách nhiệm vụ, trong đó tập trung vào mục tiêu và kết quả của các nhiệm vụ trước đó, cuối cùng mang lại phản hồi thích hợp và chính xác hơn.

Xem đầu ra ví dụ sau:

*****TASK LIST*****
1: Make a todo list
*****NEXT TASK*****
1: Make a todo list
> Entering new AgentExecutor chain...
Thought: I need to research the First Republic Bank and the FED's action
Action: Search
Action Input: What happened to the First Republic Bank? Will the FED take the same action as it did on SVB's failure?
Observation: First Republic's failure was due to a run on deposits following the collapse of Silicon Valley Bank and Signature Bank. JPMorgan Chase acquired
First Republic Bank on May 1, 2023. If you had insured or uninsured money in First Republic accounts, your funds are safe and now managed by JPMorgan Chase.
Thought: I need to research the FED's action on SVB's failure
Action: Search
Action Input: What action did the FED take on SVB's failure?
Observation: The Hutchins Center explains how the Federal Reserve has responded to the March 2023 failures of Silicon Valley Bank and Signature Bank.
Thought: I now know the final answer
Final Answer: The FED responded to the March 2023 failures of Silicon Valley Bank and <br />Signature Bank by providing liquidity to the banking system. JPMorgan Chase acquired First Republic Bank on May 1, 2023, and if you had insured or uninsured money in First Republic accounts, your funds are safe and now managed by JPMorgan Chase.
> Finished chain.
*****TASK RESULT*****
The Federal Reserve responded to the March 2023 failures of Silicon Valley Bank and Signature Bank by providing liquidity to the banking system. It is unclear what action the FED will take in response to the failure of First Republic Bank. ***TASK LIST*** 2: Research the timeline of First Republic Bank's failure.
3: Analyze the Federal Reserve's response to the failure of Silicon Valley Bank and Signature Bank.
4: Compare the Federal Reserve's response to the failure of Silicon Valley Bank and Signature Bank to the Federal Reserve's response to the failure of First Republic Bank.
5: Investigate the potential implications of the Federal Reserve's response to the failure of First Republic Bank.
6: Identify any potential risks associated with the Federal Reserve's response to the failure of First Republic Bank.<br />*****NEXT TASK***** 2: Research the timeline of First Republic Bank's failure. > Entering new AgentExecutor chain...
Will the FED take the same action as it did on SVB's failure?
Thought: I should search for information about the timeline of First Republic Bank's failure and the FED's action on SVB's failure.
Action: Search
Action Input: Timeline of First Republic Bank's failure and FED's action on SVB's failure
Observation: March 20: The FDIC decides to break up SVB and hold two separate auctions for its traditional deposits unit and its private bank after failing ...
Thought: I should look for more information about the FED's action on SVB's failure.
Action: Search
Action Input: FED's action on SVB's failure
Observation: The Fed blamed failures on mismanagement and supervisory missteps, compounded by a dose of social media frenzy.
Thought: I now know the final answer.
Final Answer: The FED is likely to take similar action on First Republic Bank's failure as it did on SVB's failure, which was to break up the bank and hold two separate auctions for its traditional deposits unit and its private bank.</p><p>&gt; Finished chain. *****TASK RESULT*****
The FED responded to the March 2023 failures of ilicon Valley Bank and Signature Bank by providing liquidity to the banking system. JPMorgan Chase acquired First Republic Bank on May 1, 2023, and if you had insured or uninsured money in First Republic accounts, your funds are safe and now managed by JPMorgan Chase.*****TASK ENDING*****

Với BabyAGI để tự động hóa tác vụ, hệ thống IDP hướng dẫn đối thoại đã thể hiện tính hiệu quả của nó bằng cách vượt ra ngoài ngữ cảnh của tài liệu gốc để giải quyết truy vấn của người dùng về các hành động tiềm năng của Cục Dự trữ Liên bang liên quan đến sự thất bại của Ngân hàng Đệ nhất Cộng hòa, xảy ra vào cuối tháng 2023 năm 1, XNUMX tháng sau công bố mẫu, so với sự thất bại của SVB. Để đạt được điều này, hệ thống đã tạo danh sách việc cần làm và hoàn thành các nhiệm vụ theo trình tự. Nó đã điều tra các tình huống xung quanh sự thất bại của Ngân hàng Đệ nhất Cộng hòa, xác định chính xác những rủi ro tiềm ẩn gắn liền với phản ứng của Cục Dự trữ Liên bang và so sánh nó với phản ứng đối với sự thất bại của SVB.

Mặc dù BabyAGI vẫn là một công việc đang được tiến hành, nhưng nó hứa hẹn sẽ cách mạng hóa các tương tác máy móc, tư duy sáng tạo và giải quyết vấn đề. Khi quá trình học hỏi và nâng cao của BabyAGI tiếp tục diễn ra, nó sẽ có khả năng tạo ra các phản hồi chính xác, sâu sắc và sáng tạo hơn. Bằng cách trao quyền cho máy móc học hỏi và phát triển một cách tự động, BabyAGI có thể tạo điều kiện hỗ trợ chúng trong nhiều loại nhiệm vụ, từ công việc vặt thông thường đến giải quyết vấn đề phức tạp.

Hạn chế và hạn chế

IDP hướng dẫn đối thoại đưa ra một cách tiếp cận đầy hứa hẹn để nâng cao hiệu quả và hiệu quả của việc phân tích và trích xuất tài liệu. Tuy nhiên, chúng ta phải thừa nhận những hạn chế và hạn chế hiện tại của nó, chẳng hạn như nhu cầu tránh sai lệch dữ liệu, giảm thiểu ảo giác, thách thức xử lý ngôn ngữ phức tạp và mơ hồ cũng như khó khăn trong việc hiểu ngữ cảnh hoặc duy trì sự mạch lạc trong các cuộc hội thoại dài hơn.

Ngoài ra, điều quan trọng là phải xem xét sự nhầm lẫn và ảo giác trong các phản ứng do AI tạo ra, điều này có thể dẫn đến việc tạo ra thông tin không chính xác hoặc bịa đặt. Để giải quyết những thách thức này, các phát triển đang diễn ra đang tập trung vào việc tinh chỉnh các LLM có khả năng hiểu ngôn ngữ tự nhiên tốt hơn, kết hợp kiến ​​thức theo miền cụ thể và phát triển các mô hình nhận biết ngữ cảnh mạnh mẽ hơn. Xây dựng LLM từ đầu có thể tốn kém và tốn thời gian; tuy nhiên, bạn có thể sử dụng một số chiến lược để cải thiện các mô hình hiện có:

  • Tinh chỉnh LLM được đào tạo trước trên các miền cụ thể để có kết quả đầu ra chính xác và phù hợp hơn
  • Tích hợp các nguồn dữ liệu ngoài được biết là an toàn trong quá trình suy luận để nâng cao hiểu biết theo ngữ cảnh
  • Thiết kế lời nhắc tốt hơn để gợi ra phản hồi chính xác hơn từ mô hình
  • Sử dụng các mô hình tập hợp để kết hợp các đầu ra từ nhiều LLM, tính trung bình các lỗi và giảm thiểu khả năng ảo giác
  • Xây dựng các lan can để ngăn các mô hình đi lạc vào các khu vực không mong muốn trong khi vẫn đảm bảo các ứng dụng phản hồi với thông tin chính xác và phù hợp
  • Tiến hành tinh chỉnh có giám sát với phản hồi của con người, tinh chỉnh lặp đi lặp lại mô hình để tăng độ chính xác và giảm ảo giác.

Bằng cách áp dụng các phương pháp này, các phản hồi do AI tạo ra có thể trở nên đáng tin cậy và có giá trị hơn.

Tác nhân tự trị theo nhiệm vụ mang lại tiềm năng đáng kể trên các ứng dụng khác nhau, nhưng điều quan trọng là phải xem xét các rủi ro chính trước khi áp dụng công nghệ. Những rủi ro này bao gồm:

  • Vi phạm quyền riêng tư và bảo mật dữ liệu do phụ thuộc vào nhà cung cấp LLM đã chọn và vectorDB
  • Mối quan tâm về đạo đức phát sinh từ việc tạo nội dung thiên vị hoặc có hại
  • Sự phụ thuộc vào độ chính xác của mô hình, có thể dẫn đến việc hoàn thành nhiệm vụ không hiệu quả hoặc kết quả không mong muốn
  • Quá tải hệ thống và các vấn đề về khả năng mở rộng nếu quá trình tạo tác vụ vượt quá thời gian hoàn thành, yêu cầu trình tự tác vụ phù hợp và quản lý song song
  • Giải thích sai về mức độ ưu tiên của nhiệm vụ dựa trên sự hiểu biết của LLM về tầm quan trọng của nhiệm vụ
  • Tính xác thực của dữ liệu nhận được từ web

Giải quyết những rủi ro này là rất quan trọng để ứng dụng thành công và có trách nhiệm, cho phép chúng tôi tối đa hóa lợi ích của các mô hình ngôn ngữ do AI cung cấp đồng thời giảm thiểu rủi ro tiềm ẩn.

Kết luận

Giải pháp hướng dẫn đối thoại cho IDP trình bày một cách tiếp cận đột phá để xử lý tài liệu bằng cách tích hợp OCR, nhận dạng giọng nói tự động, LLM, tự động hóa tác vụ và các nguồn dữ liệu bên ngoài. Giải pháp toàn diện này cho phép các doanh nghiệp hợp lý hóa quy trình xử lý tài liệu của họ, giúp chúng hoạt động hiệu quả và trực quan hơn. Bằng cách kết hợp các công nghệ tiên tiến này, các tổ chức không chỉ có thể cách mạng hóa quy trình quản lý tài liệu của mình mà còn tăng cường khả năng ra quyết định và tăng đáng kể năng suất tổng thể. Giải pháp này cung cấp một phương tiện đổi mới và sáng tạo để các doanh nghiệp khai thác toàn bộ tiềm năng của quy trình làm việc với tài liệu của họ, cuối cùng là thúc đẩy tăng trưởng và thành công trong kỷ nguyên của trí tuệ nhân tạo AI. tham khảo Khởi động SageMaker cho các giải pháp khác và nền tảng Amazon cho các mô hình AI tổng quát bổ sung.

Các tác giả xin chân thành bày tỏ lòng biết ơn tới Ryan Kilpatrick, Ashish Lal và Kristine Pearce vì những đóng góp và ý kiến ​​quý báu của họ cho tác phẩm này. Họ cũng xác nhận Clay Elmore về mẫu mã được cung cấp trên Github.


Giới thiệu về tác giả

Alfred Shen là Chuyên gia cao cấp về AI/ML tại AWS. Ông đã và đang làm việc tại Thung lũng Silicon, giữ các vị trí quản lý và kỹ thuật trong nhiều lĩnh vực khác nhau bao gồm chăm sóc sức khỏe, tài chính và công nghệ cao. Anh ấy là một nhà nghiên cứu AI/ML ứng dụng chuyên dụng, tập trung vào CV, NLP và đa phương thức. Tác phẩm của ông đã được giới thiệu trong các ấn phẩm như EMNLP, ICLR và Public Health.

Tiến sĩ Vivek Madan là một Nhà Khoa học Ứng dụng của nhóm Amazon SageMaker JumpStart. Ông lấy bằng Tiến sĩ tại Đại học Illinois tại Urbana-Champaign và là Nhà nghiên cứu Sau Tiến sĩ tại Georgia Tech. Anh ấy là một nhà nghiên cứu tích cực về học máy và thiết kế thuật toán và đã xuất bản các bài báo trong các hội nghị EMNLP, ICLR, COLT, FOCS và SODA.

Tiến sĩ Li Zhang là Giám đốc sản phẩm chính-Kỹ thuật cho Khởi động Amazon SageMakerCác thuật toán tích hợp sẵn của Amazon SageMaker, một dịch vụ giúp các nhà khoa học dữ liệu và những người thực hành máy học bắt đầu đào tạo và triển khai các mô hình của họ cũng như sử dụng học tăng cường với Amazon SageMaker. Công việc trước đây của anh ấy với tư cách là nhân viên nghiên cứu chính và nhà phát minh chính tại IBM Research đã giành được giải thưởng bài kiểm tra thời gian tại IEEE INFOCOM.

Tiến sĩ Trường Sa Mã là Chuyên gia AI/ML tại AWS. Cô là một nhà công nghệ với bằng Tiến sĩ Khoa học Máy tính, bằng thạc sĩ Tâm lý Giáo dục và nhiều năm kinh nghiệm về khoa học dữ liệu và tư vấn độc lập về AI/ML. Cô đam mê nghiên cứu các phương pháp tiếp cận phương pháp cho trí thông minh của máy móc và con người. Ngoài công việc, cô ấy thích đi bộ đường dài, nấu ăn, tìm kiếm thực phẩm, cố vấn cho sinh viên đại học về tinh thần kinh doanh và dành thời gian cho bạn bè và gia đình.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?