Công nghệ embedding đang bị đánh giá thấp
(technicalwriting.dev)- Machine learning (ML) có tiềm năng thúc đẩy trình độ tiên tiến trong việc viết tài liệu kỹ thuật
- Không phải các mô hình sinh văn bản như Claude, Gemini, LLaMa hay GPT, mà embedding mới có thể là công nghệ ML tạo ra tác động lớn nhất đối với việc viết tài liệu kỹ thuật
- Embedding không hẳn là mới, nhưng trong vài năm gần đây đã trở nên dễ tiếp cận hơn nhiều
- Embedding mang lại cho technical writer khả năng khám phá các kết nối giữa những văn bản ở quy mô trước đây là bất khả thi
Xây dựng trực giác về embedding
Đầu vào và đầu ra
- Đầu vào để tạo embedding là văn bản
- Không nhất thiết lúc nào cũng phải cung cấp cùng một lượng văn bản
- Đôi khi đầu vào là một đoạn văn duy nhất, lúc khác có thể là vài mục, toàn bộ tài liệu hoặc nhiều tài liệu
- Đầu ra là một mảng số
- Nếu nhập một từ đơn lẻ, đầu ra sẽ là một mảng số như
[-0.02387, -0.0353, 0.0456] - Nếu nhập cả một tập tài liệu, đầu ra sẽ có dạng như
[0.0451, -0.0154, 0.0020]
- Nếu nhập một từ đơn lẻ, đầu ra sẽ là một mảng số như
- Bất kể kích thước đầu vào là bao nhiêu, bạn luôn nhận được cùng một số lượng con số
- Điều này cho phép có được một cách để so sánh toán học bất kỳ hai đoạn văn bản nào với nhau
- Trong embedding thực tế, mảng sẽ có hàng trăm hoặc hàng nghìn con số chứ không chỉ 3
Cách tạo embedding
- Các nhà cung cấp dịch vụ lớn giúp việc tạo embedding trở nên dễ dàng
- Mô hình
text-embedding-004của Gemini trả về mảng gồm 768 số, còn mô hìnhvoyage-3của Voyage AI trả về mảng gồm 1024 số - Embedding từ các nhà cung cấp khác nhau không tương thích với nhau
Có đắt không?
Không.
Có hại cho môi trường không?
- Việc tạo embedding ít tốn tài nguyên tính toán hơn so với sinh văn bản
- Tuy nhiên, các mô hình embedding dường như được huấn luyện theo cách tương tự các mô hình sinh văn bản, điều này đồng nghĩa với việc tiêu thụ năng lượng
- Khi biết thêm, phần này sẽ được cập nhật
Mô hình nào là tốt nhất?
- Lý tưởng nhất là mô hình embedding có thể chấp nhận lượng văn bản đầu vào rất lớn để tạo embedding cho toàn bộ một trang
- Tính đến tháng 10/2024,
voyage-3có vẻ nổi trội nhất về kích thước đầu vào - Giới hạn đầu vào dựa trên token, và mỗi dịch vụ tính token khác nhau nên không nên quá đặt nặng vào các con số chính xác
Một không gian đa chiều rất kỳ lạ
- Các con số trong embedding có ý nghĩa gì?
- Hãy nghĩ về tọa độ trên bản đồ
- Embedding tương tự như một điểm trên bản đồ
- Mỗi con số trong mảng embedding là một chiều, tương tự như tọa độ X và Y
- Nếu mô hình embedding trả về một mảng gồm 1000 số, điều đó cho biết vị trí mà văn bản tồn tại trong không gian 1000 chiều xét theo quan hệ ngữ nghĩa tương đối với mọi văn bản khác
- Khi so sánh khoảng cách giữa hai embedding, điều thực sự đang làm là xác định hai văn bản gần hay xa nhau đến mức nào về mặt ngữ nghĩa
- Khái niệm đặt các mục vào một không gian đa chiều như vậy, nơi các mục liên quan tụ lại gần nhau thành cụm, được gọi là latent space
- Ví dụ nổi tiếng trong bài báo Word2vec:
- embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
- Embedding có thể biểu diễn các quan hệ ngữ nghĩa theo cách con người cảm thấy trực quan
- Embedding hoạt động trong hàng trăm hoặc hàng nghìn chiều, nên một sinh vật 3 chiều không thể hình dung “khoảng cách” trong 1000 chiều trông như thế nào
- Không thể biết mỗi chiều đại diện cho điều gì
So sánh embedding
- Sau khi tạo embedding, cần một dạng “cơ sở dữ liệu” nào đó để theo dõi mỗi embedding được gắn với văn bản nào
- Có rất nhiều đại số tuyến tính liên quan, và các thư viện toán học và ML như NumPy và scikit-learn có thể xử lý phần nặng nhất
Ứng dụng
- Hãy trực tiếp xem embedding có thể thúc đẩy trình độ tiên tiến trong việc viết tài liệu kỹ thuật như thế nào
Hãy để hàng nghìn embedding nở rộ
- Với tư cách là chủ sở hữu một trang tài liệu, có thể tự hỏi liệu có nên tự do cung cấp embedding cho nội dung của mình cho bất kỳ ai muốn dùng thông qua REST API hoặc well-known URI hay không
- Không biết cộng đồng có thể xây dựng những điều thú vị nào với loại dữ liệu tài liệu bổ sung này
Kết luận
- Nếu 3 năm trước ai đó hỏi không gian 768 chiều là gì, có lẽ tôi sẽ nói đó chỉ là một khái niệm trừu tượng mà các nhà vật lý và toán học cần đến vì những lý do khó hiểu
- Embedding mang lại lý do để suy nghĩ sâu hơn về ý tưởng này và thực sự áp dụng nó vào công việc của chính mình
- Những cải thiện về quy mô trong năng lực bảo trì tài liệu vẫn có thể đạt được, và có lẽ sẽ cần những chiều với bậc lớn hơn nữa!
Phụ lục
Triển khai
- Tạo một tiện ích mở rộng Sphinx để tạo embedding cho từng tài liệu
- Khi quá trình build hoàn tất, dữ liệu embedding được lưu vào
embeddings.json - Bước cuối cùng là tìm hàng xóm gần nhất cho mỗi tài liệu
- Nền tảng đại số tuyến tính được học từ Linear Algebra for Machine Learning and Data Science
Kết quả
- Cách diễn giải dữ liệu:
Targetlà trang hiện đang được xemNeighborsẽ là trang được đề xuất
- Có thể thấy trong bảng kết quả rằng các trang liên quan đang đề xuất lẫn nhau
Ý kiến của GN⁺
- Công nghệ embedding có vẻ sẽ rất hữu ích trong lĩnh vực viết tài liệu kỹ thuật để xác định mối liên hệ giữa các nội dung và khám phá kết nối giữa các tài liệu. Điều này sẽ càng hữu dụng hơn trong các dự án tài liệu quy mô lớn phải xử lý khối lượng tài liệu đồ sộ
- Tuy nhiên, các mô hình embedding vẫn tiêu thụ nhiều năng lượng và cũng có những lo ngại về đạo đức, vì vậy có vẻ cần cân nhắc thận trọng khi triển khai. Cần đi kèm nỗ lực giảm thiểu tác động môi trường của việc tạo embedding, cùng với việc bảo đảm đủ tài nguyên tính toán
- Việc cung cấp embedding từ trang tài liệu qua API có thể là một phương án tốt để thúc đẩy các cách sử dụng sáng tạo trong cộng đồng nhà phát triển. Tuy nhiên, cần đi trước bằng các biện pháp đối phó với vấn đề bảo mật dữ liệu và quyền riêng tư
- Các startup hay sáng kiến trong lĩnh vực tài liệu kỹ thuật rất đáng để chủ động áp dụng công nghệ embedding. Nó có thể cung cấp những tính năng khác biệt so với các giải pháp quản lý tài liệu hiện có và mang lại trải nghiệm thân thiện với con người hơn trong tìm kiếm, gợi ý, v.v.
- Cũng đáng kỳ vọng vào các nghiên cứu ứng dụng embedding cho tóm tắt tài liệu, dịch thuật, phân loại chủ đề, v.v. Khi kết hợp công nghệ xử lý ngôn ngữ tự nhiên hiện đại với embedding, nó có thể mang đến đổi mới cho việc viết và quản lý tài liệu kỹ thuật
3 bình luận
Nhà văn viết về công nghệ haha
Khi nhìn vào embedding văn bản được sử dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên và quá trình huấn luyện của nó, tôi có cảm giác nó thật sự rất giống với quá trình con người tiếp thu và sử dụng ngôn ngữ khi gần như không biết gì về ngữ pháp. Tôi cũng nghĩ rằng, như bài viết đã nói, công nghệ này có rất nhiều tiềm năng.
Ý kiến trên Hacker News
Điều thú vị là trong AI hiện đại, embedding dường như là yếu tố duy nhất trao cho con người nhiều sức mạnh hơn. Nó giống như câu nói của Steve Jobs về "chiếc xe đạp cho tâm trí", tức là sự khuếch đại trí tuệ. Bước tiến lớn nhất về khả năng sử dụng máy tính là sự xuất hiện của tìm kiếm cục bộ nhanh và phổ quát. Tôi thường xuyên dùng tính năng "Tìm trên trang" của Firefox, đồng thời dùng search và grep hằng ngày. Embedding có thể giải quyết điểm yếu lớn nhất của tìm kiếm bằng cách cung cấp fuzzy search thực sự hữu ích
Với tư cách là chủ sở hữu một trang tài liệu, tôi tự hỏi liệu có nên cân nhắc cung cấp embedding một cách tự do thông qua REST API hoặc URI đã được biết rõ hay không. Cần phải nêu rõ đã dùng mô hình embedding nào, và cũng có câu hỏi liệu có mô hình embedding nào phù hợp với tài liệu kỹ thuật hay không
Dù có lo ngại về môi trường, tôi cho rằng quan điểm phổ biến rằng giảm sử dụng AI có thể giải quyết vấn đề khí hậu là sai. Ví dụ, nếu cấm Google Maps thì con người sẽ chọn nhầm lộ trình và tiêu tốn nhiều nhiên liệu hơn. Việc tạo tài liệu bằng embedding cũng tương tự, dùng tài nguyên tính toán lại hiệu quả hơn
Chia sẻ một trải nghiệm thú vị về cách dùng embedding trong ứng dụng web. Giải thích thông qua tài liệu hóa cách sử dụng embedding trong môi trường production
Embedding có vẻ đại diện cho mọi thứ trong chuỗi đầu vào nên trông như không có mục tiêu cụ thể. Có câu hỏi về cách giảm chiều embedding cho một ứng dụng cụ thể. Ví dụ, khi xây dựng hệ thống tìm các cuộc hội thoại hỗ trợ kỹ thuật, làm thế nào để tạo ra embedding chỉ đại diện cho nội dung cuộc trò chuyện
Vector embedding là bản tóm tắt độc nhất của tài liệu, tương tự hash code. Sẽ rất tốt nếu có một tiêu chuẩn phổ quát cho việc tạo embedding, nhưng vì mỗi mô hình AI đều khác nhau nên nó không thể có "tính bền vững" như hash code. Có vẻ có nhiều cách để tận dụng các thuật toán như độ tương đồng cosine trong cơ sở dữ liệu và các ứng dụng xử lý thông tin
Tôi nghĩ embedding đang bị đánh giá thấp. Lĩnh vực truy xuất/khám phá thông tin vẫn còn dùng khám phá dựa trên từ khóa và chưa chấp nhận công cụ hiện đại là khám phá dựa trên ngữ nghĩa. Tôi tiết kiệm thời gian bằng cách chuyển câu thành vector embedding, áp dụng phân cụm k-means rồi tóm tắt bằng ChatGPT
Có ý kiến cho rằng các technical writer đang đánh giá thấp tính hữu ích của embedding. Còn những người làm machine learning thực tế thì không đánh giá thấp nó
Có câu hỏi liệu mô hình embedding của OpenAI có hỗ trợ 8191/8192 token hay không. Việc tuyên bố ai thắng dựa trên kích thước token là gây hiểu nhầm, vì còn những yếu tố quan trọng hơn như hỗ trợ đa ngôn ngữ và độ chính xác
Có người cho rằng embedding đang bị đánh giá quá cao, và nó không phải là giải pháp vạn năng như nhiều người kỳ vọng. Nó không thay thế hoàn toàn các phương pháp đơn giản như BM25, mà chỉ cung cấp mức độ hiểu ngữ nghĩa hạn chế. Kỳ vọng quá cao khiến người ta tin rằng embedding sẽ tìm đúng chính xác thứ mình muốn, nhưng nếu không rà soát kỹ kết quả thì rất khó nhận ra sự lệch khớp