Tạo content compliance với Amazon Bedrock và ConstitutionalChaind

Tác giả: Sriharsh Adari, Chris Cocking, David Min và Stephen Garth
Ngày phát hành: 01 APR 2025
Chuyên mục: Advanced (300), Amazon Bedrock, Amazon Bedrock Guardrails, Amazon Bedrock Knowledge Bases, Amazon SageMaker, Artificial Intelligence

Generative AI đã nổi lên như một công cụ mạnh mẽ để tạo nội dung, mang lại nhiều lợi ích chính có thể nâng cao đáng kể hiệu quả và tính hiệu suất của các quy trình sản xuất nội dung như tạo tài liệu marketing, tạo hình ảnh, kiểm duyệt nội dung, v.v. Constitutional AIcơ chế phản hồi của LangGraph đại diện cho hai cách tiếp cận bổ sung để đảm bảo các hệ thống AI hoạt động có đạo đức – với Anthropic nhúng các nguyên tắc trong quá trình huấn luyện trong khi LangGraph triển khai chúng trong quá trình suy luận/thời gian chạy thông qua các cơ chế phản hồi và tự sửa lỗi. Bằng cách sử dụng Constitutional AI của LangGraph, những người tạo nội dung có thể hợp lý hóa quy trình làm việc của họ trong khi vẫn duy trì các tiêu chuẩn cao về tuân thủ do người dùng định nghĩa và tính toàn vẹn về đạo đức. Phương pháp này không chỉ giảm nhu cầu giám sát rộng rãi của con người mà còn tăng cường tính minh bạch và trách nhiệm giải trình của quy trình tạo nội dung bằng AI.

Trong bài viết này, chúng tôi khám phá các chiến lược thực tế để sử dụng Constitutional AI nhằm tạo ra nội dung tuân thủ một cách hiệu quả và nhanh chóng bằng cách sử dụng Amazon BedrockLangGraph để xây dựng ConstitutionalChain cho việc tạo nội dung nhanh chóng trong các ngành có quy định chặt chẽ như tài chính và chăm sóc sức khỏe. Mặc dù AI mang lại những lợi ích đáng kể về năng suất, việc duy trì tuân thủ các quy định nghiêm ngặt là rất quan trọng. Việc xác thực thủ công nội dung do AI tạo ra để tuân thủ quy định có thể tốn thời gian và đầy thách thức. Chúng tôi cũng cung cấp tổng quan về cách Insagic, một công ty thuộc Publicis Groupe, đã tích hợp khái niệm này vào quy trình làm việc marketing chăm sóc sức khỏe hiện có của họ bằng cách sử dụng Amazon Bedrock. Insagic là một doanh nghiệp tư vấn và cung cấp insight thế hệ mới, kết hợp dữ liệu, thiết kế và đối thoại để mang lại những insight có thể hành động và thông tin chuyển đổi cho các nhà marketing chăm sóc sức khỏe. Công ty này sử dụng chuyên môn từ các nhà khoa học dữ liệu, nhà khoa học hành vi và chiến lược gia để thúc đẩy kết quả tốt hơn trong ngành chăm sóc sức khỏe.

Hiểu về Constitutional AI

Constitutional AI được thiết kế để điều chỉnh các mô hình ngôn ngữ lớn (LLM) phù hợp với các giá trị con người và các cân nhắc về đạo đức. Nó hoạt động bằng cách tích hợp một tập hợp các quy tắc, nguyên tắc và ràng buộc được xác định trước vào kiến trúc cốt lõi và quy trình huấn luyện của LLM. Cách tiếp cận này đảm bảo rằng LLM hoạt động trong các tham số đạo đức và pháp lý được chỉ định, giống như cách một hiến pháp điều chỉnh luật pháp và hành động của một quốc gia.

Các lợi ích chính của Constitutional AI cho việc tạo nội dung bao gồm:

  • Tính phù hợp về đạo đức – Nội dung được tạo bằng Constitutional AI vốn dĩ phù hợp với các tiêu chuẩn đạo đức được xác định trước
  • Tuân thủ pháp luật – LLM được thiết kế để hoạt động trong các khuôn khổ pháp lý, giảm thiểu rủi ro tạo ra nội dung không tuân thủ
  • Tính minh bạch – Các nguyên tắc hướng dẫn quá trình ra quyết định của LLM được xác định rõ ràng và có thể được kiểm tra
  • Giảm giám sát của con người – Bằng cách nhúng các hướng dẫn đạo đức vào LLM, nhu cầu xem xét rộng rãi của con người được giảm đáng kể

