LangChain English: LCEL and RAG Pipeline Vocabulary (англійською)

Вивчайте англійську лексику, яку використовують у розробці LangChain — ланцюги LCEL, конвеєри RAG, пошукові засоби, пам’ ять і лексику агентів з поясненнями у професійному контексті.

Introduction

LangChain є найбільш широко використовуваним фреймворком для створення LLM-заснованих застосунків на Python. Він розробив свій власний словник, і багато з цього словника стало стандартом у більш широкому інженерному співтоваристві LLM. Якщо ви працюєте над системою командного створення RAG, агентами або конвеєрами LLM, ви зустрінете такі терміни, як LCEL, retrievers, chains і memory у повсякденних обговореннях. Зрозуміти, як інженери використовують ці терміни, допоможе вам безпечно робити внесок у перегляд коду, архітектурні документи і технічні обговорення.

LCEL: Мова виразів LangChain

LCEL (вимовляється як окремі літери: L-C-E-L) є декларативним способом компонування трубопроводів за допомогою оператора труби. Інженери описують це такими фразами:

  • «Ми складаємо ланцюг за допомогою LCEL» — побудувати конвеєр, з’єднавши компоненти з оператором |
  • «Ланці ліниві» — ланцюги LCEL не виконуються, поки ви не викликаєте .invoke(), .stream(), або .batch()
  • «Ми направляємо пошуковик в команду, а потім в модель» — описуючи потік даних через конвеєр
  • «LCEL дає нам потокове відтворення і асинхронну підтримку з коробки» — спільна заявлена перевага

Метафора труби тут дуже сильна. Інженери кажуть «ми трубимо», коли описують дані, що протікають від одного компонента до іншого. Типовий опис: «Ми передаємо запит через пошуковий засіб, поєднуємо отримані документи з запитом у шаблоні запитів, передаємо його в модель і передаємо вивід через рядковий аналізатор»

Слово ** runable ** є важливим у LCEL. Кожен компонент в ланцюзі LCEL реалізує інтерфейс Runnable, що означає, що його можна викликати, передавати потік і однорідно роздавати.

Підтримка RAID

RAG (Retrieval Augmented Generation) є одним з найпоширеніших випадків використання LangChain. Словниковий запас є обширним і важливим:

  • ** retriever ** — компонент, який отримує відповідні документи за запитом; « ми використовуємо векторний запит, підтримуваний Chroma »
  • ** векторний магазин ** — база даних, у якій зберігаються вбудовані документи для семантично пошукових цілей
  • ** embed ** — перетворити текст на числовий вектор; « ми вбудовуємо документи перед їх індексуванням »
  • chunk — сегмент більшого документа; « ми розділили PDF на шматки по 512 токенів з перекриванням по 50 токенів »
  • ** перекриття ** — скільки спільного має кінець одного шматка і початок наступного шматка; зменшує втрати інформації на межах
  • ** rerank ** — другий етап впорядкування отриманих документів за відповідністю; « ми змінили ранжування перших 20 результатів, щоб отримати найкращі 5 »
  • ** context window stuffing ** — вставлення отриманих документів у контекст LLM; « нам потрібно обрізати шматки, щоб уникнути переповнення контекстного вікна »

Інженери кажуть: «Наш конвеєр RAG вставляє запит користувача, отримує 5 найсхожіших шматків з векторного магазину, вставляє їх в запит як контекст і запитує у моделі відповідь, засновану тільки на наданому контексті»

Пам’ять і держава

LangChain надає компоненти пам’ яті для зберігання історії розмов. Словник:

  • ** пам’ ять розмов ** — зберігає минулі обміни, щоб надати контекст моделі з попередніх ходів
  • «Ми обрізаємо пам’ять до останніх N обмінів» — уникайте перевищення контекстного вікна
  • «Пам’ять вводиться в запит» — історія розмови форматується і додається до системного або людського повідомлення
  • ** stateless ** — ланцюг без пам’ яті, що обробляє кожен виклик незалежно; « цей ланцюг питань і відповідей не має стану — відповідь на кожне питання надається незалежно »

Агентів і інструментів

Агентами LangChain використовуються LLM для вирішення, які інструменти викликати. Словник:

  • agent — LLM, який спостерігає за контекстом, роздумує над ним і вибирає інструменти для виклику
  • ** tool ** — функція, яку може викликати агент, з назвою і описом
  • ** agent executor ** — цикл виконання, який викликає агента і виконує обрані ним інструменти
  • «Агент вирішує, який інструмент використовувати» — описує шаблон ReAct
  • «Ми даємо агенту блокнот» — проміжні кроки обґрунтування, видимі під час виконання агента
  • ** final answer ** — відповідь агента після завершення його обґрунтування і викликів інструментів

Ключовий словник

TermDefinition
LCELLangChain Expression Language, a declarative syntax for composing pipelines
RunnableThe base interface that all LCEL components implement
retrieverA component that fetches relevant documents for a given query
embedConvert text to a numerical vector for semantic similarity search
chunkA segment of a document, produced by a text splitter
overlapShared content between adjacent chunks to preserve context at boundaries
rerankA second-pass relevance sorting of retrieved documents
RAGRetrieval Augmented Generation — grounding LLM responses in retrieved documents
agentAn LLM that selects and calls tools to complete a task
agent executorThe loop that runs an agent and handles tool calls

