Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon

Nhúng đóng một vai trò quan trọng trong xử lý ngôn ngữ tự nhiên (NLP) và học máy (ML). Nhúng văn bản đề cập đến quá trình chuyển đổi văn bản thành các biểu diễn số nằm trong không gian vectơ nhiều chiều. Kỹ thuật này đạt được thông qua việc sử dụng thuật toán ML cho phép hiểu ý nghĩa và bối cảnh của dữ liệu (mối quan hệ ngữ nghĩa) cũng như tìm hiểu các mối quan hệ và mẫu phức tạp trong dữ liệu (mối quan hệ cú pháp). Bạn có thể sử dụng các biểu diễn vectơ thu được cho nhiều ứng dụng, chẳng hạn như truy xuất thông tin, phân loại văn bản, xử lý ngôn ngữ tự nhiên và nhiều ứng dụng khác.

Nhúng văn bản Amazon Titan là mô hình nhúng văn bản giúp chuyển đổi văn bản ngôn ngữ tự nhiên—bao gồm các từ, cụm từ hoặc thậm chí các tài liệu lớn—thành các biểu diễn số có thể được sử dụng để hỗ trợ các trường hợp sử dụng như tìm kiếm, cá nhân hóa và phân cụm dựa trên sự tương đồng về ngữ nghĩa.

Trong bài đăng này, chúng tôi thảo luận về mô hình Nhúng văn bản Amazon Titan, các tính năng của nó và các trường hợp sử dụng ví dụ.

Một số khái niệm chính bao gồm:

  • Biểu diễn số của văn bản (vectơ) nắm bắt ngữ nghĩa và mối quan hệ giữa các từ
  • Các phần nhúng phong phú có thể được sử dụng để so sánh độ giống nhau của văn bản
  • Việc nhúng văn bản đa ngôn ngữ có thể xác định ý nghĩa trong các ngôn ngữ khác nhau

Làm thế nào một đoạn văn bản được chuyển đổi thành một vector?

Có nhiều kỹ thuật để chuyển đổi một câu thành một vector. Một phương pháp phổ biến là sử dụng các thuật toán nhúng từ, chẳng hạn như Word2Vec, GloVe hoặc FastText, sau đó tổng hợp các từ nhúng để tạo thành biểu diễn vectơ cấp độ câu.

Một cách tiếp cận phổ biến khác là sử dụng các mô hình ngôn ngữ lớn (LLM), như BERT hoặc GPT, có thể cung cấp các phần nhúng theo ngữ cảnh cho toàn bộ câu. Những mô hình này dựa trên các kiến ​​trúc học sâu như Transformers, có thể nắm bắt thông tin theo ngữ cảnh và mối quan hệ giữa các từ trong câu một cách hiệu quả hơn.

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Tại sao chúng ta cần một mô hình nhúng?

Việc nhúng vectơ là nền tảng để LLM hiểu mức độ ngữ nghĩa của ngôn ngữ và cũng cho phép LLM thực hiện tốt các nhiệm vụ NLP xuôi dòng như phân tích tình cảm, nhận dạng thực thể được đặt tên và phân loại văn bản.

Ngoài tìm kiếm ngữ nghĩa, bạn có thể sử dụng các phần nhúng để tăng cường lời nhắc để có kết quả chính xác hơn thông qua Thế hệ tăng cường truy xuất (RAG)—nhưng để sử dụng chúng, bạn sẽ cần lưu trữ chúng trong cơ sở dữ liệu có khả năng vectơ.

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Mô hình Nhúng văn bản Amazon Titan được tối ưu hóa cho việc truy xuất văn bản nhằm hỗ trợ các trường hợp sử dụng RAG. Trước tiên, nó cho phép bạn chuyển đổi dữ liệu văn bản của mình thành biểu diễn số hoặc vectơ, sau đó sử dụng các vectơ đó để tìm kiếm chính xác các đoạn có liên quan từ cơ sở dữ liệu vectơ, cho phép bạn tận dụng tối đa dữ liệu độc quyền của mình kết hợp với các mô hình nền tảng khác.