Hãy cùng khám phá cách bạn có thể khai thác sức mạnh của Constitutional AI để tạo nội dung tuân thủ cho tổ chức của mình.

Tổng quan giải pháp

Đối với giải pháp này, chúng tôi sử dụng Amazon Bedrock Knowledge Bases để lưu trữ kho tài liệu chăm sóc sức khỏe. Chúng tôi áp dụng phương pháp Retrieval Augmented Generation (RAG), trước tiên truy xuất ngữ cảnh liên quan và tổng hợp câu trả lời dựa trên ngữ cảnh đã truy xuất, để tạo các bài viết dựa trên kho lưu trữ. Sau đó, chúng tôi sử dụng framework điều phối mã nguồn mở LangGraphConstitutionalChain để tạo, phê bình và xem xét các prompt trong một notebook Amazon SageMaker và phát triển một quy trình làm việc dựa trên agent để tạo nội dung tuân thủ. Sơ đồ sau minh họa kiến trúc này.

Kiến trúc giải pháp tạo nội dung tuân thủ

Việc triển khai này thể hiện một quy trình làm việc dựa trên agent tinh vi không chỉ tạo ra phản hồi dựa trên knowledge base mà còn sử dụng kỹ thuật phản hồi để kiểm tra đầu ra của nó thông qua các nguyên tắc đạo đức, cho phép nó tinh chỉnh và cải thiện đầu ra của mình. Chúng tôi tải lên một tập hợp các tài liệu về sức khỏe tâm thần mẫu vào Amazon Bedrock Knowledge Bases và sử dụng các tài liệu đó để viết một bài báo về sức khỏe tâm thần bằng cách sử dụng cách tiếp cận dựa trên RAG. Sau đó, chúng tôi định nghĩa một nguyên tắc hiến định với một nguyên tắc Đa dạng, Công bằng và Hòa nhập (DEI) tùy chỉnh, chỉ định cách phê bình và sửa đổi các phản hồi để đảm bảo tính hòa nhập.

Điều kiện tiên quyết

Để triển khai giải pháp, bạn cần các điều kiện tiên quyết sau:

Tạo một Knowledge Base của Amazon Bedrock

Để minh họa khả năng này, chúng tôi tải xuống một bài viết về sức khỏe tâm thần từ repo GitHub sau và lưu trữ nó trong Amazon S3. Sau đó, chúng tôi sử dụng Amazon Bedrock Knowledge Bases để lập chỉ mục các bài viết. Theo mặc định, Amazon Bedrock sử dụng Amazon OpenSearch Serverless làm cơ sở dữ liệu vector. Để biết hướng dẫn đầy đủ về cách tạo knowledge base của Amazon Bedrock với Amazon S3 làm nguồn dữ liệu, hãy xem Tạo knowledge base trong Amazon Bedrock Knowledge Bases.

  • Trên bảng điều khiển Amazon Bedrock, tạo một knowledge base mới.
  • Cung cấp tên cho knowledge base của bạn và tạo một IAM service role mới.
  • Chọn Amazon S3 làm nguồn dữ liệu và cung cấp S3 bucket lưu trữ bài viết về sức khỏe tâm thần.
  • Chọn Amazon Titan Text Embeddings v2 làm mô hình nhúng và OpenSearch Serverless làm vector store.
  • Chọn Create Knowledge Base.

Nhập các câu lệnh và thiết lập client Amazon Bedrock

Làm theo hướng dẫn được cung cấp trong file README trong repo GitHub. Clone repo GitHub để tạo một bản sao cục bộ. Chúng tôi khuyên bạn nên chạy mã này trong môi trường SageMaker JupyterLab. Đoạn mã sau nhập các thư viện cần thiết, bao gồm Boto3 cho các dịch vụ AWS, các thành phần LangChain và Streamlit. Nó thiết lập một client Amazon Bedrock và cấu hình mô hình Claude 3 Haiku của Anthropic với các tham số cụ thể.

import boto3
from langchain_aws import ChatBedrock
…

bedrock_runtime = boto3.client(service_name="bedrock-runtime", region_name="us-east-1")
llm = ChatBedrock(client=bedrock_runtime, model_id="anthropic.claude-3-haiku-20240307-v1:0")
…..

Định nghĩa các thành phần Constitutional AI

