• Lior's View
  • Posts
  • ⚙️ AI repos you should know about + coding tips

⚙️ AI repos you should know about + coding tips

Your Weekly Digest of Top-Trending Projects and Pro Tips

AlphaSignal

Hey ,

Welcome to AlphaSignal, your weekly guide to the latest and most promising developments in the world of AI.

Our task this week was like a poorly supervised learning model - finding the signal amidst the noise felt harder than overfitting a random forest! But worry not, we've sorted through the vast GitHub repositories and AI tools, bringing you the top trending projects that we're confident aren't just statistical anomalies.

Our highlight today is Meta's FAISS, a powerful library for efficient similarity search in high-dimensional data. From AI tools like Google MusicLM and NVIDIA Omniverse to repositories like DragGAN and ecoute, there's something for everyone. Plus, we have tips on tqdm and Pytorch's Automatic Mixed Precision.

Let's get into it!

Lior

On Today’s Summary:

  • Repo highlight: FAISS

  • Top of Github: DragGan, ecoute, qlora,..

  • Python Tip: tqdm

  • New AI tools: Google MusicLM, NVIDIA Omniverse,..

  • Pytorch Tip: Automatic Mixed Precision

HIGHLIGHT
Meta’s FAISS: A library for efficient similarity search

FAISS (Facebook AI Similarity Search) is an efficient library developed by Facebook AI for similarity search and clustering of high-dimensional vectors. It shines when dealing with large datasets in memory, offering optimized algorithms for nearest-neighbour search operations. FAISS supports multiple index types, providing a balance between accuracy and speed that can be tailored to specific use cases. It also offers functionalities for vector compression and clustering.

While FAISS operates primarily in-memory and lacks built-in persistence or networking capabilities, it can be integrated into systems that provide these features. This makes it highly suitable for ML applications involving large-scale, high-dimensional data, like recommendation systems, image or audio retrieval, and natural language processing (NLP) tasks. Despite its high performance, users need to handle aspects like data distribution, scalability, and persistence separately. While FAISS itself is not a recent development, its relevance and importance have grown significantly over the last months due to the recent advances that started with ChatGPT.

Want to promote a product, job, or event to 100,000+ AI researchers and engineers? You can reach out to us here.

⚙️ TOP OF GITHUB

Zeqiang-Lai/DragGAN
DragGAN paper implementation: a method for interactively controlling GAN outputs, letting users "drag" any points in an image to desired positions, thus providing precise control over the generation of realistic images.

SevaSk/ecoute
A live transcription tool that delivers real-time transcriptions of both microphone inputs and speaker outputs in a textbox. It also generates suggested responses based on the conversation transcript.

artidoro/qlora
A repository that complements the QLoRA paper, aimed at broadening access to LLM research. QLoRA is an efficient strategy that lowers memory consumption during fine-tuning.

kyegomez/tree-of-thoughts
An implementation of the Tree of Thoughts (ToT): a revolutionary plug-and-play algorithm that enhances model reasoning by 70%.

ShishirPatil/gorilla
Gorilla enables LLMs to use tools by invoking APIs. It generates the appropriate API call in response to a natural language query, reducing hallucination while accurately invoking over 1,600 APIs.

PYTHON TIP
Progress Bar (tqdm)

The tqdm library is a fast, extensible progress bar for Python and CLI. It provides users with visual feedback in the form of a progress bar, displaying how much work has been done, how much is left to complete, and an estimation of when the task will be finished. This feedback can be particularly useful for long-running processes, helping to manage time expectations and providing a sense of progress. The library is very versatile and can be used in a wide range of environments, including in Jupyter notebooks, the terminal, or even for tracking progress on multi-threaded tasks.

Using tqdm is quite simple: all you need to do is enclose your iterable with tqdm!

from tqdm import tqdm
for i in tqdm(range(10000)):
...
██████░░░░░░ 50%

🛠 NEW TOOLS

NVIDIA Omniverse ACE
A suite of real-time AI solutions for end-to-end development and deployment of interactive avatars and digital human applications at scale.

Google MusicLM
A new experimental AI tool that can turn your text descriptions into music.

Adobe Photoshop Generative Fill
A tool to quickly add, remove, or replace part of images right with simple text prompts by using Adobe Firefly generative AI.

Perplexity AI Copilot
An interactive AI companion which guides the search experience with interactive inputs, leading to a rich, personalized answer, powered by GPT-4.

Wordtune
An AI-powered writing companion that understands what the user is trying to say, and suggests ways to make writing more clear, compelling and authentic.

PYTORCH TIP
Automatic Mixed Precision

Automatic Mixed Precision (AMP) is a technique for improving the performance and reducing the computational requirements of deep learning models. It achieves this by performing computations in a mix of single-precision (float32) and half-precision (float16) data types.

The idea behind AMP is to get the benefits of using float16 for computations (faster execution, less memory usage) while keeping the numerical stability of float32 data types. This balance provides improved training performance and efficiency on GPUs that support it.

# create a model and optimizer
model = ...
optimizer = ...


# Use an autocast and gradient scaling context
with torch.cuda.amp.autocast():
	output = model(input)
	loss = loss_fn(output, target)


scaler = torch.cuda.amp.GradScaler()
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()

How was today’s email?

Not Great      Good      Amazing

Thank You