Bởi vì Nhúng văn bản Amazon Titan là một mô hình được quản lý trên nền tảng Amazon, nó được cung cấp dưới dạng trải nghiệm hoàn toàn không có máy chủ. Bạn có thể sử dụng nó thông qua Amazon Bedrock REST API hoặc SDK AWS. Các tham số bắt buộc là văn bản mà bạn muốn tạo phần nhúng và modelID tham số, đại diện cho tên của mô hình Amazon Titan Text Embeddings. Mã sau đây là ví dụ sử dụng AWS SDK cho Python (Boto3):

import boto3
import json #Create the connection to Bedrock
bedrock = boto3.client( service_name='bedrock', region_name='us-west-2', ) bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-west-2', ) # Let's see all available Amazon Models
available_models = bedrock.list_foundation_models() for model in available_models['modelSummaries']: if 'amazon' in model['modelId']: print(model) # Define prompt and model parameters
prompt_data = """Write me a poem about apples""" body = json.dumps({ "inputText": prompt_data,
}) model_id = 'amazon.titan-embed-text-v1' #look for embeddings in the modelID
accept = 'application/json' content_type = 'application/json' # Invoke model response = bedrock_runtime.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type
) # Print response
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding') #Print the Embedding print(embedding)

Đầu ra sẽ trông giống như sau:

[-0.057861328, -0.15039062, -0.4296875, 0.31054688, ..., -0.15625]

Tham khảo Thiết lập boto3 của Amazon Bedrock để biết thêm chi tiết về cách cài đặt các gói cần thiết, hãy kết nối với Amazon Bedrock và gọi mô hình.

Các tính năng của tính năng nhúng văn bản Amazon Titan

Với tính năng nhúng văn bản Amazon Titan, bạn có thể nhập tới 8,000 mã thông báo, rất phù hợp để làm việc với các từ, cụm từ hoặc toàn bộ tài liệu tùy theo trường hợp sử dụng của bạn. người khổng lồ Amazon trả về vectơ đầu ra có kích thước 1536, mang lại độ chính xác cao, đồng thời tối ưu hóa để có kết quả có độ trễ thấp, tiết kiệm chi phí.

Tính năng nhúng văn bản của Amazon Titan hỗ trợ tạo và truy vấn các phần nhúng cho văn bản bằng hơn 25 ngôn ngữ khác nhau. Điều này có nghĩa là bạn có thể áp dụng mô hình cho các trường hợp sử dụng của mình mà không cần tạo và duy trì các mô hình riêng biệt cho từng ngôn ngữ bạn muốn hỗ trợ.

Việc đào tạo một mô hình nhúng duy nhất trên nhiều ngôn ngữ sẽ mang lại những lợi ích chính sau:

  • Phạm vi tiếp cận rộng hơn – Bằng cách hỗ trợ sẵn hơn 25 ngôn ngữ, bạn có thể mở rộng phạm vi tiếp cận của ứng dụng của mình tới người dùng và nội dung ở nhiều thị trường quốc tế.
  • Hiệu suất phù hợp – Với mô hình thống nhất bao gồm nhiều ngôn ngữ, bạn sẽ nhận được kết quả nhất quán trên các ngôn ngữ thay vì tối ưu hóa riêng lẻ cho từng ngôn ngữ. Mô hình này được đào tạo một cách toàn diện để bạn có được lợi thế trên nhiều ngôn ngữ.
  • Hỗ trợ truy vấn đa ngôn ngữ – Tính năng nhúng văn bản của Amazon Titan cho phép truy vấn nội dung nhúng văn bản bằng bất kỳ ngôn ngữ nào được hỗ trợ. Điều này mang lại sự linh hoạt để truy xuất nội dung tương tự về mặt ngữ nghĩa giữa các ngôn ngữ mà không bị giới hạn ở một ngôn ngữ duy nhất. Bạn có thể xây dựng các ứng dụng truy vấn và phân tích dữ liệu đa ngôn ngữ bằng cách sử dụng cùng một không gian nhúng thống nhất.