Tiếp theo, chúng tôi định nghĩa một lớp Critique để cấu trúc đầu ra của quá trình phê bình. Sau đó, chúng tôi tạo các prompt template cho việc phê bình và sửa đổi. Cuối cùng, chúng tôi thiết lập các chain bằng LangChain để tạo phản hồi, phê bình và sửa đổi.

# LangChain Constitutional chain migration to LangGraph

class Critique(TypedDict):
    """Generate a critique, if needed."""

    critique_needed: Annotated[bool, ..., "Whether or not a critique is needed."]
    critique: Annotated[str, ..., "If needed, the critique."]

critique_prompt = ChatPromptTemplate.from_template(
    "Critique this response according to the critique request. "
…
)

revision_prompt = ChatPromptTemplate.from_template(
    "Revise this response according to the critique and reivsion request.\n\n"
    ….
)
chain = llm | StrOutputParser()
critique_chain = critique_prompt | llm.with_structured_output(Critique)
revision_chain = revision_prompt | llm | StrOutputParser()

Định nghĩa lớp State và tham chiếu đến bộ truy xuất Amazon Bedrock Knowledge Bases

Chúng tôi định nghĩa một lớp State của LangGraph để quản lý trạng thái cuộc trò chuyện, bao gồm query, các nguyên tắc, phản hồi và phê bình:

# LangGraph State

class State(TypedDict):
    query: str
    constitutional_principles: List[ConstitutionalPrinciple]

Tiếp theo, chúng tôi thiết lập một bộ truy xuất Amazon Bedrock Knowledge Bases để trích xuất thông tin liên quan. Chúng tôi tham chiếu đến knowledge base của Amazon Bedrock đã tạo trước đó để tạo một bài viết dựa trên các tài liệu về sức khỏe tâm thần. Đảm bảo cập nhật ID knowledge base trong đoạn mã sau với knowledge base bạn đã tạo ở các bước trước:

#-----------------------------------------------------------------
# Amazon Bedrock KnowledgeBase

from langchain_aws.retrievers import AmazonKnowledgeBasesRetriever

retriever = AmazonKnowledgeBasesRetriever(
knowledge_base_id="W3NMIJXLUE", # Change it to your Knowledge base ID
…
)

Tạo các node LangGraph và một đồ thị LangGraph cùng với các nguyên tắc hiến định

Phần mã tiếp theo tích hợp điều phối quy trình làm việc dựa trên đồ thị, các nguyên tắc đạo đức và giao diện thân thiện với người dùng để tạo ra một mô hình Constitutional AI tinh vi. Sơ đồ sau minh họa quy trình làm việc.

Luồng công việc bắt đầu, tạo sinh tăng cường truy xuất, phê bình và sửa đổi, và kết thúc.

Nó sử dụng StateGraph để quản lý luồng giữa các node RAG và phê bình/sửa đổi, kết hợp một nguyên tắc DEI tùy chỉnh để hướng dẫn các phản hồi của LLM. Hệ thống được trình bày thông qua một ứng dụng Streamlit, cung cấp giao diện trò chuyện tương tác nơi người dùng có thể nhập các query và xem các phản hồi ban đầu, các phê bình và câu trả lời đã sửa đổi của LLM. Ứng dụng cũng có một thanh bên hiển thị trực quan hóa đồ thị của quy trình làm việc và mô tả nguyên tắc đạo đức được áp dụng. Cách tiếp cận toàn diện này đảm bảo rằng đầu ra của LLM không chỉ dựa trên kiến thức mà còn phù hợp về mặt đạo đức bằng cách sử dụng các nguyên tắc hiến định có thể tùy chỉnh để hướng dẫn một luồng phản hồi (phê bình và sửa đổi), tất cả trong khi vẫn duy trì trải nghiệm thân thiện với người dùng với các tính năng như quản lý lịch sử trò chuyện và tùy chọn xóa trò chuyện rõ ràng.

Ứng dụng Streamlit

Thành phần ứng dụng Streamlit của đoạn mã này tạo ra một giao diện tương tác và thân thiện với người dùng cho mô hình Constitutional AI. Nó thiết lập một bảng điều khiển bên hiển thị trực quan hóa đồ thị quy trình làm việc của LLM và cung cấp mô tả về nguyên tắc DEI đang được áp dụng. Giao diện chính có một phần trò chuyện nơi người dùng có thể nhập các query của họ và xem các phản hồi của LLM.

# ------------------------------------------------------------------------
# Streamlit App

# Clear Chat History fuction
def clear_screen():
    st.session_state.messages = [{"role": "assistant", "content": "How may I assist you today?"}]

