Continuous Learning_Startup & Investment – Telegram
Continuous Learning_Startup & Investment
2.4K subscribers
513 photos
5 videos
16 files
2.72K links
We journey together through the captivating realms of entrepreneurship, investment, life, and technology. This is my chronicle of exploration, where I capture and share the lessons that shape our world. Join us and let's never stop learning!
Download Telegram
2003년 이후 설립된 미국의 기업 중 매출 10억 달러 이상인 64개 상장 기업.

https://nbt.substack.com/p/the-billion-dollar-revenue-club
In this new Machine Learning era dominated by LLMs, knowledge Distillation is going to be at the forefront of LLMOps. For widespread adoption and further development of generative ML, we first need to make those models more manageable to deploy and fine-tune.

Just to put some numbers on how unmanageable it can be, SOTA models these days have about ~500B parameters and that represents at least ~1TB of GPU memory to operate with specialized infrastructure. That's a minimum of ~$60,000 - $100,000 per year per deployed model just for inference servers. And that doesn't include fine-tuning nor typical elastic load balancing costs for reliability best practices. Not impossible, but somewhat a high barrier to entry for most businesses.

I always felt that knowledge distillation was a silent hero in this era of transformer-type language models. There are tons of distilled BERT-like models on HuggingFace for example. The concept behind distillation is actually pretty simple. Let's assume you have a large pre-trained model. In the context of LLMs, it could be pre-trained with self-supervised learning and fine-tuned in a RLHF fashion for example. Your pre-trained model now becomes the all-knowing teacher for a smaller student model. If we call the teacher model T and the student model S, we want to learn the parameters for S such that

T(x) = y_t ~ y_s = S(x)

For some data x, we want the predictions y_t and y_s by T and S to be as close to each other. To train a student model, we simply pass the training data through the teacher and student and update the student's parameters by minimizing the loss function l(y_t, y_s) and back-propagating its gradient. Typically we use cross-entropy for the loss function. To train the student model, think about typical supervised learning where the training data is the same or similar to the teacher's training data, but the ground truth label for the student model is the output prediction of the teacher model. You can read more about it in this survey: https://arxiv.org/pdf/2006.05525.pdf.