Theo văn bản này, các ngôn ngữ sau được hỗ trợ:

  • Tiếng Ả Rập
  • Tiếng Trung (giản thể)
  • Tiếng Trung (Phồn Thể)
  • tiếng séc
  • Tiếng Hà Lan
  • Tiếng Anh
  • Tiếng Pháp
  • Tiếng Đức
  • Hebrew
  • Tiếng Hin-ddi
  • Tiếng Ý
  • Tiếng Nhật
  • kannada
  • Tiếng Hàn
  • Malayalam
  • Marathi
  • Tiếng Ba Lan
  • Bồ Đào Nha
  • Tiếng Nga
  • Tiếng Tây Ban Nha
  • Tiếng Thụy Điển
  • Tiếng Tagalog của Philippines
  • tamil
  • telugu
  • Tiếng Thổ Nhĩ Kỳ

Sử dụng nhúng văn bản Amazon Titan với LangChain

LangChain là một framework mã nguồn mở phổ biến để làm việc với trí tuệ nhân tạo mô hình và công nghệ hỗ trợ. Nó bao gồm một Ứng dụng khách BedrockEmbeddings bao bọc Boto3 SDK một cách thuận tiện bằng một lớp trừu tượng. Các BedrockEmbeddings client cho phép bạn làm việc trực tiếp với văn bản và nội dung nhúng mà không cần biết chi tiết về cấu trúc yêu cầu hoặc phản hồi JSON. Sau đây là một ví dụ đơn giản:

from langchain.embeddings import BedrockEmbeddings #create an Amazon Titan Text Embeddings client
embeddings_client = BedrockEmbeddings() #Define the text from which to create embeddings
text = "Can you please tell me how to get to the bakery?" #Invoke the model
embedding = embeddings_client.embed_query(text) #Print response
print(embedding)

Bạn cũng có thể sử dụng LangChain BedrockEmbeddings khách hàng cùng với khách hàng Amazon Bedrock LLM để đơn giản hóa việc triển khai RAG, tìm kiếm ngữ nghĩa và các mẫu liên quan đến nội dung nhúng khác.

Các trường hợp sử dụng cho phần nhúng