with st.sidebar:
    st.subheader('Constitutional AI Demo')
…..
    ConstitutionalPrinciple(
        name="DEI Principle",
        critique_request="Analyze the content for any lack of diversity, equity, or inclusion. Identify specific instances where the text could be more inclusive or representative of diverse perspectives.",
        revision_request="Rewrite the content by incorporating critiques to be more diverse, equitable, and inclusive. Ensure representation of various perspectives and use inclusive language throughout."
    )
    """)
    st.button('Clear Screen', on_click=clear_screen)

# Store LLM generated responses
if "messages" not in st.session_state.keys():
    st.session_state.messages = [{"role": "assistant", "content": "How may I assist you today?"}]

# Chat Input - User Prompt 
if prompt := st.chat_input():
….

    with st.spinner(f"Generating..."):
        ….
    with st.chat_message("assistant"):
        st.markdown("**[initial response]**")
….
        st.session_state.messages.append({"role": "assistant", "content": "[revised response] " + generation['response']})

Ứng dụng duy trì lịch sử trò chuyện, hiển thị cả đầu vào của người dùng và phản hồi của LLM, bao gồm phản hồi ban đầu, bất kỳ phê bình nào được tạo ra và phản hồi đã sửa đổi cuối cùng. Mỗi bước trong quy trình của LLM đều được gắn nhãn rõ ràng và trình bày cho người dùng. Giao diện cũng bao gồm nút Clear Screen để đặt lại lịch sử trò chuyện. Khi xử lý một query, ứng dụng hiển thị một biểu tượng tải và hiển thị thời gian chạy, cung cấp tính minh bạch về hoạt động của LLM. Thiết kế UI toàn diện này cho phép người dùng tương tác với LLM trong khi quan sát cách các nguyên tắc hiến định được áp dụng để tinh chỉnh đầu ra của LLM.

Kiểm tra giải pháp bằng giao diện người dùng Streamlit

Trong ứng dụng Streamlit, khi người dùng nhập một query, ứng dụng sẽ khởi tạo quá trình bằng cách tạo và biên dịch đồ thị đã định nghĩa trước đó. Sau đó, nó truyền tải việc thực thi đồ thị này, bao gồm các bước RAG và phê bình/sửa đổi. Trong quá trình này, ứng dụng hiển thị các cập nhật theo thời gian thực cho việc thực thi của từng node, cho người dùng thấy những gì đang diễn ra phía sau. Hệ thống đo lường tổng thời gian chạy, cung cấp tính minh bạch về thời lượng xử lý. Khi hoàn tất, ứng dụng trình bày kết quả một cách có cấu trúc trong giao diện trò chuyện. Nó hiển thị phản hồi ban đầu do LLM tạo ra, tiếp theo là bất kỳ phê bình nào được đưa ra dựa trên các nguyên tắc hiến định, và cuối cùng hiển thị phản hồi đã sửa đổi kết hợp các cân nhắc đạo đức này. Cách trình bày từng bước này cho phép người dùng thấy phản hồi của LLM phát triển như thế nào thông qua quy trình Constitutional AI, từ tạo ban đầu đến tinh chỉnh đạo đức. Như đã đề cập, trong file README của GitHub, để chạy ứng dụng Streamlit, hãy sử dụng đoạn mã sau:

pip install -r requirements.txt
streamlit run main.py

Để biết chi tiết về cách sử dụng Jupyter proxy để truy cập ứng dụng Streamlit, hãy tham khảo Xây dựng ứng dụng Streamlit trong Amazon SageMaker Studio.

Sửa đổi URL Studio, thay thế lab? bằng proxy/8501/.

Giao diện trò chuyện hiển thị các bước RAG, phê bình và sửa đổi.

Cách Insagic sử dụng Constitutional AI để tạo nội dung tuân thủ

Insagic sử dụng dữ liệu y tế thực tế để giúp các thương hiệu hiểu mọi người với tư cách là bệnh nhân và bệnh nhân với tư cách là con người, cho phép họ cung cấp những insight có thể hành động trong lĩnh vực marketing chăm sóc sức khỏe. Mặc dù việc tạo ra những insight sâu sắc trong lĩnh vực y tế có thể mang lại lợi ích to lớn, nhưng điều đó phải được thực hiện với sự cân nhắc về tuân thủ và tính chất cá nhân của dữ liệu sức khỏe. Bằng cách định nghĩa các hướng dẫn liên bang là các nguyên tắc hiến định, Insagic đảm bảo rằng nội dung được cung cấp bởi generative AI tuân thủ các hướng dẫn liên bang về marketing chăm sóc sức khỏe.

Dọn dẹp

Khi bạn đã hoàn tất thử nghiệm với giải pháp này, hãy dọn dẹp các tài nguyên của bạn để tránh phát sinh chi phí AWS:

  1. Xóa sạch các S3 bucket.
  2. Xóa SageMaker notebook instance.
  3. Xóa Amazon Bedrock knowledge base.

Kết luận

Bài viết này đã trình bày cách triển khai một giải pháp generative AI tinh vi sử dụng Amazon Bedrock và LangGraph để tạo nội dung tuân thủ. Bạn cũng có thể tích hợp quy trình làm việc này để tạo phản hồi dựa trên knowledge base và áp dụng các nguyên tắc đạo đức để phê bình và sửa đổi đầu ra của nó, tất cả trong một giao diện web tương tác. Insagic đang tìm kiếm thêm nhiều cách để kết hợp điều này vào các quy trình làm việc hiện có bằng cách định nghĩa các nguyên tắc tùy chỉnh để đạt được các mục tiêu tuân thủ.

Bạn có thể mở rộng khái niệm này hơn nữa bằng cách tích hợp Amazon Bedrock Guardrails. Amazon Bedrock Guardrails và LangGraph Constitutional AI có thể tạo ra một hệ thống an toàn toàn diện bằng cách hoạt động ở các cấp độ khác nhau. Amazon Bedrock cung cấp tính năng lọc nội dung cấp API và các rào chắn an toàn, còn LangGraph triển khai các nguyên tắc hiến định trong các quy trình làm việc suy luận. Cùng nhau, chúng cho phép bảo vệ đa lớp thông qua lọc I/O, hạn chế chủ đề, ràng buộc đạo đức và các bước xác thực logic trong các ứng dụng AI.

Hãy thử giải pháp cho trường hợp sử dụng của riêng bạn và để lại phản hồi của bạn trong phần bình luận.


Về tác giả

Sriharsh Adari là Kiến trúc sư Giải pháp Cấp cao tại Amazon Web Services (AWS), nơi anh giúp khách hàng bắt đầu từ kết quả kinh doanh để phát triển các giải pháp đổi mới trên AWS. Trong nhiều năm qua, anh đã giúp nhiều khách hàng chuyển đổi nền tảng dữ liệu trên các ngành dọc khác nhau. Lĩnh vực chuyên môn cốt lõi của anh bao gồm Chiến lược Công nghệ, Phân tích Dữ liệu và Khoa học Dữ liệu. Trong thời gian rảnh rỗi, anh thích chơi thể thao, xem các chương trình TV và chơi Tabla.

David Min là Kiến trúc sư Giải pháp Bán hàng Đối tác Cấp cao tại Amazon Web Services (AWS), chuyên về Generative AI, nơi anh giúp khách hàng chuyển đổi doanh nghiệp của họ thông qua các giải pháp AI đổi mới. Trong suốt sự nghiệp của mình, David đã giúp nhiều tổ chức trên các ngành công nghiệp thu hẹp khoảng cách giữa công nghệ AI tiên tiến và các ứng dụng kinh doanh thực tế, tập trung vào sự tham gia của cấp điều hành và việc áp dụng giải pháp thành công.

Stephen Garth là Nhà khoa học Dữ liệu tại Insagic, nơi anh phát triển các giải pháp machine learning tiên tiến, bao gồm các công cụ tự động hóa được hỗ trợ bởi LLM và các mô hình phân cụm sâu để tạo ra những insight có thể hành động cho người tiêu dùng. Với nền tảng vững chắc bao gồm kỹ thuật phần mềm, khoa học dữ liệu chăm sóc sức khỏe và nghiên cứu tính toán, anh đam mê mang chuyên môn của mình về phân tích dựa trên AI và xử lý dữ liệu quy mô lớn để thúc đẩy các giải pháp.

Chris Cocking chuyên về thiết kế ứng dụng doanh nghiệp có khả năng mở rộng bằng nhiều ngôn ngữ lập trình. Với gần 20 năm kinh nghiệm, anh xuất sắc trong các môi trường LAMP và IIS, các chiến lược SEO, và gần đây nhất là thiết kế các hệ thống agentic. Ngoài công việc, Chris là một tay bass và người yêu âm nhạc cuồng nhiệt, điều này giúp nuôi dưỡng sự sáng tạo và kỹ năng giải quyết vấn đề của anh.