With the advent of prompt engineering, we now understand better how to extract the right piece of knowledge from LLMs. Techniques like Chain-of-Thought (CoT) greatly improved LLMs performance on few-shot learning tasks. The guys at Google just published an article (https://arxiv.org/pdf/2305.02301.pdf) utilizing CoT to improve the distillation process. The idea is to have the student LLM predicting the rationales for the predictions alongside the predictions and minimizing a loss function between the teacher rationale and the student rationale. Basically by forcing the LLM to explain its predictions, they were able to beat all the distillation SOTA. For example, they outperformed a 540B parameters PaLM model with a 770M parameters T5 model after distillation! I think this paper will have a huge impact in the coming year!

----
Find more similar content in my newsletter: https://TheAiEdge.io
Next ML engineering Masterclass starting July 29th: https://MasterClass.TheAiEdge.io
#machinelearning #datascience #artificialintelligence
Continuous Learning_Startup & Investment
https://huyenchip.com/2023/04/11/llm-engineering.html https://www.linkedin.com/pulse/%25EC%258B%25A4%25EC%25A0%2584%25EC%2597%2590%25EC%2584%259C-llm-%25EC%2595%25A0%25ED%2594%258C%25EB%25A6%25AC%25EC%25BC%2580%25EC%259D%25B4%25EC%2585%2598-%25EA%25B5%25…
Vector Injection 이라는 이야기를 듣는데, 사람의 사고를 치료하는 심리 치료 혹은 뇌수술이 생각나네요…

https://youtu.be/ByhMpN2iSbc?t=1556

신경망의 맥락에서 벡터 삽입은 계산 중에 피드포워드 신경망의 특정 레이어에 벡터를 삽입하는 프로세스를 말합니다. 이 기술은 모델에 추가 정보나 제약 조건을 통합하여 잠재적으로 성능을 향상시키거나 더 복잡한 관계를 학습할 수 있도록 하는 데 사용할 수 있습니다. 피드포워드 신경망은 입력 노드에서 숨겨진 레이어를 거쳐 출력 노드로 정보가 주기나 루프 없이 한 방향으로 흐르는 인공 신경망의 한 유형입니다.

경우에 따라 이 피드포워드 프로세스의 중간에 벡터를 주입하여 네트워크의 동작에 영향을 미치거나 외부 지식을 통합하는 것이 유용할 수 있습니다.
피드포워드 프로세스 중간에 벡터를 주입하는 방법에는 여러 가지가 있습니다. 한 가지 방법은 네트워크의 특정 레이어의 가중치나 편향성을 직접 수정하여 네트워크의 내부 표현을 효과적으로 변경하는 것입니다. 또 다른 접근 방식은 주입된 벡터를 입력으로 받아 이전 레이어의 출력과 결합한 후 그 결과를 다음 레이어로 전달하는 레이어를 네트워크에 추가하는 것입니다.

신경망에 벡터를 주입하는 것은 도메인별 지식을 통합하거나 특정 제약 조건을 적용하거나 네트워크의 일반화 기능을 개선하는 등 다양한 애플리케이션에 유용할 수 있습니다. 그러나 네트워크의 성능에 부정적인 영향을 미치거나 의도하지 않은 부작용이 발생하지 않도록 벡터 주입 프로세스를 신중하게 설계하는 것이 중요합니다.
자연의 섭리는 묘하게도 비슷하네요. 근친교배가 유전학적으로 열성발현 등이 나타나 위험한 것처럼, 합성 데이터만으로 자체 순환 학습하는 것은 자기 포식 장애(Model Autophagy Disorder)에 빠질 수 있다고 하네요. 합성데이터 활용시에 고려해야 할 중요한 점이 또하나 등장한 것 같습니다.

특히 조만간 합성 데이터가 인터넷을 뒤덮으며, 그것을 다시 학습데이터 사용하고 거기서 다시 데이터를 생산해서 사용하는 루프가 생길 경우에도 이런 자기 포식 장애가 발생할 위험이 생길 수 있다는게 우려스럽네요.

제목: Self-Consuming Generative Models Go MAD

이 논문은 제너레이티브 AI 알고리즘에서 자가포식(자체 소비) 루프 현상을 탐구하고 합성 데이터를 사용하여 차세대 모델을 훈련시키는 영향을 분석합니다. 저자는 각 세대에 충분한 양의 새로운 실제 데이터가 없으면 미래 생성 모델의 품질 또는 다양성이 점진적으로 악화되는 모델 자가포식 장애(MAD)라는 조건을 발견했습니다.

주요 통찰 및 교훈:
- 제너레이티브 AI 알고리즘은 훈련 모델을 위한 데이터 합성에서 상당한 발전을 이루었습니다.
- 반복되는 훈련 과정에서 합성 데이터를 사용하면 특성을 제대로 이해하지 못하는 자가 포식 루프가 생성됩니다.
- 이 연구는 고정 또는 새로운 실제 교육 데이터의 가용성과 이전 세대 모델의 편향이 다른 세 가지 유형의 autophagous 루프에 중점을 둡니다.
- 각 세대의 불충분한 신선한 실제 데이터는 미래 생성 모델의 정밀도 또는 리콜의 감소로 이어집니다.
- 모델 자가포식 장애(MAD)는 부적절한 실제 데이터로 인해 생성 모델의 품질 또는 다양성이 점진적으로 감소하는 상태를 설명합니다.

요약:
이미지, 텍스트 및 기타 데이터 유형에 대한 생성 AI 알고리즘이 비약적으로 발전함에 따라 합성 데이터를 사용하여 차세대 모델을 훈련하려는 유혹이 커지고 있습니다. 이 과정을 반복하면 속성을 제대로 이해하지 못하는 자가포식(자가 소비) 루프가 생성됩니다. 유니티는 여러 세대의 학습을 통해 사용할 수 있는 고정된 실제 학습 데이터의 양이나 새로운 실제 학습 데이터의 양, 이전 세대 모델의 샘플이 데이터 품질과 다양성의 균형을 맞추기 위해 편향되었는지 여부가 다른 세 가지 오토파지 루프의 최첨단 생성 이미지 모델을 사용하여 철저한 분석 및 경험적 분석을 수행했습니다. 모든 시나리오에서 얻은 주요 결론은 오토파지 루프의 각 세대에 새로운 실제 데이터가 충분하지 않으면 향후 생성되는 모델의 품질(정확도)이나 다양성(리콜)이 점진적으로 감소할 수밖에 없다는 것입니다. 이러한 상태를 광우병에 비유하여 모델 자기포식 장애(MAD)라고 부릅니다.

arXiv: https://arxiv.org/abs/2307.01850
PDF: https://arxiv.org/pdf/2307.01850.pdf
arXiv-vanity: https://www.arxiv-vanity.com/papers/2307.01850
Paper page: https://huggingface.co/papers/2307.01850
Papers with code: https://paperswithcode.com/paper/self-consuming-generative-models-go-mad
2
Continuous Learning_Startup & Investment
https://blog.lablup.com/posts/#fn-5-7014be
윌버는 1901년의 강연에서 자신의 결론을 이렇게 정리했습니다. "비행에는 세 가지 문제가 있습니다. 비행기가 뜨기 위해 날개가 필요하고, 비행기가 나아가기 위해 엔진이 필요하며, 비행기를 조종할 방법이 필요합니다."[1](https://blog.lablup.com/posts/#fn-1-7014be)

윌버는 날개의 문제와 엔진의 문제는 어느정도 이미 해결되었기 때문에, 조종의 문제를 풀어야 한다고 보았습니다. 비행기 조종의 문제를 풀기 위해서는 비행기가 필요했는데, 비행기를 만들기 위해서는 비행기 조종의 문제를 풀어야 하는 상황이었습니다. 윌버는 글라이더에서 조종의 문제를 품으로써 비행기 조종의 문제를 풀 수 있다는 결론을 내렸습니다.

인류는 오랫동안 기계와 대화하고 싶어했습니다. 수많은 과학 소설과 영화들이 증거하고 있습니다.

OpenAI는 AI를 만들기 위해 세 가지 문제를 풀어야 했습니다. 컴퓨팅 인프라와 모델과 데이터입니다. 컴퓨팅 인프라가 엔진에, 모델이 날개에, 데이터가 조종에 대응한다고 볼 수 있습니다.

컴퓨팅 인프라를 관리하기 위해 OpenAI는 Kubernetes를 사용했는데, 그렇다고 그냥 가져다 쓸 수 있는 것은 아니었습니다. 2,500 노드가 되자 리눅스 커널 ARP 캐시가 넘치는 문제가 생겼고,[3](https://blog.lablup.com/posts/#fn-3-7014be) 7,500 노드가 되자 anti-affinity를 사용하기 위해 Kubernetes의 버그를 고쳐야 했습니다.[4](https://blog.lablup.com/posts/#fn-4-7014be)

비행기의 양력 방정식에 해당하는 것이 AI의 scaling law입니다. 양력 방정식이 날개의 양력을 날개의 면적과 양력 계수, 비례 상수로 설명하는 것처럼, scaling law는 AI 모델의 loss를 모델의 크기와 데이터의 크기, 멱함수 지수로 설명합니다.

라이트 형제가 존 스미턴의 비례 상수가 0.005가 아니라 0.003이라는 것을 발견한 것처럼, scaling law의 멱함수 지수는 처음에는 0.73인 것으로 생각되었지만[5](https://blog.lablup.com/posts/#fn-5-7014be) 실제로는 0.50인 것으로 밝혀졌습니다.[6](https://blog.lablup.com/posts/#fn-6-7014be) 잘못된 값이 계산된 것은 데이터의 크기에 따라 learning rate를 조정하지 않았기 때문입니다.

OpenAI는 모델의 제어가 중요한 문제라는 것을 알고 있었기 때문에, 첫 번째 GPT를 훈련하기 전에 이미 사람의 선호로부터 강화 학습을 하는 연구를 진행하고 있었습니다.[7](https://blog.lablup.com/posts/#fn-7-7014be) 이때는 로봇의 제어에 적용했는데, 라이트 형제가 비행기의 조종을 위해 새의 비행을 참고하고 비행기 대신 글라이더에 먼저 적용한 것을 연상시킵니다.

이러한 연구를 언어 모델에 적용하기 위해 사람의 선호 데이터를 수집하여 InstructGPT가 나왔습니다.[8](https://blog.lablup.com/posts/#fn-8-7014be) GPT-4 이후로 OpenAI가 연구 내용을 공개하고 있지 않기 때문에 정확히 알기는 어렵지만, 명시적인 피드백이 아니라 사용자가 생성을 재시도하거나 대화를 계속하고 중단하는 등의 암시적인 피드백으로부터도 학습할 수 있다는 연구 결과들이 나오고 있습니다.[9](https://blog.lablup.com/posts/#fn-9-7014be) 그렇다면 OpenAI는 모델을 향상시켜 사용자를 모으고 사용자를 모아 모델을 향상시키는 양성 되먹임 고리를 만들어낼 수 있을 것입니다.
1
As startups look to provide value with LLMs and guard their ideas, it’s probably not a great business strategy to assume your app’s secret sauce pre-prompt is not discoverable by users.

A recent paper “Prompts Should not be Seen as Secrets: Systematically Measuring Prompt Extraction Attack Success” shows just how easily a model can be instructed to “recall” its pre-prompt by request.

Paper: https://arxiv.org/abs/2307.06865
Yandex에서 LLM 분산 추론/파인튜닝 시스템인 Patals를 공개.

인터넷 상에 연결된 자원을 활용하여 BLOOM-176B 같은 진짜(?) LLM을 누구나 실행 할 수 있고, 이 네트워크에 누구나 자신의 유휴 자원을 붙일 수도 있다고. (프라이빗 네트웍 시스템 구축도 가능)

Transformers 라이브러리와 매우 유사하게 설계되어 단 몇 줄만으로 사용 할 수 있으며, 인터넷으로 분산해서 추론하는거라 속도가 느릴 것이라고 생각하지만, LLaMA-65B 추론에 5 tokens/s 정도의 속도가 나온다고.

와.. 이건 뭐.. 배우는 사람 숨 좀 쉽시다;;;

https://research.yandex.com/blog/petals-decentralized-inference-and-finetuning-of-large-language-models?fbclid=IwAR3FkB3RB304PCTERKqAnXLSIu8sZX_uluD_ZRenQ3ZeKnPmm89rjW01B-4_aem_AchbBtzRDtsOhwnuj-qy8XwD7lk5-IIN7tqMC98t9X59CXl5HYEhvRhkTc2qT2eF5uw&mibextid=Zxz2cZ
2
AI 제품을 만드시거나 관련 연구를 하시는 분들 중에서, 지금하는 고민을 다른 분들과 토론하고 싶은 분들이 있으실까요?
그동안 AI를 학습하면서 해외에서 열린 다양한 컨퍼런스, 팟캐스트를 보면서 현업에 있는 분들끼리 활발한 의견 교류를 하는 것을 지켜봤는데요. 국내에서도 AI 제품을 만들거나 리서치를 하는 분들끼리 더 많은 이야기를 하는 자리가 있으면 좋겠다는 생각을 했습니다.
그래서 준비했습니다. 다가오는 금요일 저녁 LLM(Large Language Model) Image Model에 관심이 있는 분들이 모여 다양한 주제에 대해서 깊은 토론을 해보려고 합니다.
AI에 진심이신 분들이라면 금요일 저녁에 모여서 재밌게 이야기 나눠봐요!
이번 세션에서 다룰 주제들은 아래와 같습니다.
1. GPT-4 아키텍쳐 유출에서 배울 점: 최근 GPT-4 아키텍처에 대해서 꽤 자세히 분석한 글이 공개되었는데요. Mixture of Experts, GPT-4 수준의 서비스를 제공하기 위한 아키텍쳐, 엔지니어링 기법 등 살펴볼 내용들이 많은데요. 함께 이야기해보시죠.
2. Prod 환경에서 LLM을 학습/운영하는데에 마주하는 어려움과 기회: Replit, Salesforce Scatter Labs 등 GPT-4 만큼의 대형 모델은 아니지만 자체 LLM을 학습하는 회사들이 많아지고 있습니다. LLM을 학습하고 실제 서비스에 적용할 때에 다양한 기술적 어려움이 있는데요. 자세히 살펴보시죠.
3. 다양한 Infra(Langchain 등) 비교 분석: LLM 기반 서비스 및 토이 프로젝트가 많아지면서 Langchain, Llamaindex같은 인프라가 생겨나고 있는데요. 다양한 인프라 서비스의 기능과 한계를 살펴보고 새로운 기회를 찾아보시죠.
4. SD, Chatbot을 활용한 새로운 서비스(데이팅, 게임 등): 최근의 Stable Diffusion 발전 속도는 정말 눈부신데요. 이젠 예쁜 장난감을 벗어나 쓸만한 서비스가 나올만한 타이밍이라 생각합니다. 현재 나와있는 다양한 모델을 사용해서 서비스를 만들고 있는 분들과 SD, Chatbot을 사용해서 좋은 서비스를 만드는 방법에 대해서 이야기해보시죠.
좀 더 심도있는 세션을 위해서, 컨트리뷰터와 참여자를 구분하고 있습니다. 컨트리뷰터는 해당 세션에서 다양한 어젠다를 제안하고 다양한 의견을 내는 구조라고 생각해주시면 됩니다. 컨트리뷰터로 신청해주시지 않은 세션은 모두 참여자로 구분합니다.
- 컨트리뷰터: 경험, 지식을 나눠서 세션의 내용을 풍성하게 합니다.
- 참여자: 세션이 진행되는 것을 보고 질문을 하거나 중간 중간 토론에 참여하기도합니다.
미리 살펴볼 자료
- https://matthewcontinuouslearning.notion.site/GPT-reverse...
- https://www.youtube.com/watch?v=ByhMpN2iSbc&feature=youtu.be
- https://huyenchip.com/.../real-time-machine-learning...
- https://huyenchip.com/2023/04/11/llm-engineering.html
- https://old.reddit.com/.../13fcw36/langchain_is_pointless/
- https://a16z.com/.../emerging-architectures-for-llm.../
- https://foundationcapital.com/foundation-model-ops.../
- https://youtu.be/emCoG-hA7AE
- https://youtu.be/emCoG-hA7AE
❤️ MLOps와 AI 솔루션을 제공하는 마키나락스에서 후원해주셨습니다.❤️
후원 문의는 agitowninseoul@gmail.com로 부탁드립니다.

세션 참가 신청하기: https://lu.ma/agitownjuly2
1