Mặc dù RAG hiện là trường hợp sử dụng phổ biến nhất để làm việc với các phần nhúng, nhưng có nhiều trường hợp sử dụng khác có thể áp dụng các phần nhúng. Sau đây là một số tình huống bổ sung mà bạn có thể sử dụng phần nhúng để giải quyết các vấn đề cụ thể, một mình hoặc hợp tác với LLM:

  • Câu hỏi và trả lời – Phần nhúng có thể giúp hỗ trợ giao diện hỏi đáp thông qua mẫu RAG. Việc tạo các phần nhúng được ghép nối với cơ sở dữ liệu vectơ cho phép bạn tìm thấy sự trùng khớp chặt chẽ giữa các câu hỏi và nội dung trong kho kiến ​​thức.
  • Đề xuất được cá nhân hóa – Tương tự như câu hỏi và câu trả lời, bạn có thể sử dụng tính năng nhúng để tìm điểm đến cho kỳ nghỉ, trường đại học, phương tiện đi lại hoặc các sản phẩm khác dựa trên tiêu chí do người dùng cung cấp. Điều này có thể ở dạng một danh sách phù hợp đơn giản hoặc sau đó bạn có thể sử dụng LLM để xử lý từng đề xuất và giải thích cách đề xuất đó đáp ứng các tiêu chí của người dùng. Bạn cũng có thể sử dụng phương pháp này để tạo “10 bài viết hay nhất” tùy chỉnh cho người dùng dựa trên nhu cầu cụ thể của họ.
  • Quản lý dữ liệu – Khi bạn có các nguồn dữ liệu không ánh xạ rõ ràng với nhau nhưng lại có nội dung văn bản mô tả bản ghi dữ liệu, bạn có thể sử dụng phần nhúng để xác định các bản ghi có thể trùng lặp. Ví dụ: bạn có thể sử dụng phần nhúng để xác định các ứng cử viên trùng lặp có thể sử dụng định dạng, chữ viết tắt khác hoặc thậm chí có tên được dịch.
  • Hợp lý hóa danh mục đầu tư ứng dụng – Khi tìm cách sắp xếp các danh mục ứng dụng giữa công ty mẹ và mua lại, không phải lúc nào cũng rõ ràng nên bắt đầu tìm kiếm sự chồng chéo tiềm năng ở đâu. Chất lượng của dữ liệu quản lý cấu hình có thể là một yếu tố hạn chế và có thể khó phối hợp giữa các nhóm để hiểu được bối cảnh ứng dụng. Bằng cách sử dụng kết hợp ngữ nghĩa với các phần nhúng, chúng tôi có thể phân tích nhanh trên các danh mục ứng dụng để xác định các ứng dụng có tiềm năng cao để hợp lý hóa.
  • Nhóm nội dung – Bạn có thể sử dụng phần nhúng để giúp tạo điều kiện thuận lợi cho việc nhóm nội dung tương tự thành các danh mục mà bạn có thể không biết trước. Ví dụ: giả sử bạn có một bộ sưu tập email của khách hàng hoặc các bài đánh giá sản phẩm trực tuyến. Bạn có thể tạo các phần nhúng cho từng mục, sau đó chạy các phần nhúng đó thông qua k-có nghĩa là phân cụm để xác định các nhóm hợp lý về mối quan tâm của khách hàng, khen ngợi hoặc phàn nàn về sản phẩm hoặc các chủ đề khác. Sau đó, bạn có thể tạo các bản tóm tắt tập trung từ nội dung của các nhóm đó bằng LLM.

Ví dụ về tìm kiếm ngữ nghĩa

Trong của chúng tôi ví dụ trên GitHub, chúng tôi trình diễn một ứng dụng tìm kiếm nội dung nhúng đơn giản với Amazon Titan Text Embeddings, LangChain và Streamlit.

Ví dụ này khớp truy vấn của người dùng với các mục nhập gần nhất trong cơ sở dữ liệu vectơ trong bộ nhớ. Sau đó chúng tôi hiển thị những kết quả phù hợp đó trực tiếp trong giao diện người dùng. Điều này có thể hữu ích nếu bạn muốn khắc phục sự cố ứng dụng RAG hoặc đánh giá trực tiếp mô hình nhúng.

Để đơn giản, chúng tôi sử dụng trong bộ nhớ THẤT ​​BẠI cơ sở dữ liệu để lưu trữ và tìm kiếm các vectơ nhúng. Trong kịch bản thế giới thực ở quy mô lớn, bạn có thể sẽ muốn sử dụng kho lưu trữ dữ liệu liên tục như công cụ vector cho Amazon OpenSearch Serverless hoặc là pgvector phần mở rộng cho PostgreSQL.

Hãy thử một vài lời nhắc từ ứng dụng web bằng các ngôn ngữ khác nhau, chẳng hạn như sau:

  • Làm cách nào tôi có thể theo dõi việc sử dụng của mình?
  • Làm cách nào tôi có thể tùy chỉnh các mô hình?
  • Tôi có thể sử dụng ngôn ngữ lập trình nào?
  • Bình luận mes données sont-elles sécurisées ?
  • 私のデータはどのように保護されていますか?
  • Những điều cần thiết của mô hình được cung cấp cho Bedrock?
  • Tại khu vực Welchen này có phải là phiên bản Amazon Bedrock không?
  • 有哪些级别的支持?

Lưu ý rằng mặc dù tài liệu nguồn bằng tiếng Anh nhưng các truy vấn bằng các ngôn ngữ khác vẫn khớp với các mục nhập có liên quan.

Kết luận