Практичні поради

  1. ** Накресліть ваш конвеєр RAG у вигляді діаграми і опишіть його англійською мовою. ** Вправляйтеся у тому, щоб сказати: « Запит користувача вбудовано, передано до програми отримання, яка повертає перші п’ ять шматків зі сховища векторів. Частини і початковий запит буде відформатовано у шаблон підказки, який буде надіслано до моделі. Відповідь моделі розбирається і повертається користувачеві.»

  2. ** Прочитайте « Як- зробити » LangChain англійською мовою. ** Вони практичні, добре написані і використовують послідовний словник. Зверніть увагу, як вони описують склад ланцюга з оператором труби.

  3. ** Використовуйте « пошук », а не « пошук ». ** Інженери, які знають LangChain, кажуть « ми використовуємо пошук », а не « ми шукаємо у базі даних ». Використання правильної назви абстракції свідчить про знайомство з платформою.

  4. ** Практика пояснення стратегії комбінування. ** Поширена тема інтерв’ю та обговорення архітектури: “Більші шматки надають більше контексту, але можуть містити незначну інформацію. Менші шматки є більш точним, але можуть втратити контекст. Ми використовуємо перекриття для зменшення втрати інформації на межах»

Conclusion

Словниковий запас LangChain — LCEL, retriever, chunk, embed, RAG, agent — став стандартом у інженерному співтоваристві LLM. Отримання знань про ці терміни допоможе вам читати документацію, розуміти перегляд коду і писати документацію з архітектурою з більшою ясністю. Оскільки LLM-застосунки переходять від прототипів до виробництва, точне спілкування про компоненти трубопроводу стає все більш важливим для вирівнювання команди і ефективного зневадження.

Навигація Nuance: Common Phrases in LangChain Discussions (англійською)

Будьмо чесними - навіть досвідчені розробники іноді натякають на точну мову, коли обговорюють складні системи ШІ, такі як ті, що побудовані з LangChain. Це не просто про те, щоб знати визначення таких термінів, як “RAG pipeline” або “LCEL chain”; це про розуміння того, як вони використовуються в розмовах, перегляді коду і документації. Ключовою частиною освоєння професійної англійської мови є розпізнавання тонких відмінностей у фразуваннях, які можуть кардинально змінити значення і вплинути на співпрацю.

Одне з найчастіших джерел плутанини виникає при обговоренні * стану * компонента. Ви можете почути, як хтось каже: « Цей засіб пошуку не повертає жодних відповідних документів ». Це цілком прийнятно, але ви можете також точніше сформулювати це повідомлення так: « Процес пошуку на даний момент не повертає жодних результатів, які б відповідали вказаному запиту ». У цьому випадку слід підкреслити, що помилка стосується * самого процесу * — логіки і налаштування засобу пошуку, а не просто відсутності виводу. Аналогічно, під час перегляду коду, пов’ язаного з ланцюгом LCEL, ви часто побачите коментарі на зразок « Покращити затримку ». Проте, більш конструктивним підходом буде: « Розгляньте можливість оптимізації потоку виконання ланцюга, щоб зменшити час відповіді, можливо, за допомогою кешування часто використовуваних даних ». Перший варіант є нечітким, другий пропонує конкретні рекомендації.

Іншою областю, де нюанс має значне значення, є опис *зв’язку * між компонентами в конвеєрі RAG. Замість того, щоб сказати «ЛЛМ потрібно більше пам’яті», краще було б сказати «Велика мова модель вимагає розширеного контекстного вікна, щоб ефективно синтезувати інформацію з декількох отриманих документів». Це підкреслює конкретне обмеження - здатність моделі - і обрамляє її як вимогу додаткових ресурсів, а не загальний заклик до поліпшення. Крім того, при написанні PR-описів, уникайте надмірно ентузіастичних висловлювань типу «Це призведе до революції в нашому пошуку!» Замість цього зосередьтеся на ясному описі * того, що * зміна робить і * чому * вона корисна: «Впроваджено новий індекс векторної бази даних для поліпшення швидкості і точності пошуку»

Нарешті, пам’ ятайте, що точність у документації є найважливішою. При поясненні складних взаємодій між компонентами, використання активного голосу і уникнення жаргону, де це можливо, значно поліпшить розуміння як для рідних, так і для нерідних носіїв англійської мови. Це про передачу інформації чітко і ефективно - а не просто перелік технічних термінів.

# Example: Using LangChain's ChromaDB Retriever
from langchain_community.vectorstores import Chroma

db = Chroma(persistential_directory="db") # Assuming a local database directory
query = "What is the capital of France?"
results = db.similarity_search(query, k=3)  # Retrieve top 3 results
print(results)

Поширені запитання

Про що ця стаття "LangChain English: LCEL and RAG Pipeline Vocabulary (англійською)"?

Вивчайте англійську лексику, яку використовують у розробці LangChain — ланцюги LCEL, конвеєри RAG, пошукові засоби, пам’ ять і лексику агентів з поясненнями у професійному контексті.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "LangChain English: LCEL and RAG Pipeline Vocabulary (англійською)"?

Приблизно 7 min.