Saez-Rodriguez Group
LLM 은 바이오의과학 연구에 실험 결과의 해석과 같은 부분에 많은 도움을 줄 수 있음
BioChatter의 Main response circuit 은 특별하게 엔지니어된 많은 프롬프들을 가지고 있고 이를 Primary LLM 으로 넘김. 이는 유저의 질문에 대한 답을 생성해내게 됨.
이 과정은 secondary circuit(주황색) 에게 프롬프트 할 때도 사용되는데, 이는 primary response 를 보충하기 위한 작업으로 진행됨.
예를들어, 검색을 이용해서 secondary circuit 이 DB 를 prior knowledge repository 로 쿼리하여 primary response 와 답변을 비교하거나 RAG 를 실행하기 위해 사용됨
BioCypher 같은 KG가 사용될 수 있음
또한 개별적인 LLM 이 primary reponse 를 받아 fact-checking 을 시행하며 이는 RAG process 에서 나온 문맥 특이적인 정보를 보충하는데 사용될 수 있음.
Result
BioChatter
Basic question – answering with LLM (opensource, …)
Reproducible prompt engeineering
Knowledge Graph Querying: Automatic integration of any KG created by BioCypher framework
RAG using vector DB embeddings of user-provided literature
Model chaining: multiple LLMs in a single conversation (LangChain)Benchmarking of other LLMs
A: 파란색-프레임워크, 주황색-KG.
B: Public, secure use 에 따른 모식도를 나타내고 있음.
Question answering and LLM connectivity
BioChatter 의 핵심 기능은 LLM 들과 상호작용하는것임.
GPT, LLaMA2, Mixtral 등 open source 여부와 상관없이 사용가능함.
최근 ChatGPT 가 privacy 이슈가 있는데, 이를 해결하기 위해서 다른 OpenAI 모델을 API 로 제공함 (Web 보다 보안이 더 잘 되어있는)
LangChain 기반으로 만들어져서, 많은 종류의 LLM 을 서포트함 – Xorbit 인터페이스와 Hugging Face API. 이는 100,000 개 이상의 open source model에 query 를 가능하게 함.
Prompt Engineering
Prompt engineering 은 현재 Golden standard 가 없음
이를 해결하기 위해 BioChatter 에는 prompt engineering framework 가 적용되었는데, 이는 어떠한 특정 일을 위한 prompt set 의 보존이 – community 에서 공유될 수 있는.
추가적으로, prompt engineering 의 scale 을 촉진하기 위해 이 prompt 를 benchmarking pipeline 에 통합했음. 이를 통해 새로운 모델이 나왔을 때 benchmark 가 가능하게 됨
RAG
LLM confabulation (지어내는 말) 은 biomedical application 에 있어 가장 큰 문제임.
이것을 해결하기 위해, in-context learning 을 적용하기로 함. 이는 RAG(Retrieval-augment generation) 라고 불리기도 함
RAG는 사전 훈련된 모델의 프롬프트에 정보를 주입함으로써 작동하고, 재훈련이나 미세 조정을 필요로 하지 않으며, 모든 LLM과 함께 사용될 수 있음
이는 KG 의 정보를 processing 함으로서 가능한데, 예를 들어 그래프 데이터베이스에서 관련 정보를 검색하는 것이 더 효율적이기 때문임.
BioChatter 는 여러가지 데이터베이스에 연결하고, 임의의 수 문서를 포함하여 검색을 사용, 모델 프롬프트를 개선할 수 있도록 지원함.
논문을 input 으로 주면 그에 기반하여 대답해주는 것
Chat PDF – 논문 읽어주는 것인데 이것도 그런 느낌으로 해주는 것 이었음
Model Chaining & Fact Checking
LLM – LLM interaction
LLM 은 API 도 이해하긴 해서, 이론적으로는 complex multi-step task 도 구현 가능함.
하지만 구현은 어렵고 이상한 결과도 도출할 수 있어서…
이 프로젝트에서는 공통적인 biomedical task – 실험 디자인이나 논문 평가 같은 것에 대해서 맞춤형 접근법을 개발하고자 함.
LangChain 을 이용해서, 공통적인 task 에 대한 결과의 stability 를 주고자 했음.
예를 들어서, 우리는 primary LLM 의 factual correctness 를 평가할 수 있는 두 번째 LLM 을 적용했음.
Benchmarking
Pytest 사용: Hash-based system, model-dataset combination 이 이전에 돌아간 적 있는지 검사함.
hash 가 dictionary representation 에서 계산되고, 만약 combination이 이미 있다면 test 가 skip됨.
검사된 component:
LLM / Prompt / Dataset / Data Processing / Model quantisation / Model parameter / Integration / stochaticity / sentiment and behaviour
Benchmark data 의 leak 을 막기 위해서, 그리고 LLM 의 contamination 을 막기 위해 benchmarking dataset에 암호화 rountine 을 생성함
Future Directions
Autonomous agents
Multitask learners
biocypher/biochatter: Backend library for conversational AI in biomedicine (github.com)
답글 남기기