Khả năng tạo văn bản của các mô hình nền tảng rất thú vị, nhưng điều quan trọng cần nhớ là hiểu văn bản, tìm nội dung có liên quan từ khối kiến ​​thức và tạo kết nối giữa các đoạn văn là rất quan trọng để đạt được toàn bộ giá trị của AI tạo ra. Chúng ta sẽ tiếp tục thấy các trường hợp sử dụng mới và thú vị cho tính năng nhúng xuất hiện trong những năm tới khi các mô hình này tiếp tục được cải thiện.

Các bước tiếp theo

Bạn có thể tìm thấy các ví dụ bổ sung về phần nhúng dưới dạng sổ ghi chép hoặc ứng dụng demo trong các hội thảo sau:


Về các tác giả

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Jason Stehle là Kiến trúc sư giải pháp cấp cao tại AWS, có trụ sở tại khu vực New England. Anh làm việc với khách hàng để điều chỉnh khả năng của AWS phù hợp với những thách thức kinh doanh lớn nhất của họ. Ngoài giờ làm việc, anh dành thời gian xây dựng mọi thứ và xem phim truyện tranh cùng gia đình.

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Nitin Eusebius là Kiến trúc sư giải pháp doanh nghiệp cấp cao tại AWS, có kinh nghiệm về Kỹ thuật phần mềm, Kiến trúc doanh nghiệp và AI/ML. Anh ấy rất đam mê khám phá các khả năng của AI có thể tạo ra. Anh cộng tác với khách hàng để giúp họ xây dựng các ứng dụng có kiến ​​trúc tốt trên nền tảng AWS và tận tâm giải quyết các thách thức công nghệ cũng như hỗ trợ hành trình đám mây của họ.

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Raj Pathak là Kiến trúc sư Giải pháp Chính và Cố vấn Kỹ thuật cho các công ty lớn trong Fortune 50 và các tổ chức dịch vụ tài chính cỡ vừa (FSI) trên khắp Canada và Hoa Kỳ. Anh ấy chuyên về các ứng dụng học máy như AI tổng quát, xử lý ngôn ngữ tự nhiên, xử lý tài liệu thông minh và MLOps.

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Mani Khanuja là Trưởng nhóm công nghệ – Chuyên gia AI sáng tạo, tác giả cuốn sách – Học máy ứng dụng và tính toán hiệu năng cao trên AWS, đồng thời là thành viên Ban Giám đốc dành cho Phụ nữ trong Ban Tổ chức Giáo dục Sản xuất. Cô lãnh đạo các dự án học máy (ML) trong nhiều lĩnh vực khác nhau như thị giác máy tính, xử lý ngôn ngữ tự nhiên và AI tổng quát. Cô giúp khách hàng xây dựng, đào tạo và triển khai các mô hình máy học lớn trên quy mô lớn. Cô phát biểu trong các hội nghị nội bộ và bên ngoài như re:Invent, Women in Manufacturing West, hội thảo trực tuyến trên YouTube và GHC 23. Khi rảnh rỗi, cô thích chạy bộ dài dọc bãi biển.

Bắt đầu với tính năng nhúng văn bản Amazon Titan trong Amazon Bedrock | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Đánh dấu Roy là Kiến trúc sư máy học chính của AWS, giúp khách hàng thiết kế và xây dựng các giải pháp AI/ML. Công việc của Mark bao gồm nhiều trường hợp sử dụng ML, với mối quan tâm chính là thị giác máy tính, học sâu và mở rộng quy mô ML trên toàn doanh nghiệp. Ông đã giúp các công ty trong nhiều ngành công nghiệp, bao gồm bảo hiểm, dịch vụ tài chính, truyền thông và giải trí, chăm sóc sức khỏe, tiện ích và sản xuất. Mark có sáu Chứng nhận AWS, bao gồm cả Chứng nhận Chuyên môn ML. Trước khi gia nhập AWS, Mark là kiến ​​trúc sư, nhà phát triển và lãnh đạo công nghệ trong hơn 25 năm, trong đó có 19 năm làm việc trong lĩnh vực dịch vụ tài chính.

Dấu thời gian:

Thêm từ Học máy AWS